library;
import self as self;
import "issue39938_lib.dart" as iss;
import "dart:core" as core;

import "org-dartlang-testcase:///issue39938_lib.dart";

static method main() → dynamic {
  self::expect(true, iss::Extension|+(true, true));
  self::expect(true, iss::Extension|+(true, false));
  self::expect(true, iss::Extension|+(false, true));
  self::expect(false, iss::Extension|+(false, false));
  self::expect(true, iss::Extension|+(true, true));
  self::expect(true, iss::Extension|+(true, false));
  self::expect(true, iss::Extension|+(false, true));
  self::expect(false, iss::Extension|+(false, false));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
  if(!(expected =={core::Object::==}{(core::Object*) →* core::bool*} actual))
    throw "Expected ${expected}, actual ${actual}.";
}
