blob: dc786284689f08fda578c7f1707ad8d5bdb43736 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
typedef ContraFunction<contravariant T extends core::Object? = dynamic> = (T%) void;
typedef InvFunction<invariant T extends core::Object? = dynamic> = (T%) T%;
class Contravariant<contravariant T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::Contravariant<self::Contravariant::T%>
;
}
class Invariant<invariant T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::Invariant<self::Invariant::T%>
;
}
class A<contravariant T extends core::Object? = dynamic, U extends core::Object? = dynamic, V extends core::Object? = dynamic> extends core::Object {
final field (self::A::T%) →? void field;
synthetic constructor •() self::A<self::A::T%, self::A::U%, self::A::V%>
;
method method(self::A::T% t, (self::A::U%) void u, generic-covariant-impl self::A::V% v) void
;
method method2(self::A::T% x, [self::A::T? y]) void
;
set x(self::A::T% t) void
;
get mapContra() core::Map<self::A::U%, self::Contravariant<self::A::V%>>
;
get mapContraFn() core::Map<self::A::U%, (self::A::V%) void>
;
get mapInv() core::Map<self::A::U%, self::Invariant<self::A::V%>>
;
get mapInvFn() core::Map<self::A::U%, (self::A::V%) self::A::V%>
;
}
class B<invariant T extends core::Object? = dynamic> extends core::Object {
field self::B::T? x;
synthetic constructor •() self::B<self::B::T%>
;
method method(self::B::T% x) self::B::T%
;
set y(self::B::T% x) void
;
}
class C<contravariant T extends core::Object? = dynamic> extends core::Object {
final field (self::C::T%) →? void field;
synthetic constructor •() self::C<self::C::T%>
;
method method(self::C::T% x, [self::C::T? y]) void
;
set x(self::C::T% t) void
;
}
abstract class D<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::D<self::D::T%>
;
abstract method method(generic-covariant-impl self::D::T% x) core::int;
}
class E<invariant T extends core::Object? = dynamic> extends core::Object {
final field (self::E::T%) void f;
constructor •((self::E::T%) void f) self::E<self::E::T%>
;
method method(self::E::T% x) core::int
;
}
class F<invariant T extends core::Object? = dynamic> extends self::E<self::F::T%> implements self::D<self::F::T%> {
constructor •((self::F::T%) void f) self::F<self::F::T%>
;
forwarding-stub method method(generic-covariant-impl self::F::T% x) core::int
return super.{self::E::method}(x);
}
class NoSuchMethod<invariant T extends core::Object? = dynamic> extends core::Object implements self::B<self::NoSuchMethod::T%> {
synthetic constructor •() self::NoSuchMethod<self::NoSuchMethod::T%>
;
method noSuchMethod(core::Invocation _) dynamic
;
no-such-method-forwarder get x() self::NoSuchMethod::T?
return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#x, 1, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::NoSuchMethod::T?;
no-such-method-forwarder method method(self::NoSuchMethod::T% x) self::NoSuchMethod::T%
return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#method, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} self::NoSuchMethod::T%;
no-such-method-forwarder set y(self::NoSuchMethod::T% x) void
return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#y=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) dynamic};
no-such-method-forwarder set x(self::NoSuchMethod::T? value) void
return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#x=, 2, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) dynamic};
}
static method main() dynamic
;
static method expect(dynamic expected, dynamic actual) dynamic
;
Extra constant evaluation status:
Evaluated: SymbolLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> SymbolConstant(#x)
Evaluated: ListLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> ListConstant(const <Type*>[])
Evaluated: ListLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> ListConstant(const <dynamic>[])
Evaluated: MapLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> MapConstant(const <Symbol*, dynamic>{})
Evaluated: SymbolLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:23:5 -> SymbolConstant(#method)
Evaluated: ListLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:23:5 -> ListConstant(const <Type*>[])
Evaluated: MapLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:23:5 -> MapConstant(const <Symbol*, dynamic>{})
Evaluated: SymbolLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:24:12 -> SymbolConstant(#y=)
Evaluated: ListLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:24:12 -> ListConstant(const <Type*>[])
Evaluated: MapLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:24:12 -> MapConstant(const <Symbol*, dynamic>{})
Evaluated: SymbolLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> SymbolConstant(#x=)
Evaluated: ListLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> ListConstant(const <Type*>[])
Evaluated: MapLiteral @ org-dartlang-testcase:///generic_covariance_sound_variance.dart:22:6 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 42, effectively constant: 13