blob: 8370e93084a281e18c8b292a360736239cbbf927 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/records/record_pattern_inside_if_case.dart:32:45: Warning: The null-assert pattern will have no effect because the matched type isn't nullable.
// Try replacing the null-assert pattern with its nested pattern.
// if (x case (int _, double y, foo: String _!, bar: var _)) {
// ^
//
import self as self;
import "dart:core" as core;
static method test1(core::Record x) dynamic {
{
final synthesized core::Record #0#0 = x;
if(#0#0 is (core::Object?, core::Object?) && #C1 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$1{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0{(core::Object?, core::Object?)}.$2{core::Object?}) {
}
}
{
final synthesized core::Record #1#0 = x;
if(#1#0 is (core::Object?, {a: core::Object?}) && #C1 =={core::num::==}{(core::Object) → core::bool} #1#0{(core::Object?, {a: core::Object?})}.$1{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} #1#0{(core::Object?, {a: core::Object?})}.a{core::Object?}) {
}
}
{
final synthesized core::Record #2#0 = x;
if(#2#0 is (core::Object?, {a: core::Object?}) && #C1 =={core::num::==}{(core::Object) → core::bool} #2#0{(core::Object?, {a: core::Object?})}.a{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} #2#0{(core::Object?, {a: core::Object?})}.$1{core::Object?}) {
}
}
{
final synthesized core::Record #3#0 = x;
if(#3#0 is ({a: core::Object?, b: core::Object?}) && #C1 =={core::num::==}{(core::Object) → core::bool} #3#0{({a: core::Object?, b: core::Object?})}.a{core::Object?} && #C2 =={core::num::==}{(core::Object) → core::bool} #3#0{({a: core::Object?, b: core::Object?})}.b{core::Object?}) {
}
}
{
hoisted core::double y;
final synthesized core::Record #4#0 = x;
late final synthesized core::Object? #4#3 = (#4#0 as{Unchecked} (core::Object?, core::Object?, {bar: core::Object?, foo: core::Object?})).$2{core::Object?};
late final synthesized core::Object? #4#4 = (#4#0 as{Unchecked} (core::Object?, core::Object?, {bar: core::Object?, foo: core::Object?})).foo{core::Object?};
if(#4#0 is (core::Object?, core::Object?, {bar: core::Object?, foo: core::Object?}) && #4#0{(core::Object?, core::Object?, {bar: core::Object?, foo: core::Object?})}.$1{core::Object?} is core::int && (#4#3 is core::double && (let final dynamic #t1 = y = #4#3{core::double} in true)) && (let final dynamic #t2 = #4#4! in #4#4! is core::String)) {
return 0;
}
else {
return 1;
}
}
}
static method test2((core::int, core::int) x) dynamic {
{
final synthesized(core::int, core::int) #0#0 = x;
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0.$1{core::int} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0.$2{core::int}) {
}
}
}
static method test3((core::int, {required a: core::int}) x) dynamic {
{
final synthesized(core::int, {required a: core::int}) #0#0 = x;
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0.$1{core::int} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0.a{core::int}) {
}
}
{
final synthesized(core::int, {required a: core::int}) #1#0 = x;
if(#C1 =={core::num::==}{(core::Object) core::bool} #1#0.a{core::int} && #C2 =={core::num::==}{(core::Object) → core::bool} #1#0.$1{core::int}) {
}
}
}
static method test4(({required a: core::int, required b: core::int}) x) dynamic {
{
final synthesized({required a: core::int, required b: core::int}) #0#0 = x;
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0.a{core::int} && #C2 =={core::num::==}{(core::Object) → core::bool} #0#0.b{core::int}) {
}
}
}
static method test5((core::int, core::double, {required bar: dynamic, required foo: core::String}) x) dynamic {
{
hoisted core::double y;
final synthesized(core::int, core::double, {required bar: dynamic, required foo: core::String}) #0#0 = x;
late final synthesized core::double #0#2 = #0#0.$2{core::double};
late final synthesized core::String #0#3 = #0#0.foo{core::String};
if(#0#0.$1{core::int} is core::int && (#0#2 is core::double && (let final dynamic #t3 = y = #0#2 in true)) && (let final dynamic #t4 = #0#3! in #0#3! is core::String)) {
return 0;
}
else {
return 1;
}
}
}
constants {
#C1 = 1
#C2 = 2
}