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

class A extends core::Object {
  final field core::String foo;
  constructor •(core::String foo) → void
    : self::A::foo = foo, super core::Object::•()
    ;
  operator ==(core::Object other) → core::bool {
    if(other is self::A && other{self::A}.foo.==(this.{self::A::foo})) {
      if(other{self::A}.foo.==(this.{self::A::foo})) {
      }
    }
    return true;
  }
}
static method main() → dynamic {
  core::print(new self::A::•("hello").==(new self::A::•("hello")));
}
