blob: cdbfb4256b4808eeba71588d16372c6af35d1eac [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/dart2js/issue41657.dart:10:48: Error: Constant evaluation error:
// const assertLegacySubtyping1b = const <Null>[] as List<int>;
// ^
// pkg/front_end/testcases/dart2js/issue41657.dart:10:48: Context: Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
// - 'List' is from 'dart:core'.
// const assertLegacySubtyping1b = const <Null>[] as List<int>;
// ^
// pkg/front_end/testcases/dart2js/issue41657.dart:10:7: Context: While analyzing:
// const assertLegacySubtyping1b = const <Null>[] as List<int>;
// ^
//
// pkg/front_end/testcases/dart2js/issue41657.dart:12:48: Error: Constant evaluation error:
// const assertLegacySubtyping2b = const <int?>[] as List<int>;
// ^
// pkg/front_end/testcases/dart2js/issue41657.dart:12:48: Context: Expected constant '<int?>[]' to be of type 'List<int>', but was of type 'List<int?>'.
// - 'List' is from 'dart:core'.
// const assertLegacySubtyping2b = const <int?>[] as List<int>;
// ^
// pkg/front_end/testcases/dart2js/issue41657.dart:12:7: Context: While analyzing:
// const assertLegacySubtyping2b = const <int?>[] as List<int>;
// ^
//
import self as self;
import "dart:core" as core;
static final field core::bool isLegacySubtyping1a = #C1 is core::List<core::int>;
static const field core::bool isLegacySubtyping1b = #C2;
static final field core::bool isLegacySubtyping2a = #C3 is core::List<core::int>;
static const field core::bool isLegacySubtyping2b = #C2;
static final field core::List<core::int> assertLegacySubtyping1a = #C1 as core::List<core::int>;
static const field core::List<core::int> assertLegacySubtyping1b = invalid-expression "Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
- 'List' is from 'dart:core'.";
static final field core::List<core::int> assertLegacySubtyping2a = #C3 as core::List<core::int>;
static const field core::List<core::int> assertLegacySubtyping2b = 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, #C2);
self::expect(self::isLegacySubtyping2a, #C2);
self::expect(self::assertLegacySubtyping1a, invalid-expression "Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
- 'List' is from 'dart:core'.");
self::expect(self::assertLegacySubtyping2a, invalid-expression "Expected constant '<int?>[]' to be of type 'List<int>', but was of type 'List<int?>'.
- 'List' is from 'dart:core'.");
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
constants {
#C1 = <Null>[]
#C2 = false
#C3 = <core::int?>[]
}