c1160d8cfa
Change-Id: Ied8777df13aa0411daf89f3ad3ec6bdda7bb4898 Reviewed-on: https://dart-review.googlesource.com/35862 Reviewed-by: Kevin Millikin <kmillikin@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
62 lines
2.4 KiB
Plaintext
62 lines
2.4 KiB
Plaintext
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 = null, dynamic z = null]) → dynamic {
|
|
return "string";
|
|
}
|
|
}
|
|
abstract class External extends core::Object {
|
|
synthetic constructor •() → void
|
|
: super core::Object::•()
|
|
;
|
|
abstract method externalMethod(core::int x, [core::int y = null, core::int z = null]) → 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 = null, core::int y = null]) → void;
|
|
}
|
|
class TestListener extends self::Listener {
|
|
synthetic constructor •() → void
|
|
: super self::Listener::•()
|
|
;
|
|
method event(core::String input, [core::int x, core::int y]) → void {}
|
|
}
|
|
class ExtendedListener extends self::Listener {
|
|
synthetic constructor •() → void
|
|
: super self::Listener::•()
|
|
;
|
|
method event(core::String input, [core::int x, core::int y, dynamic z]) → void {}
|
|
}
|
|
class InvalidListener extends core::Object {
|
|
synthetic constructor •() → void
|
|
: super core::Object::•()
|
|
;
|
|
method event(dynamic input, [dynamic x = null]) → void {}
|
|
}
|
|
external static abstract method createExternal() → self::External;
|
|
static method main() → dynamic {
|
|
self::Foo foo = new self::Foo::•();
|
|
dynamic string1 = foo.{self::Foo::method}(1);
|
|
dynamic string2 = foo.{self::Foo::method}(1, 2);
|
|
dynamic string3 = foo.{self::Foo::method}(1, 2, 3);
|
|
self::External extern = self::createExternal();
|
|
core::String string4 = extern.{self::External::externalMethod}(1);
|
|
core::String string5 = extern.{self::External::externalMethod}(1, 2);
|
|
core::String string6 = extern.{self::External::externalMethod}(1, 2, 3);
|
|
extern.{self::External::listen}(new self::TestListener::•());
|
|
extern.{self::External::listen}(new self::ExtendedListener::•());
|
|
extern.{self::External::listen}(new self::InvalidListener::•());
|
|
dynamic nothing1 = foo.{self::Foo::method}();
|
|
dynamic nothing2 = foo.{self::Foo::method}(1, 2, 3, 4);
|
|
core::String nothing3 = extern.{self::External::externalMethod}();
|
|
core::String nothing4 = extern.{self::External::externalMethod}(1, 2, 3, 4);
|
|
}
|