library test;
import self as self;
import "dart:core" as core;

class Foo extends core::Object {
  const constructor •(core::List<core::String> l) → void
    : super core::Object::•()
    ;
}
static method test() → void {
  function f<@self::Foo::•(const <core::String>[]) T extends core::Object = dynamic>() → void {}
  <@self::Foo::•(const <core::String>[]) T extends core::Object = dynamic>() → core::Null x = <@self::Foo::•(const <core::String>[]) T extends core::Object = dynamic>() → core::Null {};
}
static method main() → dynamic {}
