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

class Foo extends core::Object /*hasConstConstructor*/  {
  const constructor •(core::List<core::String*>* l) → self::Foo*
    : super core::Object::•()
    ;
  const constructor named(core::List<core::String*>* l) → self::Foo*
    : super core::Object::•()
    ;
}
@#C1
class Bar extends core::Object {
  synthetic constructor •() → self::Bar*
    : super core::Object::•()
    ;
}
@#C1
class Baz extends core::Object {
  synthetic constructor •() → self::Baz*
    : super core::Object::•()
    ;
}
static method main() → dynamic {}

constants  {
  #C1 = self::Foo {}
}
