| library; | |
| // | |
| // Problems in library: | |
| // | |
| // pkg/front_end/testcases/patterns/variable_names.dart:27:23: Error: The getter name is not specified explicitly, and the pattern is not a variable. Try specifying the getter name explicitly, or using a variable pattern. | |
| // } else if (x case A(: [1, 2])) { // Error | |
| // ^ | |
| // | |
| // pkg/front_end/testcases/patterns/variable_names.dart:29:22: Error: The getter name is not specified explicitly, and the pattern is not a variable. Try specifying the getter name explicitly, or using a variable pattern. | |
| // } else if (x case (: [1, 2])) { // Error | |
| // ^ | |
| // | |
| import self as self; | |
| import "dart:core" as core; | |
| abstract class A extends core::Object { | |
| synthetic constructor •() → self::A | |
| : super core::Object::•() | |
| ; | |
| abstract get foo() → core::int?; | |
| abstract get bar() → core::int; | |
| abstract get baz() → core::int?; | |
| abstract get boz() → core::num; | |
| abstract get qux() → core::bool; | |
| abstract get quux() → core::String; | |
| abstract get foobar() → core::int; | |
| } | |
| static method test(dynamic x, dynamic y, dynamic z) → dynamic { | |
| dynamic qux; | |
| dynamic quux; | |
| { | |
| final synthesized dynamic #0#0 = x; | |
| synthesized core::int? #0#2; | |
| synthesized core::bool #0#2#isSet = false; | |
| synthesized core::int? #0#5; | |
| synthesized core::bool #0#5#isSet = false; | |
| synthesized core::num #0#7; | |
| synthesized core::bool #0#7#isSet = false; | |
| { | |
| hoisted core::int foo; | |
| hoisted core::int bar; | |
| hoisted core::int baz; | |
| hoisted core::double boz; | |
| hoisted core::int foobar; | |
| if(#0#0 is self::A && (let final dynamic #t1 = (#0#2#isSet ?{core::int?} #0#2 : let final dynamic #t2 = #0#2#isSet = true in #0#2 = #0#0{self::A}.{self::A::foo}{core::int?})! in let final dynamic #t3 = foo = (#0#2#isSet ?{core::int?} #0#2 : let final dynamic #t4 = #0#2#isSet = true in #0#2 = #0#0{self::A}.{self::A::foo}{core::int?})! in true) && (let final dynamic #t5 = bar = #0#0{self::A}.{self::A::bar}{core::int} in true) && !((#0#5#isSet ?{core::int?} #0#5 : let final dynamic #t6 = #0#5#isSet = true in #0#5 = #0#0{self::A}.{self::A::baz}{core::int?}) == null)) { | |
| baz = (#0#5#isSet ?{core::int?} #0#5 : let final dynamic #t7 = #0#5#isSet = true in #0#5 = #0#0{self::A}.{self::A::baz}{core::int?}) as{Unchecked} core::int; | |
| (#0#7#isSet ?{core::num} #0#7 : let final dynamic #t8 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double; | |
| boz = (#0#7#isSet ?{core::num} #0#7 : let final dynamic #t9 = #0#7#isSet = true in #0#7 = #0#0{self::A}.{self::A::boz}{core::num}) as core::double; | |
| foobar = #0#0{self::A}.{self::A::foobar}{core::int}; | |
| { | |
| return 0; | |
| } | |
| } | |
| else { | |
| final synthesized dynamic #1#0 = x; | |
| synthesized core::Object? #1#2; | |
| synthesized core::bool #1#2#isSet = false; | |
| synthesized core::Object? #1#5; | |
| synthesized core::bool #1#5#isSet = false; | |
| synthesized core::Object? #1#7; | |
| synthesized core::bool #1#7#isSet = false; | |
| { | |
| hoisted dynamic foo##1; | |
| hoisted dynamic bar##1; | |
| hoisted dynamic baz##1; | |
| hoisted core::double boz##1; | |
| hoisted dynamic foobar##1; | |
| if(#1#0 is (core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?}) && (let final dynamic #t10 = (#1#2#isSet ?{core::Object?} #1#2 : let final dynamic #t11 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in let final dynamic #t12 = foo##1 = (#1#2#isSet ?{core::Object?} #1#2 : let final dynamic #t13 = #1#2#isSet = true in #1#2 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foo{core::Object?})! in true) && (let final dynamic #t14 = bar##1 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.bar{core::Object?} in true) && !((#1#5#isSet ?{core::Object?} #1#5 : let final dynamic #t15 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?}) == null)) { | |
| baz##1 = #1#5#isSet ?{core::Object?} #1#5 : let final dynamic #t16 = #1#5#isSet = true in #1#5 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.baz{core::Object?}; | |
| (#1#7#isSet ?{core::Object?} #1#7 : let final dynamic #t17 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double; | |
| boz##1 = (#1#7#isSet ?{core::Object?} #1#7 : let final dynamic #t18 = #1#7#isSet = true in #1#7 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.$1{core::Object?}) as core::double; | |
| foobar##1 = #1#0{(core::Object?, {bar: core::Object?, baz: core::Object?, foo: core::Object?, foobar: core::Object?})}.foobar{core::Object?}; | |
| { | |
| return 1; | |
| } | |
| } | |
| else { | |
| final synthesized dynamic #2#0 = x; | |
| if(#2#0 is self::A) { | |
| return 2; | |
| } | |
| else { | |
| final synthesized dynamic #3#0 = x; | |
| if(#3#0 is (core::Object?) && invalid-expression "pkg/front_end/testcases/patterns/variable_names.dart:29:22: Error: The getter name is not specified explicitly, and the pattern is not a variable. Try specifying the getter name explicitly, or using a variable pattern. | |
| } else if (x case (: [1, 2])) { // Error | |
| ^") { | |
| return 3; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| { | |
| final synthesized dynamic #4#0 = y as{TypeError,ForDynamic} self::A; | |
| if(!(#4#0 is self::A && (let final dynamic #t19 = qux = #4#0{self::A}.{self::A::qux}{core::bool} in true) && (let final dynamic #t20 = quux = #4#0{self::A}.{self::A::quux}{core::String} in true))) | |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); | |
| } | |
| { | |
| final synthesized dynamic #5#0 = z as{TypeError,ForDynamic} (dynamic, {quux: dynamic}); | |
| if(!(#5#0 is (core::Object?, {quux: core::Object?}) && (let final dynamic #t21 = qux = #5#0{(core::Object?, {quux: core::Object?})}.$1{core::Object?} in true) && (let final dynamic #t22 = quux = #5#0{(core::Object?, {quux: core::Object?})}.quux{core::Object?} in true))) | |
| throw{for-error-handling} new core::StateError::•("Pattern matching error"); | |
| } | |
| } |