import 'new_as_selector.dart' as prefix1;
import 'new_as_selector.dart' deferred as prefix2 hide E;
int new = 87;
C c = C();
class Super {}
class C extends Super {
  int new = 42;
  C() : super.new();
  C.named() : this.new();
  method() {}
}
extension E on int {
  external int new;
  call<T>() {}
}
method(dynamic d) => d.new;
test() {}
main() {}
