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

class Foo extends core::Object {
  const constructor •(dynamic l) → void
    : super core::Object::•()
    ;
}
static method test() → void {
  const core::int x = 0;
  @self::Foo::•(const <core::int>[x]) dynamic y;
  @self::Foo::•(const <core::int>[x])
  function bar() → void {}
  function baz(@self::Foo::•(const <core::int>[x]) dynamic formal) → void {}
}
static method main() → dynamic {}
