blob: 559f6ba0f1ff735ddf3ff306ed10a86e9ce97f0e [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:26:18: Error: Type variables can't be used as constants.
// : field1 = T,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:27:21: Error: Constant expression expected.
// Try inserting 'const'.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:27:19: Error: Type variables can't be used as constants.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:28:21: Error: Constant expression expected.
// Try inserting 'const'.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:28:19: Error: Type variables can't be used as constants.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:29:24: Error: Constant expression expected.
// Try inserting 'const'.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:29:19: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:29:22: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:30:23: Error: Type variables can't be used as constants.
// field8 = o is T,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:31:29: Error: Type variables can't be used as constants.
// field9 = o is Class<T>,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:32:24: Error: Type variables can't be used as constants.
// field10 = o as T,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:33:30: Error: Type variables can't be used as constants.
// field11 = o as Class<T>,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:34:26: Error: Type variables can't be used as constants.
// field15 = <Class<T>>[];
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type.dart:34:29: Error: Constant expression expected.
// Try inserting 'const'.
// field15 = <Class<T>>[];
// ^
//
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "org-dartlang-testcase:///potentially_constant_type_lib1.dart";
import "org-dartlang-testcase:///potentially_constant_type_lib2.dart";
class Class<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
final field dynamic field1;
final field dynamic field5;
final field dynamic field6;
final field dynamic field7;
final field dynamic field8;
final field dynamic field9;
final field dynamic field10;
final field dynamic field11;
final field dynamic field15;
const constructor •(dynamic o) self::Class<self::Class::T*>*
: self::Class::field1 = invalid-type, self::Class::field5 = <invalid-type>[], self::Class::field6 = block {
final core::Set<invalid-type>* #t1 = col::LinkedHashSet::•<invalid-type>();
} =>#t1, self::Class::field7 = <invalid-type, invalid-type>{}, self::Class::field8 = o is invalid-type, self::Class::field9 = o is self::Class<invalid-type>*, self::Class::field10 = o as invalid-type, self::Class::field11 = o as self::Class<invalid-type>*, self::Class::field15 = <self::Class<invalid-type>*>[], super core::Object::•()
;
method method() void
;
abstract member-signature get _identityHashCode() core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) core::bool*; -> core::Object::==
abstract member-signature get hashCode() core::int*; -> core::Object::hashCode
abstract member-signature method toString() core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() core::Type*; -> core::Object::runtimeType
}
static method id<T extends core::Object* = dynamic>(self::id::T* t) self::id::T*
;
static method main() dynamic
;
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:23:18: Error: Type variables can't be used as constants.
// : field1 = T,
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:24:21: Error: Constant expression expected.
// Try inserting 'const'.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:24:19: Error: Type variables can't be used as constants.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:25:21: Error: Constant expression expected.
// Try inserting 'const'.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:25:19: Error: Type variables can't be used as constants.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:26:24: Error: Constant expression expected.
// Try inserting 'const'.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:26:19: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:26:22: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:31:26: Error: Type variables can't be used as constants.
// field15 = <Class<T>>[];
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib1.dart:31:29: Error: Constant expression expected.
// Try inserting 'const'.
// field15 = <Class<T>>[];
// ^
//
import self as self2;
import "dart:core" as core;
import "dart:collection" as col;
class Class<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
final field dynamic field1;
final field dynamic field5;
final field dynamic field6;
final field dynamic field7;
final field dynamic field8;
final field dynamic field9;
final field dynamic field10;
final field dynamic field11;
final field dynamic field15;
const constructor •(dynamic o) self2::Class<self2::Class::T%>
: self2::Class::field1 = invalid-type, self2::Class::field5 = <invalid-type>[], self2::Class::field6 = block {
final core::Set<invalid-type> #t2 = col::LinkedHashSet::•<invalid-type>();
} =>#t2, self2::Class::field7 = <invalid-type, invalid-type>{}, self2::Class::field8 = o is{ForNonNullableByDefault} self2::Class::T%, self2::Class::field9 = o is{ForNonNullableByDefault} self2::Class<self2::Class::T%>, self2::Class::field10 = o as{ForNonNullableByDefault} self2::Class::T%, self2::Class::field11 = o{self2::Class::T%} as{ForNonNullableByDefault} self2::Class<self2::Class::T%>, self2::Class::field15 = <self2::Class<invalid-type>>[], super core::Object::•()
;
method method() void
;
}
static method id<T extends core::Object? = dynamic>(self2::id::T% t) self2::id::T%
;
static method main() dynamic
;
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:34:21: Error: Constant expression expected.
// Try inserting 'const'.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:34:19: Error: Type variables can't be used as constants.
// field5 = <T>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:35:21: Error: Constant expression expected.
// Try inserting 'const'.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:35:19: Error: Type variables can't be used as constants.
// field6 = <T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:36:24: Error: Constant expression expected.
// Try inserting 'const'.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:36:19: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:36:22: Error: Type variables can't be used as constants.
// field7 = <T, T>{},
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:44:29: Error: Constant expression expected.
// Try inserting 'const'.
// field15 = <Class<T>>[],
// ^
//
// pkg/front_end/testcases/general/constants/potentially_constant_type_lib2.dart:44:26: Error: Type variables can't be used as constants.
// field15 = <Class<T>>[],
// ^
//
import self as self3;
import "dart:core" as core;
import "dart:collection" as col;
typedef F<X extends core::Object? = dynamic, unrelated Y extends core::Object? = dynamic> = self3::Class<X%>;
typedef G<unrelated X extends core::Object? = dynamic> = self3::Class<core::int>;
class Class<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
final field dynamic field1;
final field dynamic field2;
final field dynamic field3;
final field dynamic field4;
final field dynamic field5;
final field dynamic field6;
final field dynamic field7;
final field dynamic field8;
final field dynamic field9;
final field dynamic field10;
final field dynamic field11;
final field dynamic field12;
final field dynamic field13;
final field dynamic field14;
final field dynamic field15;
final field dynamic field16;
const constructor •(dynamic o) self3::Class<self3::Class::T%>
: self3::Class::field1 = self3::Class::T%, self3::Class::field2 = self3::Class<self3::Class::T%>, self3::Class::field3 = self3::id<self3::Class::T%>, self3::Class::field4 = self3::id<self3::Class::T%>, self3::Class::field5 = <invalid-type>[], self3::Class::field6 = block {
final core::Set<invalid-type> #t3 = col::LinkedHashSet::•<invalid-type>();
} =>#t3, self3::Class::field7 = <invalid-type, invalid-type>{}, self3::Class::field8 = o is{ForNonNullableByDefault} self3::Class::T%, self3::Class::field9 = o is{ForNonNullableByDefault} self3::Class<self3::Class::T%>, self3::Class::field10 = o as{ForNonNullableByDefault} self3::Class::T%, self3::Class::field11 = o{self3::Class::T%} as{ForNonNullableByDefault} self3::Class<self3::Class::T%>, self3::Class::field12 = self3::Class::•<self3::Class::T%>, self3::Class::field13 = self3::Class::•<self3::Class::T%>, self3::Class::field14 = self3::id<self3::Class<self3::Class::T%>>, self3::Class::field15 = <self3::Class<invalid-type>>[], self3::Class::field16 = self3::Class::•<core::int>, super core::Object::•()
;
method method() void
;
}
static method id<T extends core::Object? = dynamic>(self3::id::T% t) self3::id::T%
;
static method main() dynamic
;
static method _#F#new#tearOff<X extends core::Object? = dynamic, unrelated Y extends core::Object? = dynamic>(dynamic o) → self3::Class<self3::_#F#new#tearOff::X%>
return new self3::Class::•<self3::_#F#new#tearOff::X%>(o);
static method _#G#new#tearOff<unrelated X extends core::Object? = dynamic>(dynamic o) → self3::Class<core::int>
return new self3::Class::•<core::int>(o);
Extra constant evaluation status:
Evaluated: TypeLiteral @ org-dartlang-testcase:///potentially_constant_type.dart:26:18 -> TypeLiteralConstant(<invalid>)
Evaluated: TypeLiteral @ org-dartlang-testcase:///potentially_constant_type_lib1.dart:23:18 -> TypeLiteralConstant(<invalid>)
Evaluated: StaticTearOff @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:32:18 -> StaticTearOffConstant(id)
Evaluated: StaticTearOff @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:33:19 -> StaticTearOffConstant(id)
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:41:19 -> ConstructorTearOffConstant(Class.)
Evaluated: ConstructorTearOff @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:42:19 -> ConstructorTearOffConstant(Class.)
Evaluated: StaticTearOff @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:43:19 -> StaticTearOffConstant(id)
Evaluated: Instantiation @ org-dartlang-testcase:///potentially_constant_type_lib2.dart:45:19 -> InstantiationConstant(Class.<int*>)
Extra constant evaluation: evaluated: 61, effectively constant: 8