blob: 9710d1f187f7372db66b04257913fd39b6cee414 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class Class<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor constructor1(dynamic value) self::Class<self::Class::T%>
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
const constructor constructor2(dynamic value) self::Class<self::Class::T%>
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T?, super core::Object::•()
;
const constructor constructor3(dynamic value) self::Class<self::Class::T%>
: self::Class::field = value is{ForNonNullableByDefault} self::Class<self::Class::T%>, super core::Object::•()
;
const constructor constructor4(dynamic value) self::Class<self::Class::T%>
: self::Class::field = value is{ForNonNullableByDefault} self::Class<self::Class::T%>?, super core::Object::•()
;
}
static final field core::bool isWeakMode = (#C1) is{ForNonNullableByDefault} core::List<core::Object>;
static const field core::bool c0 = #C2;
static const field core::bool c1 = #C3;
static const field core::bool c2 = #C2;
static const field core::bool c3 = #C2;
static const field core::bool c4 = #C3;
static const field core::bool c5 = #C2;
static const field core::bool c6 = #C3;
static const field core::bool c7 = #C2;
static const field core::bool c8 = #C2;
static const field core::bool c9 = #C2;
static const field core::bool c10 = #C3;
static const field core::bool c11 = #C2;
static const field core::bool c12 = #C2;
static const field self::Class<core::int> e1 = #C4;
static const field self::Class<core::List<core::int>> e2 = #C5;
static const field self::Class<Null> e3 = #C6;
static const field self::Class<core::int> e4 = #C7;
static const field self::Class<core::int?> e5 = #C8;
static const field self::Class<Null> e6 = #C6;
static const field self::Class<core::int> e7 = #C4;
static const field self::Class<core::int?> e8 = #C9;
static const field self::Class<Null> e9 = #C10;
static const field self::Class<core::int> e10 = #C7;
static const field self::Class<core::int?> e11 = #C8;
static const field self::Class<Null> e12 = #C6;
static method main() dynamic {
self::expect(null is{ForNonNullableByDefault} core::int?, #C2, "null is int?");
self::expect(null is{ForNonNullableByDefault} core::int, #C3, "null is int");
self::expect(null is{ForNonNullableByDefault} Null, #C2, "null is Null");
self::expect(null is{ForNonNullableByDefault} Never?, #C2, "null is Never?");
self::expect(null is{ForNonNullableByDefault} Never, #C3, "null is Never");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int?>, #C2, "null is FutureOr<int?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>, #C3, "null is FutureOr<int>");
self::expect(null is{ForNonNullableByDefault} FutureOr<core::int>?, #C2, "null is FutureOr<int>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Null>, #C2, "null is FutureOr<Null>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Null>?, #C2, "null is FutureOr<Null>?");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>, #C3, "null is FutureOr<Never>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never?>, #C2, "null is FutureOr<Never?>");
self::expect(null is{ForNonNullableByDefault} FutureOr<Never>?, #C2, "null is FutureOr<Never>?");
self::expect(new self::Class::constructor1<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor1(null).field");
self::expect(true, new self::Class::constructor1<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor1(null).field");
self::expect(self::isWeakMode, (#C5).{self::Class::field}, "const Class<List<int>>.constructor1(<Null>[null]).field");
self::expect(new self::Class::constructor1<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor1(null).field");
self::expect(new self::Class::constructor2<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor2(null).field");
self::expect(true, new self::Class::constructor2<core::int?>(null).{self::Class::field}, "new Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor2(null).field");
self::expect(new self::Class::constructor2<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor2(null).field");
self::expect(new self::Class::constructor3<core::int>(null).{self::Class::field}, (#C4).{self::Class::field}, "Class<int>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<core::int?>(null).{self::Class::field}, (#C9).{self::Class::field}, "Class<int?>.constructor3(null).field");
self::expect(new self::Class::constructor3<Null>(null).{self::Class::field}, (#C10).{self::Class::field}, "Class<Null>.constructor3(null).field");
self::expect(new self::Class::constructor4<core::int>(null).{self::Class::field}, (#C7).{self::Class::field}, "Class<int>.constructor4(null).field");
self::expect(new self::Class::constructor4<core::int?>(null).{self::Class::field}, (#C8).{self::Class::field}, "Class<int?>.constructor4(null).field");
self::expect(new self::Class::constructor4<Null>(null).{self::Class::field}, (#C6).{self::Class::field}, "Class<Null>.constructor4(null).field");
}
static method expect(dynamic expected, dynamic actual, core::String message) dynamic {
if(!expected.{core::Object::==}(actual))
throw "Expected ${expected}, actual ${actual} for ${message}";
}
constants {
#C1 = <Null>[]
#C2 = true
#C3 = false
#C4 = self::Class<core::int*> {field:#C3}
#C5 = self::Class<core::List<core::int*>*> {field:#C2}
#C6 = self::Class<Null> {field:#C2}
#C7 = self::Class<core::int*> {field:#C2}
#C8 = self::Class<core::int?> {field:#C2}
#C9 = self::Class<core::int?> {field:#C3}
#C10 = self::Class<Null> {field:#C3}
}
Extra constant evaluation status:
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:45:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:46:15 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:47:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:48:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:49:15 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:50:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:51:15 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:52:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:53:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:54:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:55:15 -> BoolConstant(false)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:56:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:57:15 -> BoolConstant(true)
Evaluated: IsExpression @ org-dartlang-testcase:///constant_null_is.dart:7:40 -> BoolConstant(true)
Extra constant evaluation: evaluated: 101, effectively constant: 14
Constructor coverage from constants:
org-dartlang-testcase:///constant_null_is.dart:
- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:38:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:41:9)