blob: 31a66862b204044b3b4a401f7d9ae2d9f0308ad6 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
class C extends core::Object {
final field core::int? _f2;
final field core::int? _f3;
final field core::int? _f4;
constructor •(core::int? i) self::C
: self::C::_f2 = i, self::C::_f3 = i, self::C::_f4 = i, super core::Object::•()
;
static synthetic method _#new#tearOff(core::int? i) → self::C
return new self::C::•(i);
}
class A extends core::Object {
constructor •(core::int? i) self::A
: super core::Object::•()
;
static synthetic method _#new#tearOff(core::int? i) → self::A
return new self::A::•(i);
}
abstract class M3 extends core::Object /*isMixinDeclaration*/ {
}
abstract class D extends self::_D&A&M3 {
final field core::int? _f4;
constructor •(core::int? i) self::D
: self::D::_f4 = i, super self::_D&A&M3::•(i)
;
}
abstract class M1 extends core::Object /*isMixinDeclaration*/ {
field core::int? _#M1#_f2 = null;
field core::bool _#M1#_f2#isSet = false;
field core::int? _#M1#_f3 = null;
field core::bool _#M1#_f3#isSet = false;
field core::int? _#M1#_f4 = null;
field core::bool _#M1#_f4#isSet = false;
get _f2() core::int?
return this.{self::M1::_#M1#_f2#isSet}{core::bool} ?{core::int?} this.{self::M1::_#M1#_f2}{core::int?} : throw{for-error-handling} new _in::LateError::fieldNI("_f2");
set _f2(core::int? _f2#param) → void {
this.{self::M1::_#M1#_f2#isSet} = true;
this.{self::M1::_#M1#_f2} = _f2#param;
}
get _f3() core::int?
return this.{self::M1::_#M1#_f3#isSet}{core::bool} ?{core::int?} this.{self::M1::_#M1#_f3}{core::int?} : throw{for-error-handling} new _in::LateError::fieldNI("_f3");
set _f3(core::int? _f3#param) → void
if(this.{self::M1::_#M1#_f3#isSet}{core::bool})
throw{for-error-handling} new _in::LateError::fieldAI("_f3");
else {
this.{self::M1::_#M1#_f3#isSet} = true;
this.{self::M1::_#M1#_f3} = _f3#param;
}
get _f4() core::int? {
if(!this.{self::M1::_#M1#_f4#isSet}{core::bool}) {
final core::int? #t1 = 0;
if(this.{self::M1::_#M1#_f4#isSet}{core::bool})
throw{for-error-handling} new _in::LateError::fieldADI("_f4");
this.{self::M1::_#M1#_f4} = #t1;
this.{self::M1::_#M1#_f4#isSet} = true;
}
return this.{self::M1::_#M1#_f4}{core::int?};
}
}
class B extends core::Object {
constructor •(core::int? i) self::B
: super core::Object::•()
;
static synthetic method _#new#tearOff(core::int? i) → self::B
return new self::B::•(i);
}
class E extends self::_E&B&M1 implements self::D {
constructor •(core::int? i) self::E
: super self::_E&B&M1::•(i)
;
static synthetic method _#new#tearOff(core::int? i) → self::E
return new self::E::•(i);
@#C1
method noSuchMethod(core::Invocation invocation) dynamic
return super.{core::Object::noSuchMethod}(invocation);
}
abstract class _D&A&M3 = self::A with self::M3 /*isAnonymousMixin*/ {
synthetic constructor •(core::int? i) self::_D&A&M3
: super self::A::•(i)
;
}
abstract class _E&B&M1 = self::B with self::M1 /*isAnonymousMixin*/ {
synthetic constructor •(core::int? i) self::_E&B&M1
: super self::B::•(i)
;
synthetic mixin-super-stub get _f2() core::int?
return super.{self::M1::_f2};
synthetic mixin-super-stub set _f2(core::int? _f2#param) → void
return super.{self::M1::_f2} = _f2#param;
synthetic mixin-super-stub get _f3() core::int?
return super.{self::M1::_f3};
synthetic mixin-super-stub set _f3(core::int? _f3#param) → void
return super.{self::M1::_f3} = _f3#param;
synthetic mixin-super-stub get _f4() core::int?
return super.{self::M1::_f4};
}
static method acceptsInt(core::int x) void {}
static method testConflictWithNoSuchMethodForwarderIfImplementedInMixin(self::C c) void {
if(!(c.{self::C::_f2}{core::int?} == null)) {
core::int? x = c.{self::C::_f2}{core::int?};
x = null;
}
}
static method testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin1(self::C c) void {
if(!(c.{self::C::_f3}{core::int?} == null)) {
core::int x = c.{self::C::_f3}{core::int?} as{Unchecked} core::int;
self::acceptsInt(x);
}
}
static method testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin2(self::C c) void {
if(!(c.{self::C::_f4}{core::int?} == null)) {
core::int x = c.{self::C::_f4}{core::int?} as{Unchecked} core::int;
self::acceptsInt(x);
}
}
static method main() dynamic {
for (self::C c in <self::C>[new self::C::•(null), new self::C::•(0)]) {
self::testConflictWithNoSuchMethodForwarderIfImplementedInMixin(c);
self::testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin1(c);
self::testNoConflictWithNoSuchMethodForwarderIfImplementedInMixin2(c);
}
}
constants {
#C1 = core::_Override {}
}