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::•()
    ;
}
abstract class Bar extends core::Object {
  @#C1
  field dynamic x = null;
  @#C1
  constructor •() → self::Bar*
    : super core::Object::•()
    ;
  @#C1
  abstract method f() → void;
}
static method main() → dynamic {}

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