d54e2bb568
This CL is the sum of the following 5 CLs: * https://dart-review.googlesource.com/c/sdk/+/170342/ * https://dart-review.googlesource.com/c/sdk/+/170344/ * https://dart-review.googlesource.com/c/sdk/+/170345/ * https://dart-review.googlesource.com/c/sdk/+/170346/ * https://dart-review.googlesource.com/c/sdk/+/170347/ The reason for landing the 5 CLs as one CL is to prevent potential troubles with bisecting over the branch because the change is fully functional only with all 5 CLs. Closes #40122. TEST=Verified by changes in .expect files in pkg/vm/. Bug: https://github.com/dart-lang/sdk/issues/40122 Change-Id: Ib8197802fdc69694387ae47ac990c58b3aaab7a5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170689 Commit-Queue: Dmitry Stefantsov <dmitryas@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
50 lines
2.4 KiB
Plaintext
50 lines
2.4 KiB
Plaintext
library /*isNonNullableByDefault*/;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:10:41: Error: Constant evaluation error:
|
|
// const assertLegacySubtyping1 = <Null>[] as List<int>;
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:10:41: Context: Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
|
|
// - 'List' is from 'dart:core'.
|
|
// const assertLegacySubtyping1 = <Null>[] as List<int>;
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:10:7: Context: While analyzing:
|
|
// const assertLegacySubtyping1 = <Null>[] as List<int>;
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:12:41: Error: Constant evaluation error:
|
|
// const assertLegacySubtyping2 = <int?>[] as List<int>;
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:12:41: Context: Expected constant '<int?>[]' to be of type 'List<int>', but was of type 'List<int?>'.
|
|
// - 'List' is from 'dart:core'.
|
|
// const assertLegacySubtyping2 = <int?>[] as List<int>;
|
|
// ^
|
|
// pkg/front_end/testcases/nnbd/issue41657.dart:12:7: Context: While analyzing:
|
|
// const assertLegacySubtyping2 = <int?>[] as List<int>;
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
|
|
static const field core::bool isLegacySubtyping1b = #C1;
|
|
static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
|
|
static const field core::bool isLegacySubtyping2b = #C1;
|
|
static const field core::List<core::int> assertLegacySubtyping1 = invalid-expression "Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
|
|
- 'List' is from 'dart:core'.";
|
|
static const field core::List<core::int> assertLegacySubtyping2 = invalid-expression "Expected constant '<int?>[]' to be of type 'List<int>', but was of type 'List<int?>'.
|
|
- 'List' is from 'dart:core'.";
|
|
static method main() → void {
|
|
self::expect(self::isLegacySubtyping1a, #C1);
|
|
self::expect(self::isLegacySubtyping2a, #C1);
|
|
}
|
|
static method expect(dynamic expected, dynamic actual) → dynamic {
|
|
if(!expected.{core::Object::==}(actual))
|
|
throw "Expected ${expected}, actual ${actual}";
|
|
}
|
|
|
|
constants {
|
|
#C1 = false
|
|
}
|