blob: eb5ddb9bd2898011a16d1b771094a8316a1a435a [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
synthetic constructor •() void
: super core::Object::•()
;
method method(dynamic x, [dynamic y, dynamic z]) dynamic {
return "string";
}
}
abstract class External extends core::Object {
synthetic constructor •() void
: super core::Object::•()
;
abstract method externalMethod(core::int x, [core::int y, core::int z]) core::String;
abstract method listen(self::Listener listener) void;
}
abstract class Listener extends core::Object {
synthetic constructor •() void
: super core::Object::•()
;
abstract method event(core::String input, [core::int x, core::int y]) void;
}
class TestListener extends self::Listener {
synthetic constructor •() void
: super self::Listener::•()
;
method event(dynamic input, [dynamic x, dynamic y]) void {}
}
class ExtendedListener extends self::Listener {
synthetic constructor •() void
: super self::Listener::•()
;
method event(dynamic input, [dynamic x, dynamic y, dynamic z]) void {}
}
class InvalidListener extends core::Object {
synthetic constructor •() void
: super core::Object::•()
;
method event(dynamic input, [dynamic x]) void {}
}
external static method createExternal() self::External;
static method main() dynamic {
dynamic foo = new self::Foo::•();
dynamic string1 = foo.method(1);
dynamic string2 = foo.method(1, 2);
dynamic string3 = foo.method(1, 2, 3);
dynamic extern = self::createExternal();
dynamic string4 = extern.externalMethod(1);
dynamic string5 = extern.externalMethod(1, 2);
dynamic string6 = extern.externalMethod(1, 2, 3);
extern.listen(new self::TestListener::•());
extern.listen(new self::ExtendedListener::•());
extern.listen(new self::InvalidListener::•());
dynamic nothing1 = foo.method();
dynamic nothing2 = foo.method(1, 2, 3, 4);
dynamic nothing3 = extern.externalMethod();
dynamic nothing4 = extern.externalMethod(1, 2, 3, 4);
}