| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| import "mixin_library.dart" as mix; |
| |
| import "org-dartlang-testcase:///mixin_library.dart" show Mixin; |
| |
| class Super<S extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::Super<self::Super::S%> |
| : super core::Object::•() |
| ; |
| method foo() → dynamic |
| return 40; |
| method f() → dynamic |
| return 3; |
| } |
| abstract class _C&Super&Mixin<V extends core::Object? = dynamic> = self::Super<self::_C&Super&Mixin::V%> with mix::Mixin<self::_C&Super&Mixin::V%> /*isAnonymousMixin*/ { |
| synthetic constructor •() → self::_C&Super&Mixin<self::_C&Super&Mixin::V%> |
| : super self::Super::•() |
| ; |
| mixin-super-stub get x() → dynamic |
| return super.{mix::Mixin::x}; |
| mixin-super-stub set x(dynamic value) → void |
| return super.{mix::Mixin::x} = value; |
| mixin-super-stub get y() → dynamic |
| return super.{mix::Mixin::y}; |
| mixin-super-stub set y(dynamic value) → void |
| return super.{mix::Mixin::y} = value; |
| mixin-super-stub get z() → dynamic |
| return super.{mix::Mixin::z}; |
| mixin-super-stub set z(dynamic value) → void |
| return super.{mix::Mixin::z} = value; |
| mixin-super-stub get t() → self::_C&Super&Mixin::V? |
| return super.{mix::Mixin::t}; |
| mixin-super-stub set t(covariant-by-class self::_C&Super&Mixin::V? value) → void |
| return super.{mix::Mixin::t} = value; |
| mixin-super-stub method foo() → dynamic |
| return super.{mix::Mixin::foo}(); |
| mixin-super-stub method g(covariant-by-class self::_C&Super&Mixin::V% a) → self::_C&Super&Mixin::V? |
| return super.{mix::Mixin::g}(a); |
| mixin-super-stub method h() → dynamic |
| return super.{mix::Mixin::h}(); |
| mixin-super-stub method l() → dynamic |
| return super.{mix::Mixin::l}(); |
| mixin-super-stub method _privateMethod() → dynamic |
| return super.{mix::Mixin::_privateMethod}(); |
| mixin-super-stub method publicMethod() → dynamic |
| return super.{mix::Mixin::publicMethod}(); |
| } |
| class C<V extends core::Object? = dynamic> extends self::_C&Super&Mixin<self::C::V%> { |
| synthetic constructor •() → self::C<self::C::V%> |
| : super self::_C&Super&Mixin::•() |
| ; |
| } |
| abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> /*isAnonymousMixin*/ { |
| synthetic constructor •() → self::_D&Super&Mixin |
| : super self::Super::•() |
| ; |
| mixin-super-stub get x() → dynamic |
| return super.{mix::Mixin::x}; |
| mixin-super-stub set x(dynamic value) → void |
| return super.{mix::Mixin::x} = value; |
| mixin-super-stub get y() → dynamic |
| return super.{mix::Mixin::y}; |
| mixin-super-stub set y(dynamic value) → void |
| return super.{mix::Mixin::y} = value; |
| mixin-super-stub get z() → dynamic |
| return super.{mix::Mixin::z}; |
| mixin-super-stub set z(dynamic value) → void |
| return super.{mix::Mixin::z} = value; |
| mixin-super-stub get t() → dynamic |
| return super.{mix::Mixin::t}; |
| mixin-super-stub set t(covariant-by-class dynamic value) → void |
| return super.{mix::Mixin::t} = value; |
| mixin-super-stub method foo() → dynamic |
| return super.{mix::Mixin::foo}(); |
| mixin-super-stub method g(covariant-by-class dynamic a) → dynamic |
| return super.{mix::Mixin::g}(a); |
| mixin-super-stub method h() → dynamic |
| return super.{mix::Mixin::h}(); |
| mixin-super-stub method l() → dynamic |
| return super.{mix::Mixin::l}(); |
| mixin-super-stub method _privateMethod() → dynamic |
| return super.{mix::Mixin::_privateMethod}(); |
| mixin-super-stub method publicMethod() → dynamic |
| return super.{mix::Mixin::publicMethod}(); |
| } |
| class D extends self::_D&Super&Mixin { |
| synthetic constructor •() → self::D |
| : super self::_D&Super&Mixin::•() |
| ; |
| } |
| class C2<V extends core::Object? = dynamic> = self::Super<self::C2::V%> with mix::Mixin<self::C2::V%> { |
| synthetic constructor •() → self::C2<self::C2::V%> |
| : super self::Super::•() |
| ; |
| mixin-super-stub get x() → dynamic |
| return super.{mix::Mixin::x}; |
| mixin-super-stub set x(dynamic value) → void |
| return super.{mix::Mixin::x} = value; |
| mixin-super-stub get y() → dynamic |
| return super.{mix::Mixin::y}; |
| mixin-super-stub set y(dynamic value) → void |
| return super.{mix::Mixin::y} = value; |
| mixin-super-stub get z() → dynamic |
| return super.{mix::Mixin::z}; |
| mixin-super-stub set z(dynamic value) → void |
| return super.{mix::Mixin::z} = value; |
| mixin-super-stub get t() → self::C2::V? |
| return super.{mix::Mixin::t}; |
| mixin-super-stub set t(covariant-by-class self::C2::V? value) → void |
| return super.{mix::Mixin::t} = value; |
| mixin-super-stub method foo() → dynamic |
| return super.{mix::Mixin::foo}(); |
| mixin-super-stub method g(covariant-by-class self::C2::V% a) → self::C2::V? |
| return super.{mix::Mixin::g}(a); |
| mixin-super-stub method h() → dynamic |
| return super.{mix::Mixin::h}(); |
| mixin-super-stub method l() → dynamic |
| return super.{mix::Mixin::l}(); |
| mixin-super-stub method _privateMethod() → dynamic |
| return super.{mix::Mixin::_privateMethod}(); |
| mixin-super-stub method publicMethod() → dynamic |
| return super.{mix::Mixin::publicMethod}(); |
| } |
| class D2 = self::Super<dynamic> with mix::Mixin<dynamic> { |
| synthetic constructor •() → self::D2 |
| : super self::Super::•() |
| ; |
| mixin-super-stub get x() → dynamic |
| return super.{mix::Mixin::x}; |
| mixin-super-stub set x(dynamic value) → void |
| return super.{mix::Mixin::x} = value; |
| mixin-super-stub get y() → dynamic |
| return super.{mix::Mixin::y}; |
| mixin-super-stub set y(dynamic value) → void |
| return super.{mix::Mixin::y} = value; |
| mixin-super-stub get z() → dynamic |
| return super.{mix::Mixin::z}; |
| mixin-super-stub set z(dynamic value) → void |
| return super.{mix::Mixin::z} = value; |
| mixin-super-stub get t() → dynamic |
| return super.{mix::Mixin::t}; |
| mixin-super-stub set t(covariant-by-class dynamic value) → void |
| return super.{mix::Mixin::t} = value; |
| mixin-super-stub method foo() → dynamic |
| return super.{mix::Mixin::foo}(); |
| mixin-super-stub method g(covariant-by-class dynamic a) → dynamic |
| return super.{mix::Mixin::g}(a); |
| mixin-super-stub method h() → dynamic |
| return super.{mix::Mixin::h}(); |
| mixin-super-stub method l() → dynamic |
| return super.{mix::Mixin::l}(); |
| mixin-super-stub method _privateMethod() → dynamic |
| return super.{mix::Mixin::_privateMethod}(); |
| mixin-super-stub method publicMethod() → dynamic |
| return super.{mix::Mixin::publicMethod}(); |
| } |
| static method main() → dynamic { |
| core::print(new self::C::•<dynamic>().{self::_C&Super&Mixin::foo}(){() → dynamic}); |
| core::print(new self::C2::•<dynamic>().{self::C2::foo}(){() → dynamic}); |
| } |
| |
| library test.mixin_library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. |
| // foo() => super.foo() + f(); |
| // ^^^ |
| // |
| import self as mix; |
| import "dart:core" as core; |
| |
| class Mixin<T extends core::Object? = dynamic> extends core::Object { |
| field dynamic x = mix::f(); |
| field dynamic y = null; |
| field dynamic z = null; |
| covariant-by-class field mix::Mixin::T? t = null; |
| synthetic constructor •() → mix::Mixin<mix::Mixin::T%> |
| : super core::Object::•() |
| ; |
| method foo() → dynamic |
| return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. |
| foo() => super.foo() + f(); |
| ^^^"{<invalid>}.+(mix::f()); |
| method g(covariant-by-class mix::Mixin::T% a) → mix::Mixin::T? |
| return null; |
| method h() → dynamic |
| return mix::V(); |
| method l() → dynamic |
| return mix::_private(); |
| method _privateMethod() → dynamic |
| return 49; |
| method publicMethod() → dynamic |
| return this.{mix::Mixin::_privateMethod}(){() → dynamic}; |
| } |
| static method f() → dynamic |
| return 2; |
| static method V() → dynamic |
| return 87; |
| static method _private() → dynamic |
| return 117; |
| static method foo(dynamic m) → dynamic |
| return m{dynamic}._privateMethod(); |