blob: a1b3d155591c51a9b4387bdf3a284819669741c9 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/constant_null_check.dart:9:17: Error: Constant evaluation error:
// const int? d = c!;
// ^
// pkg/front_end/testcases/nnbd/constant_null_check.dart:9:17: Context: Constant expression must be non-null.
// const int? d = c!;
// ^
// pkg/front_end/testcases/nnbd/constant_null_check.dart:9:12: Context: While analyzing:
// const int? d = c!;
// ^
//
// pkg/front_end/testcases/nnbd/constant_null_check.dart:17:23: Error: Constant evaluation error:
// const Class f = const Class(c);
// ^
// pkg/front_end/testcases/nnbd/constant_null_check.dart:13:30: Context: Constant expression must be non-null.
// const Class(int? x) : y = x!;
// ^
// pkg/front_end/testcases/nnbd/constant_null_check.dart:17:13: Context: While analyzing:
// const Class f = const Class(c);
// ^
//
import self as self;
import "dart:core" as core;
class Class extends core::Object /*hasConstConstructor*/ {
final field core::int y;
const constructor •(core::int? x) self::Class
: self::Class::y = x!, super core::Object::•()
;
}
static const field core::int? a = #C1;
static const field core::int b = #C1;
static const field core::int? c = #C2;
static const field core::int? d = invalid-expression "Constant expression must be non-null.";
static const field self::Class e = #C3;
static const field self::Class f = invalid-expression "Constant expression must be non-null.";
static method main() dynamic {
self::expect(42, #C1);
self::expect(42, #C1);
self::expect(42, (#C3).{self::Class::y});
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!expected.{core::Object::==}(actual))
throw "Expected ${expected}, actual ${actual}";
}
constants {
#C1 = 42
#C2 = null
#C3 = self::Class {y:#C1}
}
Constructor coverage from constants:
org-dartlang-testcase:///constant_null_check.dart:
- Class. (from org-dartlang-testcase:///constant_null_check.dart:13:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)