blob: b7e040064676fb016bd444602e6fc1c513526a59 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
static method test1(core::int value) core::String {
#L1:
{
final synthesized core::int #0#0 = value;
{
if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) {
{
return "case <2";
}
}
}
{
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0) {
{
return "case 2";
}
}
}
}
return "not matched";
}
static method test2(core::int value) core::String {
#L2:
{
final synthesized core::int #0#0 = value;
{
if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) {
{
return "case <2";
}
}
}
{
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0 || true) {
{
return "case 2";
}
}
}
}
return "not matched";
}
static method test3(core::int value) core::String {
#L3:
{
final synthesized core::int #0#0 = value;
{
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0) {
{
return "case 2";
}
}
}
{
if(#0#0.{core::num::<}(#C1){(core::num) → core::bool} || true) {
{
return "case <2";
}
}
}
}
return "not matched";
}
static method test4(core::int value) core::String {
#L4:
{
final synthesized core::int #0#0 = value;
{
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0) {
{
return "case 2";
}
}
}
{
if(#0#0.{core::num::<}(#C1){(core::num) → core::bool}) {
{
return "case <2";
}
}
}
{
{
{
return "default";
}
}
}
}
}
static method test5(core::int value) core::String {
#L5:
{
final synthesized core::int #0#0 = value;
{
if(#C1 =={core::num::==}{(core::Object) core::bool} #0#0) {
{
return "case 2";
}
}
}
{
if(#0#0.{core::num::<}(#C1){(core::num) → core::bool} || #0#0.{core::num::>}(#C2){(core::num) → core::bool}) {
{
return "case <2 >3";
}
}
}
{
{
{
return "default";
}
}
}
}
}
static method test6(core::int value) core::String {
#L6:
switch(value) /* core::int */ {
#L7:
case #C1:
{
return "case 2";
}
#L8:
case #C3:
case #C4:
{
return "case 1/4";
}
#L9:
default:
{
return "default";
}
}
}
static method main() dynamic {
self::expect("case <2", self::test1(1));
self::expect("case 2", self::test1(2));
self::expect("not matched", self::test1(3));
self::expect("case <2", self::test2(1));
self::expect("case 2", self::test2(2));
self::expect("case 2", self::test2(3));
self::expect("case <2", self::test3(1));
self::expect("case 2", self::test3(2));
self::expect("case <2", self::test3(3));
self::expect("case <2", self::test4(1));
self::expect("case 2", self::test4(2));
self::expect("default", self::test4(3));
self::expect("case <2", self::test4(1));
self::expect("case 2", self::test4(2));
self::expect("default", self::test4(3));
self::expect("case <2 >3", self::test5(1));
self::expect("case 2", self::test5(2));
self::expect("default", self::test5(3));
self::expect("case <2 >3", self::test5(4));
self::expect("case 1/4", self::test6(1));
self::expect("case 2", self::test6(2));
self::expect("default", self::test6(3));
self::expect("case 1/4", self::test6(4));
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
constants {
#C1 = 2
#C2 = 3
#C3 = 1
#C4 = 4
}