library;
import self as self;
import "export_twice_lib1.dart" as exp;

import "org-dartlang-testcase:///export_twice_lib1.dart";
import "org-dartlang-testcase:///export_twice_lib2.dart";

static method main() → dynamic {
  exp::Extension|method(new exp::Class::•());
}

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

class Class extends core::Object {
  synthetic constructor •() → exp::Class*
    : super core::Object::•()
    ;
}
extension Extension on exp::Class* {
  method method = exp::Extension|method;
  tearoff method = exp::Extension|get#method;
}
static method Extension|method(final exp::Class* #this) → dynamic {}
static method Extension|get#method(final exp::Class* #this) → () →* dynamic
  return () → dynamic => exp::Extension|method(#this);

library;
import self as self2;
import "export_twice_lib1.dart" as exp;
additionalExports = (exp::Extension)

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