blob: 980d6fe46f46dafcf62ae820157cfcd1166c9661 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "opt_in_lib1.dart" as opt;
import "opt_out_lib.dart" as opt2;
import "opt_in_lib2.dart" as opt3;
import "org-dartlang-testcase:///opt_in_lib1.dart";
import "org-dartlang-testcase:///opt_in_lib2.dart";
import "org-dartlang-testcase:///opt_out_lib.dart";
class Super extends core::Object {
synthetic constructor •() self::Super*
: super core::Object::•()
;
get getter() opt::B*
return new opt::B::•();
set setter(opt::A* a) void {}
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
abstract class _Class1&Super&Mixin1 = self::Super with opt2::Mixin1 /*isAnonymousMixin*/ {
synthetic constructor •() self::_Class1&Super&Mixin1*
: super self::Super::•()
;
}
class Class1 extends self::_Class1&Super&Mixin1 {
synthetic constructor •() self::Class1*
: super self::_Class1&Super&Mixin1::•()
;
}
abstract class _Class2&Base&Mixin2 = opt::Base with opt3::Mixin2 /*isAnonymousMixin*/ {
synthetic constructor •() self::_Class2&Base&Mixin2*
: super opt::Base::•()
;
abstract member-signature get _privateGetter() opt::B*; -> opt::Base::_privateGetter
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
abstract member-signature set _privateSetter(opt::A* a) void; -> opt::Base::_privateSetter
}
class Class2 extends self::_Class2&Base&Mixin2 {
synthetic constructor •() self::Class2*
: super self::_Class2&Base&Mixin2::•()
;
}
static method main() dynamic {
self::Class1* c = new self::Class1::•();
c.{self::Super::getter}{opt::B*}.{opt::B::property}{core::int*};
c.{self::Super::setter} = new opt::B::•();
opt::testInterface2(new opt3::Mixin2::•());
}
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/mixin_from_dill/opt_in_lib1.dart:32:8: Error: A catch clause must have a body, even if it is empty.
// Try adding an empty body.
// } on NoSuchMethodError (e) {
// ^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/mixin_from_dill/opt_in_lib1.dart:34:3: Error: Expected ';' after this.
// }
// ^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/mixin_from_dill/opt_in_lib1.dart:38:8: Error: A catch clause must have a body, even if it is empty.
// Try adding an empty body.
// } on NoSuchMethodError (e) {
// ^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/nnbd_mixed/hierarchy/mixin_from_dill/opt_in_lib1.dart:40:3: Error: Expected ';' after this.
// }
// ^
//
import self as opt;
import "dart:core" as core;
class A extends core::Object {
synthetic constructor •() opt::A
: super core::Object::•()
;
}
class B extends opt::A {
synthetic constructor •() opt::B
: super opt::A::•()
;
get property() core::int
return 0;
}
class C extends opt::A {
synthetic constructor •() opt::C
: super opt::A::•()
;
}
class Base extends core::Object {
synthetic constructor •() opt::Base
: super core::Object::•()
;
get _privateGetter() opt::B
return new opt::B::•();
set _privateSetter(opt::A a) void {}
}
abstract class Interface1 extends core::Object {
synthetic constructor •() opt::Interface1
: super core::Object::•()
;
abstract get getter() opt::A;
abstract set setter(opt::C c) void;
}
abstract class Interface2 extends core::Object {
synthetic constructor •() opt::Interface2
: super core::Object::•()
;
abstract get _privateGetter() opt::A;
abstract set _privateSetter(opt::C c) void;
}
static method testInterface2(opt::Interface2 c) dynamic {
try {
c.{opt::Interface2::_privateGetter}{opt::A};
throw "Expected NoSuchMethodError";
}
on core::NoSuchMethodError catch(no-exception-var) {
}
(dynamic e) Null {
core::print(e);
};
try {
c.{opt::Interface2::_privateSetter} = new opt::C::•();
throw "Expected NoSuchMethodError";
}
on core::NoSuchMethodError catch(no-exception-var) {
}
(dynamic e) Null {
core::print(e);
};
}
library /*isNonNullableByDefault*/;
import self as opt3;
import "dart:core" as core;
import "opt_in_lib1.dart" as opt;
import "org-dartlang-testcase:///opt_in_lib1.dart";
class Mixin2 extends core::Object implements opt::Interface2 {
synthetic constructor •() opt3::Mixin2
: super core::Object::•()
;
no-such-method-forwarder get /* from org-dartlang-testcase:///opt_in_lib1.dart */ _privateGetter() opt::A
return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} opt::A;
no-such-method-forwarder set /* from org-dartlang-testcase:///opt_in_lib1.dart */ _privateSetter(opt::C c) void
return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(c)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))){(core::Invocation) → dynamic};
}
library;
import self as opt2;
import "dart:core" as core;
import "opt_in_lib1.dart" as opt;
import "org-dartlang-testcase:///opt_in_lib1.dart";
abstract class Mixin1 extends core::Object implements opt::Interface1 {
synthetic constructor •() opt2::Mixin1*
: super core::Object::•()
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
abstract member-signature get getter() opt::A*; -> opt::Interface1::getter
abstract member-signature set setter(opt::C* c) void; -> opt::Interface1::setter
}
constants {
#C1 = #org-dartlang-testcase:///opt_in_lib2.dart::_privateGetter
#C2 = <core::Type*>[]
#C3 = <dynamic>[]
#C4 = <core::Symbol*, dynamic>{)
#C5 = #org-dartlang-testcase:///opt_in_lib2.dart::_privateSetter=
}