| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:25:14: Error: The argument type 'B?' can't be assigned to the parameter type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // fooContext(x); // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:26:9: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // A a = x; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:27:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <A>[...l]; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:28:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced. |
| // <A>[...l2]; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <A, A>{...m}; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <A, A>{...m}; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:13: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced. |
| // <A, A>{...m2}; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // Try changing the type of the variable. |
| // for (A y in l) {} // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:32:15: Error: The type 'List<B>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<B>?' is nullable and 'Iterable<dynamic>' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'Iterable' is from 'dart:core'. |
| // for (A y in l2) {} // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:34:16: Error: Type 'A' of the case expression is not a subtype of type 'B?' of this switch expression. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // case const A(): |
| // ^ |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:33:11: Context: The switch expression is here. |
| // switch (x) /* Error. */ { |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:39:10: Error: A value of type 'B?' can't be returned from a function with return type 'A' because 'B?' is nullable and 'A' isn't. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // return x; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:43:14: Error: The argument type 'List<B?>' can't be assigned to the parameter type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // barContext(x); // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:44:15: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // List<A> y = x; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:45:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <List<A>>[...l]; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:46:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <List<A>, List<A>>{...m}; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:46:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // <List<A>, List<A>>{...m}; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:47:16: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // Try changing the type of the variable. |
| // for (List<A> y in l) {} // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:48:10: Error: A value of type 'List<B?>' can't be returned from a function with return type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| // - 'List' is from 'dart:core'. |
| // - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| // return x; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/assignability_error_messages.dart:52:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't. |
| // bazContext(c); |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A extends core::Object /*hasConstConstructor*/ { |
| const constructor •() → self::A |
| : super core::Object::•() |
| ; |
| } |
| class B extends self::A { |
| synthetic constructor •() → self::B |
| : super self::A::•() |
| ; |
| } |
| class C extends core::Object { |
| synthetic constructor •() → self::C |
| : super core::Object::•() |
| ; |
| method call() → core::num? {} |
| } |
| static method fooContext(self::A x) → void {} |
| static method barContext(core::List<self::A> x) → void {} |
| static method bazContext(() → core::num f) → void {} |
| static method foo(self::B? x, core::List<self::B?> l, core::Map<self::B?, self::B?> m, core::List<self::B>? l2, core::Map<self::B, self::B>? m2) → self::A { |
| self::fooContext(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:25:14: Error: The argument type 'B?' can't be assigned to the parameter type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| fooContext(x); // Error. |
| ^" in x); |
| self::A a = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:26:9: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| A a = x; // Error. |
| ^" in x; |
| <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:27:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <A>[...l]; // Error. |
| ^"]; |
| <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:28:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced. |
| <A>[...l2]; // Error. |
| ^"]; |
| <self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <A, A>{...m}; // Error. |
| ^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:13: Error: Can't assign spread entry values of type 'B?' to map entry values of type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <A, A>{...m}; // Error. |
| ^"}; |
| <self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:13: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced. |
| <A, A>{...m2}; // Error. |
| ^": null}; |
| { |
| core::Iterator<self::B?> :sync-for-iterator = l.{core::Iterable::iterator}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) { |
| final self::B? #t3 = :sync-for-iterator.{core::Iterator::current}; |
| { |
| self::A y = let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:10: Error: A value of type 'B?' can't be assigned to a variable of type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| Try changing the type of the variable. |
| for (A y in l) {} // Error. |
| ^" in #t3; |
| } |
| } |
| } |
| { |
| core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:32:15: Error: The type 'List<B>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<B>?' is nullable and 'Iterable<dynamic>' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'Iterable' is from 'dart:core'. |
| for (A y in l2) {} // Error. |
| ^" in l2).{core::Iterable::iterator}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) { |
| self::A y = :sync-for-iterator.{core::Iterator::current}; |
| {} |
| } |
| } |
| #L1: |
| switch(x) { |
| #L2: |
| case #C1: |
| { |
| break #L1; |
| } |
| #L3: |
| default: |
| { |
| break #L1; |
| } |
| } |
| return let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:39:10: Error: A value of type 'B?' can't be returned from a function with return type 'A' because 'B?' is nullable and 'A' isn't. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| return x; // Error. |
| ^" in x; |
| } |
| static method bar(core::List<self::B?> x, core::List<core::List<self::B?>> l, core::Map<core::List<self::B?>, core::List<self::B?>> m) → core::List<self::A> { |
| self::barContext(let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:43:14: Error: The argument type 'List<B?>' can't be assigned to the parameter type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| barContext(x); // Error. |
| ^" in x); |
| core::List<self::A> y = let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:44:15: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| List<A> y = x; // Error. |
| ^" in x; |
| <core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:45:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <List<A>>[...l]; // Error. |
| ^"]; |
| <core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:46:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <List<A>, List<A>>{...m}; // Error. |
| ^": invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:46:25: Error: Can't assign spread entry values of type 'List<B?>' to map entry values of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| <List<A>, List<A>>{...m}; // Error. |
| ^"}; |
| { |
| core::Iterator<core::List<self::B?>> :sync-for-iterator = l.{core::Iterable::iterator}; |
| for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) { |
| final core::List<self::B?> #t9 = :sync-for-iterator.{core::Iterator::current}; |
| { |
| core::List<self::A> y = let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:47:16: Error: A value of type 'List<B?>' can't be assigned to a variable of type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| Try changing the type of the variable. |
| for (List<A> y in l) {} // Error. |
| ^" in #t9; |
| } |
| } |
| } |
| return let final<BottomType> #t11 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:48:10: Error: A value of type 'List<B?>' can't be returned from a function with return type 'List<A>' because 'B?' is nullable and 'A' isn't. |
| - 'List' is from 'dart:core'. |
| - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'. |
| return x; // Error. |
| ^" in x; |
| } |
| static method baz(self::C c) → void { |
| self::bazContext(let final<BottomType> #t12 = invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:52:14: Error: The argument type 'num? Function()' can't be assigned to the parameter type 'num Function()' because 'num?' is nullable and 'num' isn't. |
| bazContext(c); |
| ^" in let final self::C #t13 = c in #t13.==(null) ?{() → core::num?} null : #t13.{self::C::call}); |
| } |
| static method main() → dynamic {} |
| |
| constants { |
| #C1 = self::A {} |
| } |