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

class NullEquality extends core::Object {
  synthetic constructor •() → self::NullEquality
    ;
  @core::override
  operator ==(core::Object other) → core::Null
    ;
}
class SubNullEquality extends self::NullEquality {
  synthetic constructor •() → self::SubNullEquality
    ;
  method test() → void
    ;
}
static method test() → dynamic
  ;
static method main() → dynamic
  ;
