library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;

class Bar extends core::Object {
  @#C2
  external get x() → self::Bar*;
  @#C4
  external set x(self::Bar* value) → void;
  @#C6
  external method f() → dynamic;
  @#C8
  external static factory •() → self::Bar*;
}
@#C10
external static method foo() → dynamic;

constants  {
  #C1 = "Bar_get_x"
  #C2 = _in::ExternalName {name:#C1}
  #C3 = "Bar_set_x"
  #C4 = _in::ExternalName {name:#C3}
  #C5 = "Bar_f"
  #C6 = _in::ExternalName {name:#C5}
  #C7 = "Bar_constructor"
  #C8 = _in::ExternalName {name:#C7}
  #C9 = "foo"
  #C10 = _in::ExternalName {name:#C9}
}
