| Index: tests/compiler/dart2js/subtype_test.dart
|
| diff --git a/tests/compiler/dart2js/subtype_test.dart b/tests/compiler/dart2js/subtype_test.dart
|
| index ad8fba5f794b22d54996c921ed2a8d4d72c52c66..bae104f6f7cb6e5686ec282761ab8e49c2787677 100644
|
| --- a/tests/compiler/dart2js/subtype_test.dart
|
| +++ b/tests/compiler/dart2js/subtype_test.dart
|
| @@ -60,6 +60,7 @@ void testInterfaceSubtype() {
|
| DartType String_ = env['String'];
|
| DartType dynamic_ = env['dynamic'];
|
| DartType void_ = env['void'];
|
| + DartType Null_ = env['Null'];
|
|
|
| expect(true, void_, void_);
|
| expect(true, void_, dynamic_);
|
| @@ -67,78 +68,105 @@ void testInterfaceSubtype() {
|
| expect(true, dynamic_, void_, expectMoreSpecific: false);
|
| expect(false, void_, Object_);
|
| expect(false, Object_, void_);
|
| + expect(true, Null_, void_);
|
|
|
| expect(true, Object_, Object_);
|
| expect(true, num_, Object_);
|
| expect(true, int_, Object_);
|
| expect(true, String_, Object_);
|
| expect(true, dynamic_, Object_, expectMoreSpecific: false);
|
| + expect(true, Null_, Object_);
|
|
|
| expect(false, Object_, num_);
|
| expect(true, num_, num_);
|
| expect(true, int_, num_);
|
| expect(false, String_, num_);
|
| expect(true, dynamic_, num_, expectMoreSpecific: false);
|
| + expect(true, Null_, num_);
|
|
|
| expect(false, Object_, int_);
|
| expect(false, num_, int_);
|
| expect(true, int_, int_);
|
| expect(false, String_, int_);
|
| expect(true, dynamic_, int_, expectMoreSpecific: false);
|
| + expect(true, Null_, int_);
|
|
|
| expect(false, Object_, String_);
|
| expect(false, num_, String_);
|
| expect(false, int_, String_);
|
| expect(true, String_, String_);
|
| expect(true, dynamic_, String_, expectMoreSpecific: false);
|
| + expect(true, Null_, String_);
|
|
|
| expect(true, Object_, dynamic_);
|
| expect(true, num_, dynamic_);
|
| expect(true, int_, dynamic_);
|
| expect(true, String_, dynamic_);
|
| expect(true, dynamic_, dynamic_);
|
| + expect(true, Null_, dynamic_);
|
| +
|
| + expect(false, Object_, Null_);
|
| + expect(false, num_, Null_);
|
| + expect(false, int_, Null_);
|
| + expect(false, String_, Null_);
|
| + expect(true, dynamic_, Null_, expectMoreSpecific: false);
|
| + expect(true, Null_, Null_);
|
|
|
| DartType A_Object = instantiate(A, [Object_]);
|
| DartType A_num = instantiate(A, [num_]);
|
| DartType A_int = instantiate(A, [int_]);
|
| DartType A_String = instantiate(A, [String_]);
|
| DartType A_dynamic = instantiate(A, [dynamic_]);
|
| + DartType A_Null = instantiate(A, [Null_]);
|
|
|
| expect(true, A_Object, Object_);
|
| expect(false, A_Object, num_);
|
| expect(false, A_Object, int_);
|
| expect(false, A_Object, String_);
|
| expect(true, A_Object, dynamic_);
|
| + expect(false, A_Object, Null_);
|
|
|
| expect(true, A_Object, A_Object);
|
| expect(true, A_num, A_Object);
|
| expect(true, A_int, A_Object);
|
| expect(true, A_String, A_Object);
|
| expect(true, A_dynamic, A_Object, expectMoreSpecific: false);
|
| + expect(true, A_Null, A_Object);
|
|
|
| expect(false, A_Object, A_num);
|
| expect(true, A_num, A_num);
|
| expect(true, A_int, A_num);
|
| expect(false, A_String, A_num);
|
| expect(true, A_dynamic, A_num, expectMoreSpecific: false);
|
| + expect(true, A_Null, A_num);
|
|
|
| expect(false, A_Object, A_int);
|
| expect(false, A_num, A_int);
|
| expect(true, A_int, A_int);
|
| expect(false, A_String, A_int);
|
| expect(true, A_dynamic, A_int, expectMoreSpecific: false);
|
| + expect(true, A_Null, A_int);
|
|
|
| expect(false, A_Object, A_String);
|
| expect(false, A_num, A_String);
|
| expect(false, A_int, A_String);
|
| expect(true, A_String, A_String);
|
| expect(true, A_dynamic, A_String, expectMoreSpecific: false);
|
| + expect(true, A_Null, A_String);
|
|
|
| expect(true, A_Object, A_dynamic);
|
| expect(true, A_num, A_dynamic);
|
| expect(true, A_int, A_dynamic);
|
| expect(true, A_String, A_dynamic);
|
| expect(true, A_dynamic, A_dynamic);
|
| + expect(true, A_Null, A_dynamic);
|
| +
|
| + expect(false, A_Object, A_Null);
|
| + expect(false, A_num, A_Null);
|
| + expect(false, A_int, A_Null);
|
| + expect(false, A_String, A_Null);
|
| + expect(true, A_dynamic, A_Null, expectMoreSpecific: false);
|
| + expect(true, A_Null, A_Null);
|
|
|
| DartType B_Object_Object = instantiate(B, [Object_, Object_]);
|
| DartType B_num_num = instantiate(B, [num_, num_]);
|
|
|