| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/patterns/issue51314.dart:7:14: Error: A value of type 'num?' can't be assigned to a variable of type 'String'. |
| // String s = v2; // Error |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| static method test() → void { |
| hoisted has-declared-initializer core::num? v1; |
| hoisted has-declared-initializer core::num? v2; |
| { |
| final synthesized core::Map<core::Object, core::num?> #0#0 = <core::Object, core::num?>{"one": 1, 2: 2}; |
| synthesized core::num? #0#3; |
| synthesized core::bool #0#3#isSet = false; |
| synthesized core::num? #0#6; |
| synthesized core::bool #0#6#isSet = false; |
| if(!((!((#0#3#isSet ?{core::num?} #0#3{core::num?} : let final core::bool #t1 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::num?}) == null) || null is core::num? && #0#0.{core::Map::containsKey}(#C1){(core::Object?) → core::bool}) && ((#0#3#isSet ?{core::num?} #0#3{core::num?} : let final core::bool #t2 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::num?}) is core::num? && (let final core::num? #t3 = v1 = #0#3#isSet ?{core::num?} #0#3{core::num?} : let final core::bool #t4 = #0#3#isSet = true in #0#3 = #0#0.{core::Map::[]}(#C1){(core::Object?) → core::num?} in true)) && (!((#0#6#isSet ?{core::num?} #0#6{core::num?} : let final core::bool #t5 = #0#6#isSet = true in #0#6 = #0#0.{core::Map::[]}(#C2){(core::Object?) → core::num?}) == null) || null is core::num? && #0#0.{core::Map::containsKey}(#C2){(core::Object?) → core::bool}) && (let final core::num? #t6 = v2 = #0#6#isSet ?{core::num?} #0#6{core::num?} : let final core::bool #t7 = #0#6#isSet = true in #0#6 = #0#0.{core::Map::[]}(#C2){(core::Object?) → core::num?} in true))) |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); |
| } |
| core::String s = invalid-expression "pkg/front_end/testcases/patterns/issue51314.dart:7:14: Error: A value of type 'num?' can't be assigned to a variable of type 'String'. |
| String s = v2; // Error |
| ^" in v2 as{TypeError} core::String; |
| } |
| |
| constants { |
| #C1 = "one" |
| #C2 = 2 |
| } |
| |
| Extra constant evaluation status: |
| Evaluated: IsExpression @ org-dartlang-testcase:///issue51314.dart:6:13 -> BoolConstant(true) |
| Evaluated: IsExpression @ org-dartlang-testcase:///issue51314.dart:6:25 -> BoolConstant(true) |
| Extra constant evaluation: evaluated: 67, effectively constant: 2 |