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

class Bar extends core::Object {
  get x() → self::Bar
    return "Bar_get_x";
  set x(self::Bar value) → dynamic
    return "Bar_set_x";
  method f() → dynamic
    return "Bar_f";
  static factory •() → self::Bar
    return "Bar_constructor";
}
static method foo() → dynamic
  invalid-statement;
