blob: 9cbbc0bebdc4c6d620cbcc7981447417dc8d1629 [file] [log] [blame]
library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
typedef F<contravariant T extends core::Object? = dynamic> = (T%) void;
class B<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::B<self::B::T%>
: super core::Object::•()
;
operator +(covariant-by-class self::B<self::B::T%> other) self::B<self::B::T%>
return throw "";
}
class C<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::C<self::C::T%>
: super core::Object::•()
;
operator [](core::int i) self::B<(self::C::T%) void>
return throw "";
operator []=(core::int i, self::B<(self::C::T%) void> x) void {}
}
class C2<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::C2<self::C2::T%>
: super core::Object::•()
;
operator [](core::int i) self::B<(self::C2::T%) void>?
return throw "";
operator []=(core::int i, self::B<(self::C2::T%) void>? x) void {}
}
static method test(self::C<core::num> c, self::C2<core::num> c2) void {
c.{self::C::[]=}(0, new self::B::•<(core::num) void>()){(core::int, self::B<(core::num) void>) void};
c2.{self::C2::[]=}(0, new self::B::•<(core::num) void>()){(core::int, self::B<(core::num) void>?) void};
let final self::C<core::num> #t1 = c in let final core::int #t2 = 0 in #t1.{self::C::[]=}(#t2, (#t1.{self::C::[]}(#t2){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>}){(core::int, self::B<(core::num) → void>) → void};
self::B<(core::num) void> x = let final self::C<core::num> #t3 = c in let final core::int #t4 = 0 in let final self::B<(core::num) → void> #t5 = (#t3.{self::C::[]}(#t4){(core::int) → self::B<(core::num) → void>} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>).{self::B::+}(new self::B::•<(core::num) → void>()){(self::B<(core::num) → void>) → self::B<(core::num) → void>} in let final void #t6 = #t3.{self::C::[]=}(#t4, #t5){(core::int, self::B<(core::num) → void>) → void} in #t5;
let final self::C2<core::num> #t7 = c2 in let final core::int #t8 = 0 in #t7.{self::C2::[]}(#t8){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? == null ?{self::B<(core::num) → void>} #t7.{self::C2::[]=}(#t8, new self::B::•<(core::num) → void>()){(core::int, self::B<(core::num) → void>?) → void} : null;
self::B<(core::num) void> y = let final self::C2<core::num> #t9 = c2 in let final core::int #t10 = 0 in let final self::B<(core::num) → void>? #t11 = #t9.{self::C2::[]}(#t10){(core::int) → self::B<(core::num) → void>?} as{TypeError,CovarianceCheck,ForNonNullableByDefault} self::B<(core::num) → void>? in #t11 == null ?{self::B<(core::num) → void>} let final self::B<(core::num) → void> #t12 = new self::B::•<(core::num) → void>() in let final void #t13 = #t9.{self::C2::[]=}(#t10, #t12){(core::int, self::B<(core::num) → void>?) → void} in #t12 : #t11{self::B<(core::num) → void>};
}
static method main() dynamic {}
Extra constant evaluation status:
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:27:40 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:27:40 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:28:48 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:28:48 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:29:42 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:29:42 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:30:50 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///contravariant_index_assign.dart:30:50 -> IntConstant(0)
Extra constant evaluation: evaluated: 70, effectively constant: 8