library /*isNonNullableByDefault*/;
import self as self;
import "extension_from_dill_lib2.dart" as ext;

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

static method main() → dynamic {
  ext::Extension|foo("");
}

library /*isNonNullableByDefault*/;
import self as self2;
import "extension_from_dill_lib2.dart" as ext;
additionalExports = (ext::Extension)

export "org-dartlang-testcase:///extension_from_dill_lib2.dart";


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

extension Extension on core::String {
  method foo = ext::Extension|foo;
  tearoff foo = ext::Extension|get#foo;
}
static method Extension|foo(lowered final core::String #this) → dynamic
  return 42;
static method Extension|get#foo(lowered final core::String #this) → () → dynamic
  return () → dynamic => ext::Extension|foo(#this);
