blob: a1f5d8fc053c3e9f2f0abb23396998ecf2d7c623 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class Const<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
final field self::Const::T% value;
const constructor •(self::Const::T% value) self::Const<self::Const::T%>
: self::Const::value = value, super core::Object::•()
;
}
static method main() dynamic {
self::test(42, false);
self::test(<core::int>[42], false);
self::test(<core::num>[42], false);
self::test(<core::int, core::String>{42: "foo"}, false);
self::test(<core::num, core::Object>{42: "foo"}, false);
self::test(new self::Const::•<core::int>(42), false);
self::test(new self::Const::•<core::num>(42), false);
self::test(#C2, true);
self::test(#C3, true);
self::test(#C5, true);
self::test(#C6, true);
self::test(#C7, true);
self::test(#C8, true);
}
static method test(dynamic value, core::bool expected) void {
core::bool matched;
#L1:
switch(value) /* dynamic */ {
#L2:
case #C2:
{
matched = true;
break #L1;
}
#L3:
case #C3:
{
matched = true;
break #L1;
}
#L4:
case #C5:
{
matched = true;
break #L1;
}
#L5:
case #C6:
{
matched = true;
break #L1;
}
#L6:
case #C7:
{
matched = true;
break #L1;
}
#L7:
case #C8:
{
matched = true;
break #L1;
}
#L8:
default:
{
matched = false;
break #L1;
}
}
if(!(matched =={core::Object::==}{(core::Object) core::bool} expected)) {
core::print("FAIL: ${value} ${matched ?{core::String} "matched" : "didn't match"}");
}
}
constants {
#C1 = 42
#C2 = <core::int>[#C1]
#C3 = <core::num>[#C1]
#C4 = "foo"
#C5 = <core::int, core::String>{#C1:#C4}
#C6 = <core::num, core::Object>{#C1:#C4}
#C7 = self::Const<core::int> {value:#C1}
#C8 = self::Const<core::num> {value:#C1}
}
Constructor coverage from constants:
org-dartlang-testcase:///implicit_constant_in_switch.dart:
- Const. (from org-dartlang-testcase:///implicit_constant_in_switch.dart:10:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)