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

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