blob: 5bd6f19e5fb58af49257b4312bb840fac866c1c9 [file] [log] [blame] [edit]
library;
import self as self;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() self::A
: super core::Object::•()
;
static get classGetter() core::String
return "A.classGetter";
static set classSetter(core::num value) void {
throw "A.classSetter=";
}
static method classMethod() core::String
return "A.classMethod";
}
extension E on self::A {
static get classGetter = get self::E|classGetter;
static get extensionGetter = get self::E|extensionGetter;
static set classSetter = set self::E|classSetter;
static set extensionSetter = set self::E|extensionSetter;
static method classMethod = self::E|classMethod;
static method extensionMethod = self::E|extensionMethod;
}
static extension-member get E|classGetter() core::String
return "E.classGetter";
static extension-member get E|extensionGetter() core::String
return "E.extensionGetter";
static extension-member set E|classSetter(core::num value) void {}
static extension-member set E|extensionSetter(core::bool value) void {}
static extension-member method E|classMethod() core::String
return "E.classMethod";
static extension-member method E|extensionMethod() core::String
return "E.extensionMethod";
static method main() dynamic {
self::expectEqual(self::A::classGetter, "A.classGetter");
self::expectEqual(self::E|extensionGetter, "E.extensionGetter");
self::expectThrows(() Null {
self::A::classSetter = 0;
});
self::expectDoesntThrow(() Null {
self::E|extensionSetter = false;
});
self::expectEqual(self::A::classMethod(), "A.classMethod");
self::expectEqual(self::E|extensionMethod(), "E.extensionMethod");
}
static method expectEqual(dynamic a, dynamic b) dynamic {
if(!(a =={core::Object::==}{(core::Object) core::bool} b)) {
throw "Expected the values to be equal.";
}
}
static method expectThrows(() dynamic f) dynamic {
core::bool hasThrown = false;
try {
f(){() dynamic};
}
on dynamic catch(no-exception-var) {
hasThrown = true;
}
if(!hasThrown) {
throw "Expected the function to throw an exception.";
}
}
static method expectDoesntThrow(() dynamic f) dynamic {
core::bool hasThrown = true;
try {
f(){() dynamic};
hasThrown = false;
}
on dynamic catch(no-exception-var) {
}
if(hasThrown) {
throw "Expected the function not to throw exceptions.";
}
}