library /*isNonNullableByDefault*/;
import self as self;

import "org-dartlang-testcase:///issue38750_lib1.dart";
import "org-dartlang-testcase:///issue38750_lib2.dart";

static method main() → dynamic
  ;
static method errors() → dynamic
  ;

library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self2::C
    ;
  method foo() → dynamic
    ;
  method _foo() → dynamic
    ;
  static method _staticFoo() → dynamic
    ;
  static method staticFoo() → dynamic
    ;
}
extension ext on self2::C {
  method _bar = self2::ext|_bar;
  tearoff _bar = self2::ext|get#_bar;
}
static method ext|_bar(lowered final self2::C #this) → dynamic
  ;
static method ext|get#_bar(lowered final self2::C #this) → () → dynamic
  return () → dynamic => self2::ext|_bar(#this);

library /*isNonNullableByDefault*/;
import self as self3;

import "org-dartlang-testcase:///issue38750_lib1.dart";

static method errors() → dynamic
  ;
