| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| 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) → void {} |
| method withCallback((self::Foo::T) → void callback) → void { |
| callback.call(this.{self::Foo::finalField}); |
| } |
| set mutableField$cc(core::Object mutableField_) → dynamic |
| this.{=self::Foo::mutableField} = mutableField_ as self::Foo::T; |
| method method$cc(core::Object x) → void |
| this.{=self::Foo::method}(x as self::Foo::T); |
| set setter$cc(core::Object x) → void |
| this.{=self::Foo::setter} = x as self::Foo::T; |
| } |
| static method main() → dynamic { |
| self::Foo<core::int> fooInt = new self::Foo::•<core::int>(1, (core::int x) → core::Null {}); |
| fooInt.{self::Foo::method}(3); |
| fooInt.{self::Foo::setter} = 3; |
| fooInt.{self::Foo::withCallback}((core::int x) → core::Null {}); |
| fooInt.{self::Foo::withCallback}((core::num x) → core::Null {}); |
| fooInt.{self::Foo::mutableField} = 3; |
| fooInt.{self::Foo::mutableCallbackField} = (core::int x) → core::Null {}; |
| self::Foo<core::num> fooNum = fooInt; |
| fooNum.{self::Foo::method$cc}(3); |
| fooNum.{self::Foo::method$cc}(2.5); |
| fooNum.{self::Foo::setter$cc} = 3; |
| fooNum.{self::Foo::setter$cc} = 2.5; |
| fooNum.{self::Foo::withCallback}((core::num x) → core::Null {}); |
| fooNum.{self::Foo::mutableField$cc} = 3; |
| fooNum.{self::Foo::mutableField$cc} = 2.5; |
| fooNum.{self::Foo::mutableCallbackField}.call(3); |
| fooNum.{self::Foo::mutableCallbackField}.call(2.5); |
| fooNum.{self::Foo::mutableCallbackField} = (core::num x) → core::Null {}; |
| } |