mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 07:19:58 +00:00
cda4f284b0
Change-Id: Ia9ab202e157102c22b2705d13582d3529288f81e Reviewed-on: https://dart-review.googlesource.com/8502 Commit-Queue: Peter von der Ahé <ahe@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Aske Simon Christensen <askesc@google.com>
40 lines
1.5 KiB
Plaintext
40 lines
1.5 KiB
Plaintext
library;
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
typedef Callback<T extends core::Object> = (T) → void;
|
|
class Foo<T extends core::Object> extends core::Object {
|
|
final field self::Foo::T finalField;
|
|
final field (self::Foo::T) → void callbackField;
|
|
field self::Foo::T mutableField = null;
|
|
field (self::Foo::T) → void mutableCallbackField = null;
|
|
constructor •(self::Foo::T finalField, (self::Foo::T) → void callbackField) → void
|
|
: self::Foo::finalField = finalField, self::Foo::callbackField = callbackField, super core::Object::•()
|
|
;
|
|
method method(self::Foo::T x) → void {}
|
|
set setter(self::Foo::T x) → dynamic {}
|
|
method withCallback((self::Foo::T) → void callback) → void {
|
|
callback.call(this.{self::Foo::finalField});
|
|
}
|
|
}
|
|
static method main() → dynamic {
|
|
self::Foo<core::int> fooInt = new self::Foo::•<core::int>(1, (core::int x) → dynamic {});
|
|
fooInt.method(3);
|
|
fooInt.setter = 3;
|
|
fooInt.withCallback((core::int x) → dynamic {});
|
|
fooInt.withCallback((core::num x) → dynamic {});
|
|
fooInt.mutableField = 3;
|
|
fooInt.mutableCallbackField = (core::int x) → dynamic {};
|
|
self::Foo<core::num> fooNum = fooInt;
|
|
fooNum.method(3);
|
|
fooNum.method(2.5);
|
|
fooNum.setter = 3;
|
|
fooNum.setter = 2.5;
|
|
fooNum.withCallback((core::num x) → dynamic {});
|
|
fooNum.mutableField = 3;
|
|
fooNum.mutableField = 2.5;
|
|
fooNum.mutableCallbackField(3);
|
|
fooNum.mutableCallbackField(2.5);
|
|
fooNum.mutableCallbackField = (core::num x) → dynamic {};
|
|
}
|