// @dart = 2.14
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() {}
