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

import "org-dartlang-testcase:///implicit_new.dart" as prefix;

class Foo extends core::Object {
  synthetic constructor •() → self::Foo
    ;
  operator +(dynamic other) → dynamic
    ;
}
class Bar extends core::Object {
  constructor named() → self::Bar
    ;
  operator +(dynamic other) → dynamic
    ;
}
class IndexTester extends core::Object {
  synthetic constructor •() → self::IndexTester
    ;
  operator [](dynamic _) → dynamic
    ;
  operator []=(dynamic _a, dynamic _b) → void
    ;
}
static method testNSM() → dynamic
  ;
static method f(dynamic x) → dynamic
  ;
static method main() → dynamic
  ;
