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

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