#1243 Runtime checks added for statements which can be optimized to 'true' or 'false'
diff --git a/Language/Expressions/Constants/equals_expression_t01.dart b/Language/Expressions/Constants/equals_expression_t01.dart
index f868010..91df2a5 100644
--- a/Language/Expressions/Constants/equals_expression_t01.dart
+++ b/Language/Expressions/Constants/equals_expression_t01.dart
@@ -13,7 +13,6 @@
/// elements of a constant list literal and are, therefore, constant expressions.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -25,5 +24,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/equals_expression_t03.dart b/Language/Expressions/Constants/equals_expression_t03.dart
index 58e845d..132c513 100644
--- a/Language/Expressions/Constants/equals_expression_t03.dart
+++ b/Language/Expressions/Constants/equals_expression_t03.dart
@@ -14,7 +14,6 @@
/// value, is used to initialize a constant variable.
/// @author kaigorodov
-
class A {
const A() : a = "hello";
final a;
@@ -29,7 +28,5 @@
];
main() {
- try {
- constList is List;
- } catch (x) {}
+ print(constList);
}
diff --git a/Language/Expressions/Constants/identical_t01.dart b/Language/Expressions/Constants/identical_t01.dart
index 471988a..546e208 100644
--- a/Language/Expressions/Constants/identical_t01.dart
+++ b/Language/Expressions/Constants/identical_t01.dart
@@ -13,7 +13,6 @@
/// used in a constant list literal and are, therefore, constant expressions.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -27,5 +26,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/identical_t02.dart b/Language/Expressions/Constants/identical_t02.dart
index 95fdc9f..1ed4fc5 100644
--- a/Language/Expressions/Constants/identical_t02.dart
+++ b/Language/Expressions/Constants/identical_t02.dart
@@ -13,9 +13,6 @@
/// a constant expressions.
/// @author kaigorodov
-
-import '../../../Utils/expect.dart';
-
bool identical(var a, var b) {
return a.equals(b);
}
@@ -28,5 +25,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ print(constList);
}
diff --git a/Language/Expressions/Constants/identifier_denotes_a_constant_t02.dart b/Language/Expressions/Constants/identifier_denotes_a_constant_t02.dart
index c075df1..dcfb061 100644
--- a/Language/Expressions/Constants/identifier_denotes_a_constant_t02.dart
+++ b/Language/Expressions/Constants/identifier_denotes_a_constant_t02.dart
@@ -13,7 +13,6 @@
/// can be assigned to a constant variable.
/// @author kaigorodov
-
import '../../../Utils/expect.dart';
class C {}
@@ -25,9 +24,9 @@
const d = C;
main() {
- Expect.isTrue(a is Type);
- Expect.isTrue(b is Type);
- Expect.isTrue(c is Type);
- Expect.isTrue(c2 is Type);
- Expect.isTrue(d is Type);
+ checkType(checkIs<Type>, true, a);
+ checkType(checkIs<Type>, true, b);
+ checkType(checkIs<Type>, true, c);
+ checkType(checkIs<Type>, true, c2);
+ checkType(checkIs<Type>, true, d);
}
diff --git a/Language/Expressions/Constants/identifier_denotes_a_constant_t04.dart b/Language/Expressions/Constants/identifier_denotes_a_constant_t04.dart
index b147908..79b0b7a 100644
--- a/Language/Expressions/Constants/identifier_denotes_a_constant_t04.dart
+++ b/Language/Expressions/Constants/identifier_denotes_a_constant_t04.dart
@@ -13,7 +13,6 @@
/// can be assigned to a constant variable.
/// @author ilya
-
import '../../../Utils/expect.dart';
typedef int F(int);
@@ -23,6 +22,6 @@
const b = FF;
main() {
- Expect.isTrue(a is Type);
- Expect.isTrue(b is Type);
+ checkType(checkIs<Type>, true, a);
+ checkType(checkIs<Type>, true, b);
}
diff --git a/Language/Expressions/Constants/literal_boolean_t01.dart b/Language/Expressions/Constants/literal_boolean_t01.dart
index 6da37ea..9271fe5 100644
--- a/Language/Expressions/Constants/literal_boolean_t01.dart
+++ b/Language/Expressions/Constants/literal_boolean_t01.dart
@@ -11,7 +11,6 @@
/// constant list literal and are, therefore, constant expressions.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -20,5 +19,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/literal_number_t01.dart b/Language/Expressions/Constants/literal_number_t01.dart
index 1b71fac..b5160a7 100644
--- a/Language/Expressions/Constants/literal_number_t01.dart
+++ b/Language/Expressions/Constants/literal_number_t01.dart
@@ -20,5 +20,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/literal_number_t02.dart b/Language/Expressions/Constants/literal_number_t02.dart
index 93e955e..58a104b 100644
--- a/Language/Expressions/Constants/literal_number_t02.dart
+++ b/Language/Expressions/Constants/literal_number_t02.dart
@@ -12,7 +12,6 @@
/// @note Should be OK both with dart and dart2js runs.
/// @author iarkh@unipro.ru
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -32,5 +31,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/literal_string_t01.dart b/Language/Expressions/Constants/literal_string_t01.dart
index 26ac6c4..a908b68 100644
--- a/Language/Expressions/Constants/literal_string_t01.dart
+++ b/Language/Expressions/Constants/literal_string_t01.dart
@@ -12,7 +12,6 @@
/// constant list literal and are, therefore, constant expressions.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -57,7 +56,7 @@
];
main() {
- Expect.isTrue(constList is List);
- Expect.isTrue(constListInterpolation is List);
- Expect.isTrue(constListConcatenation is List);
+ checkType(checkIs<List>, true, constList);
+ checkType(checkIs<List>, true, constListInterpolation);
+ checkType(checkIs<List>, true, constListConcatenation);
}
diff --git a/Language/Expressions/Constants/literal_string_t02.dart b/Language/Expressions/Constants/literal_string_t02.dart
index fe66fb5..084acf2 100644
--- a/Language/Expressions/Constants/literal_string_t02.dart
+++ b/Language/Expressions/Constants/literal_string_t02.dart
@@ -13,14 +13,11 @@
/// value, cannot be assigned to a constant variable.
/// @author iefremov
-
const l = "${const {'k1': 1, 'k2': 2}}";
// ^
// [analyzer] unspecified
// [cfe] unspecified
main() {
- try {
- print(l);
- } catch (x) {}
+ print(l);
}
diff --git a/Language/Expressions/Constants/literal_string_t03.dart b/Language/Expressions/Constants/literal_string_t03.dart
index 2e4b646..7ea56df 100644
--- a/Language/Expressions/Constants/literal_string_t03.dart
+++ b/Language/Expressions/Constants/literal_string_t03.dart
@@ -13,7 +13,6 @@
/// cannot be assigned to a constant variable.
/// @author msyabro
-
foo() => 1;
const i1 = "${foo()}";
@@ -22,7 +21,5 @@
// [cfe] unspecified
main() {
- try {
- print(i1);
- } catch (x) {}
+ print(i1);
}
diff --git a/Language/Expressions/Constants/literal_string_t04.dart b/Language/Expressions/Constants/literal_string_t04.dart
index 86e94ee..d0394f1 100644
--- a/Language/Expressions/Constants/literal_string_t04.dart
+++ b/Language/Expressions/Constants/literal_string_t04.dart
@@ -13,7 +13,6 @@
/// to a constant variable.
/// @author msyabro
-
import "../../../Utils/expect.dart";
const i1 = "${1 is int}";
diff --git a/Language/Expressions/Constants/literal_string_t05.dart b/Language/Expressions/Constants/literal_string_t05.dart
index 6a71cee..fe98ad6 100644
--- a/Language/Expressions/Constants/literal_string_t05.dart
+++ b/Language/Expressions/Constants/literal_string_t05.dart
@@ -13,14 +13,11 @@
/// assigned to a constant variable.
/// @author msyabro
-
const i1 = "${1.toString()}";
// ^
// [analyzer] unspecified
// [cfe] unspecified
main() {
- try {
- print(i1);
- } catch (x) {}
+ print(i1);
}
diff --git a/Language/Expressions/Constants/literal_symbol_t01.dart b/Language/Expressions/Constants/literal_symbol_t01.dart
index ee254d4..bdfc7ee 100644
--- a/Language/Expressions/Constants/literal_symbol_t01.dart
+++ b/Language/Expressions/Constants/literal_symbol_t01.dart
@@ -11,7 +11,6 @@
/// variable.
/// @author ilya
-
const i1 = #foo;
main() {
diff --git a/Language/Expressions/Constants/logical_expression_t04.dart b/Language/Expressions/Constants/logical_expression_t04.dart
index 54c9759..ff4ffa4 100644
--- a/Language/Expressions/Constants/logical_expression_t04.dart
+++ b/Language/Expressions/Constants/logical_expression_t04.dart
@@ -13,7 +13,6 @@
/// used to initialize a constant variable.
/// @author kaigorodov
-
final constList = const [
true && 1,
// ^
@@ -22,7 +21,5 @@
];
main() {
- try {
- constList is List;
- } catch (x) {}
+ print(constList);
}
diff --git a/Language/Expressions/Constants/math_operators_t01.dart b/Language/Expressions/Constants/math_operators_t01.dart
index efa1a2f..77a2f59 100644
--- a/Language/Expressions/Constants/math_operators_t01.dart
+++ b/Language/Expressions/Constants/math_operators_t01.dart
@@ -18,7 +18,6 @@
/// is moved to the math_operator_t08 test.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [
@@ -29,5 +28,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/math_operators_t05.dart b/Language/Expressions/Constants/math_operators_t05.dart
index cc15677..47f9e89 100644
--- a/Language/Expressions/Constants/math_operators_t05.dart
+++ b/Language/Expressions/Constants/math_operators_t05.dart
@@ -15,7 +15,6 @@
/// the form e1 + e2 where e1 or e2 does not evaluate to a numeric value, is
/// used to initialize a constant variable.
-
final constList = const [
true + 1,
// ^
@@ -24,7 +23,5 @@
];
main() {
- try {
- constList is List;
- } catch (x) {}
+ print(constList);
}
diff --git a/Language/Expressions/Constants/math_operators_t07.dart b/Language/Expressions/Constants/math_operators_t07.dart
index 29ea0f9..f6ccb3f 100644
--- a/Language/Expressions/Constants/math_operators_t07.dart
+++ b/Language/Expressions/Constants/math_operators_t07.dart
@@ -15,11 +15,10 @@
/// initialize a constant variable if e1 and e2 are strings.
/// @author ngl@unipro.ru
-
import '../../../Utils/expect.dart';
const m = "ab" + "cd";
main() {
- Expect.isTrue(m is String);
+ checkType(checkIs<String>, true, m);
}
diff --git a/Language/Expressions/Constants/math_operators_t08.dart b/Language/Expressions/Constants/math_operators_t08.dart
index 3682176..10d1793 100644
--- a/Language/Expressions/Constants/math_operators_t08.dart
+++ b/Language/Expressions/Constants/math_operators_t08.dart
@@ -30,5 +30,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/no_other_constant_expressions_t17.dart b/Language/Expressions/Constants/no_other_constant_expressions_t17.dart
index f2dcab6..182ca06 100644
--- a/Language/Expressions/Constants/no_other_constant_expressions_t17.dart
+++ b/Language/Expressions/Constants/no_other_constant_expressions_t17.dart
@@ -9,7 +9,6 @@
/// constant variable.
/// @author iefremov
-
import "../../../Utils/expect.dart";
const m1 = null is Object;
diff --git a/Language/Expressions/Constants/null_t01.dart b/Language/Expressions/Constants/null_t01.dart
index 9489133..94d355a 100644
--- a/Language/Expressions/Constants/null_t01.dart
+++ b/Language/Expressions/Constants/null_t01.dart
@@ -11,11 +11,10 @@
/// and is, therefore, a constant expression.
/// @author iefremov
-
import '../../../Utils/expect.dart';
final constList = const [null];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/parenthesized_expression_t01.dart b/Language/Expressions/Constants/parenthesized_expression_t01.dart
index aa7edc5..5f5efa9 100644
--- a/Language/Expressions/Constants/parenthesized_expression_t01.dart
+++ b/Language/Expressions/Constants/parenthesized_expression_t01.dart
@@ -11,7 +11,6 @@
/// element of a constant list literal and is, therefore, a constant expression.
/// @author msyabro
-
import '../../../Utils/expect.dart';
const x = '';
@@ -43,5 +42,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/static_constant_t01.dart b/Language/Expressions/Constants/static_constant_t01.dart
index 6ee47d9..1d685b0 100644
--- a/Language/Expressions/Constants/static_constant_t01.dart
+++ b/Language/Expressions/Constants/static_constant_t01.dart
@@ -12,7 +12,6 @@
/// elementof a constant list literal and is, therefore, a constant expression.
/// @author iefremov
-
import '../../../Utils/expect.dart';
const x = '';
@@ -27,5 +26,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/static_constant_t05.dart b/Language/Expressions/Constants/static_constant_t05.dart
index 324c8d0..957c0e1 100644
--- a/Language/Expressions/Constants/static_constant_t05.dart
+++ b/Language/Expressions/Constants/static_constant_t05.dart
@@ -12,7 +12,6 @@
/// constant variable can be used as a constant expression.
/// @author ngl@unipro.ru
-
import '../../../Utils/expect.dart';
import 'constants_lib.dart' as clib;
@@ -25,5 +24,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ checkType(checkIs<List>, true, constList);
}
diff --git a/Language/Expressions/Constants/static_constant_t06.dart b/Language/Expressions/Constants/static_constant_t06.dart
index 3f727ea..a449c92 100644
--- a/Language/Expressions/Constants/static_constant_t06.dart
+++ b/Language/Expressions/Constants/static_constant_t06.dart
@@ -12,8 +12,6 @@
/// static constant variable cannot be used as a constant expression.
/// @author ngl@unipro.ru
-
-import '../../../Utils/expect.dart';
import 'constants_lib.dart' deferred as clib;
const x = '';
@@ -30,5 +28,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ print(constList);
}
diff --git a/Language/Expressions/Constants/static_constant_t07.dart b/Language/Expressions/Constants/static_constant_t07.dart
index 7be0f37..2aeb636 100644
--- a/Language/Expressions/Constants/static_constant_t07.dart
+++ b/Language/Expressions/Constants/static_constant_t07.dart
@@ -12,8 +12,6 @@
/// static constant class variable cannot be used as a constant expression.
/// @author ngl@unipro.ru
-
-import '../../../Utils/expect.dart';
import 'constants_lib.dart' deferred as clib;
const x = '';
@@ -35,5 +33,5 @@
];
main() {
- Expect.isTrue(constList is List);
+ print(constList);
}
diff --git a/Language/Expressions/Constants/string_length_t02.dart b/Language/Expressions/Constants/string_length_t02.dart
index 4461d01..d81ef89 100644
--- a/Language/Expressions/Constants/string_length_t02.dart
+++ b/Language/Expressions/Constants/string_length_t02.dart
@@ -13,9 +13,6 @@
/// @issue #24940
/// @author ngl@unipro.ru
-
-import '../../../Utils/expect.dart';
-
String m = "abc";
const l = m.length;
// ^
@@ -23,5 +20,5 @@
// [cfe] unspecified
main() {
- Expect.isTrue(l is int);
+ print(l);
}
diff --git a/Language/Expressions/Constants/string_length_t03.dart b/Language/Expressions/Constants/string_length_t03.dart
index 5992f43..b335ce7 100644
--- a/Language/Expressions/Constants/string_length_t03.dart
+++ b/Language/Expressions/Constants/string_length_t03.dart
@@ -13,9 +13,6 @@
/// @Issue #24940
/// @author ngl@unipro.ru
-
-import '../../../Utils/expect.dart';
-
const Object o = "ab" + "cd";
const l = o.toString().length;
// ^
@@ -23,5 +20,5 @@
// [cfe] unspecified
main() {
- Expect.isTrue(l is int);
+ print(l);
}
diff --git a/Language/Expressions/Constants/ternary_operator_t01.dart b/Language/Expressions/Constants/ternary_operator_t01.dart
index 8b8ed2e..9e0f686 100644
--- a/Language/Expressions/Constants/ternary_operator_t01.dart
+++ b/Language/Expressions/Constants/ternary_operator_t01.dart
@@ -12,7 +12,6 @@
/// operands are constant expressions.
/// @author ilya
-
import '../../../Utils/expect.dart';
const x = false;
@@ -28,5 +27,5 @@
];
main() {
- Expect.isTrue(list is List);
+ checkType(checkIs<List>, true, list);
}
diff --git a/Language/Expressions/Constants/top_level_function_t03.dart b/Language/Expressions/Constants/top_level_function_t03.dart
index 77dcf49..df2c29a 100644
--- a/Language/Expressions/Constants/top_level_function_t03.dart
+++ b/Language/Expressions/Constants/top_level_function_t03.dart
@@ -13,7 +13,6 @@
/// variable.
/// @author ngl@unipro.ru
-
import '../../../Utils/expect.dart';
import 'constants_lib.dart' as clib;
@@ -29,8 +28,8 @@
const d = clib.B.M;
main() {
- Expect.isTrue(a is Function);
- Expect.isTrue(b is Function);
- Expect.isTrue(c is Function);
- Expect.isTrue(d is Function);
+ checkType(checkIs<Function>, true, a);
+ checkType(checkIs<Function>, true, b);
+ checkType(checkIs<Function>, true, c);
+ checkType(checkIs<Function>, true, d);
}
diff --git a/Language/Expressions/Function_Expressions/class_function_t01.dart b/Language/Expressions/Function_Expressions/class_function_t01.dart
index 9498d51..39013f5 100644
--- a/Language/Expressions/Function_Expressions/class_function_t01.dart
+++ b/Language/Expressions/Function_Expressions/class_function_t01.dart
@@ -7,13 +7,12 @@
/// @description Checks that a function literal implements interface Function.
/// @author msyabro
-
import '../../../Utils/expect.dart';
main() {
- Expect.isTrue(() {} is Function);
- Expect.isTrue((() => 1) is Function);
- Expect.isTrue(((p1, p2) {}) is Function);
- Expect.isTrue(((p1, [int? p2]) {}) is Function);
- Expect.isTrue(((p1, {int p2: 1}) {}) is Function);
+ checkType(checkIs<Function>, true, () {});
+ checkType(checkIs<Function>, true, (() => 1));
+ checkType(checkIs<Function>, true, ((p1, p2) {}));
+ checkType(checkIs<Function>, true, ((p1, [int? p2]) {}));
+ checkType(checkIs<Function>, true, ((p1, {int p2: 1}) {}));
}
diff --git a/Language/Expressions/If_null_Expressions/static_type_t02.dart b/Language/Expressions/If_null_Expressions/static_type_t02.dart
index 317ef63..c6d5d72 100644
--- a/Language/Expressions/If_null_Expressions/static_type_t02.dart
+++ b/Language/Expressions/If_null_Expressions/static_type_t02.dart
@@ -19,7 +19,7 @@
main() {
var d = 1.0 as double?;
var x1 = d ?? 2.0;
- Expect.isTrue(x1 is double);
+ checkType(checkIs<double>, true, x1);
var x2 = null ?? 2.0;
Expect.isTrue(x2 is double);
diff --git a/Language/Expressions/Instance_Creation/Const/canonicalized_t01.dart b/Language/Expressions/Instance_Creation/Const/canonicalized_t01.dart
index b4a7185..6cd3e37 100644
--- a/Language/Expressions/Instance_Creation/Const/canonicalized_t01.dart
+++ b/Language/Expressions/Instance_Creation/Const/canonicalized_t01.dart
@@ -42,8 +42,8 @@
}
main() {
- Expect.isTrue(const A.name() is A);
- Expect.isTrue(const B.name(1, 2) is B);
- Expect.isTrue(const C.name("") is C);
- Expect.isTrue(const D.name(null, p2: 1) is D);
+ checkType(checkIs<A>, true, const A.name());
+ checkType(checkIs<B>, true, const B.name(1, 2));
+ checkType(checkIs<C>, true, const C.name(""));
+ checkType(checkIs<D>, true, const D.name(null, p2: 1));
}
diff --git a/Language/Expressions/Instance_Creation/Const/canonicalized_t02.dart b/Language/Expressions/Instance_Creation/Const/canonicalized_t02.dart
index b0be56a..ae70b40 100644
--- a/Language/Expressions/Instance_Creation/Const/canonicalized_t02.dart
+++ b/Language/Expressions/Instance_Creation/Const/canonicalized_t02.dart
@@ -42,8 +42,8 @@
}
main() {
- Expect.isTrue(const A() is A);
- Expect.isTrue(const B(0) is B);
- Expect.isTrue(const C(p2: true, p1: "") is C);
- Expect.isTrue(const D(0, 0) is D);
+ checkType(checkIs<A>, true, const A());
+ checkType(checkIs<B>, true, const B(0));
+ checkType(checkIs<C>, true, const C(p2: true, p1: ""));
+ checkType(checkIs<D>, true, const D(0, 0));
}
diff --git a/Language/Expressions/Instance_Creation/New/execution_t02.dart b/Language/Expressions/Instance_Creation/New/execution_t02.dart
index ae6cc9c..4f683bd 100644
--- a/Language/Expressions/Instance_Creation/New/execution_t02.dart
+++ b/Language/Expressions/Instance_Creation/New/execution_t02.dart
@@ -32,10 +32,10 @@
}
class B <T extends A> {
- A t;
+ A? t;
B(): t = new A() {
Expect.isNotNull(t);
- Expect.isTrue(t is A);
+ checkType(checkIs<A>, true, t);
}
}
diff --git a/Language/Expressions/Instance_Creation/New/execution_t08.dart b/Language/Expressions/Instance_Creation/New/execution_t08.dart
index 7447888..c57604c 100644
--- a/Language/Expressions/Instance_Creation/New/execution_t08.dart
+++ b/Language/Expressions/Instance_Creation/New/execution_t08.dart
@@ -12,7 +12,6 @@
import '../../../../Utils/expect.dart';
-
class A {}
class B {
@@ -28,8 +27,8 @@
}
main() {
- Expect.isTrue(new A() is A);
- Expect.isTrue(new B(1, 2) is B);
- Expect.isTrue(new C(null, null) is C);
- Expect.isTrue(new D.name() is D);
+ checkType(checkIs<A>, true, new A());
+ checkType(checkIs<B>, true, new B(1, 2));
+ checkType(checkIs<C>, true, new C(null, null));
+ checkType(checkIs<D>, true, new D.name());
}
diff --git a/Language/Expressions/Instance_Creation/New/execution_t11.dart b/Language/Expressions/Instance_Creation/New/execution_t11.dart
index 2264e25..a915ab5 100644
--- a/Language/Expressions/Instance_Creation/New/execution_t11.dart
+++ b/Language/Expressions/Instance_Creation/New/execution_t11.dart
@@ -31,7 +31,7 @@
T x;
U y;
- V z;
+ V? z;
}
class B <T extends A> {
@@ -39,10 +39,10 @@
B.redirected(): t = new A() {
Expect.isNotNull(t);
- Expect.isTrue(t is A);
+ checkType(checkIs<A>, true, t);
}
- A t;
+ A? t;
}
class C<T, U> {
@@ -56,7 +56,7 @@
}
T a;
- U b;
+ U? b;
}
main() {
diff --git a/Language/Expressions/Instance_Creation/New/execution_t14.dart b/Language/Expressions/Instance_Creation/New/execution_t14.dart
index 95db608..44fa347 100644
--- a/Language/Expressions/Instance_Creation/New/execution_t14.dart
+++ b/Language/Expressions/Instance_Creation/New/execution_t14.dart
@@ -33,8 +33,8 @@
}
main() {
- Expect.isTrue(new A() is A);
- Expect.isTrue(new B(1, 2) is B);
- Expect.isTrue(new C(null, null) is C);
- Expect.isTrue(new D.name() is D);
+ checkType(checkIs<A>, true, new A());
+ checkType(checkIs<B>, true, new B(1, 2));
+ checkType(checkIs<C>, true, new C(null, null));
+ checkType(checkIs<D>, true, new D.name());
}
diff --git a/Language/Expressions/Instance_Creation/New/type_t08.dart b/Language/Expressions/Instance_Creation/New/type_t08.dart
index 11669f5..e546e8f 100644
--- a/Language/Expressions/Instance_Creation/New/type_t08.dart
+++ b/Language/Expressions/Instance_Creation/New/type_t08.dart
@@ -27,32 +27,32 @@
main() {
CAlias c1 = new CAlias();
- Expect.isTrue(c1 is C);
- Expect.isTrue(c1 is CAlias);
+ checkType(checkIs<C>, true, c1);
+ checkType(checkIs<CAlias>, true, c1);
Expect.equals("default", c1.log);
CAlias c2 = new CAlias.named();
- Expect.isTrue(c2 is C);
- Expect.isTrue(c2 is CAlias);
+ checkType(checkIs<C>, true, c2);
+ checkType(checkIs<CAlias>, true, c2);
Expect.equals("named", c2.log);
CAlias c3 = new C();
- Expect.isTrue(c3 is C);
- Expect.isTrue(c3 is CAlias);
+ checkType(checkIs<C>, true, c3);
+ checkType(checkIs<CAlias>, true, c3);
Expect.equals("default", c3.log);
CAlias c4 = new C.named();
- Expect.isTrue(c4 is C);
- Expect.isTrue(c4 is CAlias);
+ checkType(checkIs<C>, true, c4);
+ checkType(checkIs<CAlias>, true, c4);
Expect.equals("named", c4.log);
C c5 = new CAlias();
- Expect.isTrue(c5 is C);
- Expect.isTrue(c5 is CAlias);
+ checkType(checkIs<C>, true, c5);
+ checkType(checkIs<CAlias>, true, c5);
Expect.equals("default", c5.log);
C c6 = new CAlias.named();
- Expect.isTrue(c6 is C);
- Expect.isTrue(c6 is CAlias);
+ checkType(checkIs<C>, true, c6);
+ checkType(checkIs<CAlias>, true, c6);
Expect.equals("named", c6.log);
}
diff --git a/Language/Expressions/Instance_Creation/New/type_t09.dart b/Language/Expressions/Instance_Creation/New/type_t09.dart
index bdf6079..037e6a4 100644
--- a/Language/Expressions/Instance_Creation/New/type_t09.dart
+++ b/Language/Expressions/Instance_Creation/New/type_t09.dart
@@ -27,32 +27,32 @@
main() {
CAlias c1 = new CAlias();
- Expect.isTrue(c1 is C<dynamic, String>);
- Expect.isTrue(c1 is CAlias<dynamic>);
+ checkType(checkIs<C<dynamic, String>>, true, c1);
+ checkType(checkIs<CAlias<dynamic>>, true, c1);
Expect.equals("default", c1.log);
CAlias<int> c2 = new CAlias<int>.named();
- Expect.isTrue(c2 is C<int, String>);
- Expect.isTrue(c2 is CAlias<int>);
+ checkType(checkIs<C<int, String>>, true, c2);
+ checkType(checkIs<CAlias<int>>, true, c2);
Expect.equals("named", c2.log);
CAlias<int> c3 = new C<int, String>();
- Expect.isTrue(c3 is C<int, String>);
- Expect.isTrue(c3 is CAlias<int>);
+ checkType(checkIs<C<int, String>>, true, c3);
+ checkType(checkIs<CAlias<int>>, true, c3);
Expect.equals("default", c3.log);
CAlias<int> c4 = new C<int, String>.named();
- Expect.isTrue(c4 is C<int, String>);
- Expect.isTrue(c4 is CAlias<int>);
+ checkType(checkIs<C<int, String>>, true, c4);
+ checkType(checkIs<CAlias<int>>, true, c4);
Expect.equals("named", c4.log);
C<int, String> c5 = new CAlias<int>();
- Expect.isTrue(c5 is C<int, String>);
- Expect.isTrue(c5 is CAlias<int>);
+ checkType(checkIs<C<int, String>>, true, c5);
+ checkType(checkIs<CAlias<int>>, true, c5);
Expect.equals("default", c5.log);
C<int, String> c6 = new CAlias<int>.named();
- Expect.isTrue(c6 is C<int, String>);
- Expect.isTrue(c6 is CAlias<int>);
+ checkType(checkIs<C<int, String>>, true, c6);
+ checkType(checkIs<CAlias<int>>, true, c6);
Expect.equals("named", c6.log);
}
diff --git a/Language/Expressions/Lists/runtime_list_literal_t04.dart b/Language/Expressions/Lists/runtime_list_literal_t04.dart
index cea181c..ad5eb99 100644
--- a/Language/Expressions/Lists/runtime_list_literal_t04.dart
+++ b/Language/Expressions/Lists/runtime_list_literal_t04.dart
@@ -19,9 +19,9 @@
class C {}
main() {
- Expect.isTrue(<int>[] is List<int>);
- Expect.isTrue(<int>[1, 2, 3 + 4] is List<int>);
- Expect.isTrue(<bool>[false, 1 < 2] is List<bool>);
- Expect.isTrue(<String>["a", "b", "c"] is List<String>);
- Expect.isTrue(<C>[new C(), new C()] is List<C>);
+ checkType(checkIs<List<int>>, true, <int>[]);
+ checkType(checkIs<List<int>>, true, <int>[1, 2, 3 + 4]);
+ checkType(checkIs<List<bool>>, true, <bool>[false, 1 < 2]);
+ checkType(checkIs<List<String>>, true, <String>["a", "b", "c"]);
+ checkType(checkIs<List<C>>, true, <C>[new C(), new C()]);
}
diff --git a/Language/Expressions/Lists/syntax_t01.dart b/Language/Expressions/Lists/syntax_t01.dart
index 065208f..185d204 100644
--- a/Language/Expressions/Lists/syntax_t01.dart
+++ b/Language/Expressions/Lists/syntax_t01.dart
@@ -11,7 +11,6 @@
/// errors.
/// @author msyabro
-
topFunc() {}
class S {
diff --git a/Language/Expressions/Lists/value_of_a_constant_list_t01.dart b/Language/Expressions/Lists/value_of_a_constant_list_t01.dart
index 81ca7fe..25a1eae 100644
--- a/Language/Expressions/Lists/value_of_a_constant_list_t01.dart
+++ b/Language/Expressions/Lists/value_of_a_constant_list_t01.dart
@@ -16,9 +16,9 @@
}
main() {
- Expect.isTrue(const <int>[] is List<int>);
- Expect.isTrue(const <int>[1, 2, 3 + 4] is List<int>);
- Expect.isTrue(const <bool>[false, 1 < 2] is List<bool>);
- Expect.isTrue(const <String>["a", "b", "c"] is List<String>);
- Expect.isTrue(const <C>[const C(), const C()] is List<C>);
+ checkType(checkIs<List<int>>, true, const <int>[]);
+ checkType(checkIs<List<int>>, true, const <int>[1, 2, 3 + 4]);
+ checkType(checkIs<List<bool>>, true, const <bool>[false, 1 < 2]);
+ checkType(checkIs<List<String>>, true, <String>["a", "b", "c"]);
+ checkType(checkIs<List<C>>, true, const <C>[const C(), const C()]);
}
diff --git a/Language/Expressions/Maps/runtime_map_t04.dart b/Language/Expressions/Maps/runtime_map_t04.dart
index 82bcddb..725d5b1 100644
--- a/Language/Expressions/Maps/runtime_map_t04.dart
+++ b/Language/Expressions/Maps/runtime_map_t04.dart
@@ -22,8 +22,8 @@
class C {}
main() {
- Expect.isTrue(<String, int>{"": 1} is Map<String, int>);
- Expect.isTrue(<String, String>{"": "string"} is Map<String, String>);
- Expect.isTrue(<String, bool>{"": true} is Map<String, bool>);
- Expect.isTrue(<String, C>{"": new C()} is Map<String, C>);
+ checkType(checkIs<Map<String, int>>, true, <String, int>{"": 1});
+ checkType(checkIs<Map<String, String>>, true, <String, String>{"": "string"});
+ checkType(checkIs<Map<String, bool>>, true, <String, bool>{"": true});
+ checkType(checkIs<Map<String, C>>, true, <String, C>{"": new C()});
}
diff --git a/Language/Expressions/Maps/syntax_t01.dart b/Language/Expressions/Maps/syntax_t01.dart
index c421f45..d645aa5 100644
--- a/Language/Expressions/Maps/syntax_t01.dart
+++ b/Language/Expressions/Maps/syntax_t01.dart
@@ -16,7 +16,6 @@
/// errors.
/// @author msyabro
-
topFunc() {}
class S {
diff --git a/Language/Expressions/Maps/value_of_a_constant_map_t01.dart b/Language/Expressions/Maps/value_of_a_constant_map_t01.dart
index df4d0b0..47dbb6b 100644
--- a/Language/Expressions/Maps/value_of_a_constant_map_t01.dart
+++ b/Language/Expressions/Maps/value_of_a_constant_map_t01.dart
@@ -21,8 +21,8 @@
}
main() {
- Expect.isTrue(const <String, int>{"": 1} is Map<String, int>);
- Expect.isTrue(const <String, String>{"": "string"} is Map<String, String>);
- Expect.isTrue(const <String, bool>{"": true} is Map<String, bool>);
- Expect.isTrue(const <String, S>{"": const S()} is Map<String, S>);
+ checkType(checkIs<Map<String, int>>, true, const <String, int>{"": 1});
+ checkType(checkIs<Map<String, String>>, true, const <String, String>{"": "string"});
+ checkType(checkIs<Map<String, bool>>, true, const <String, bool>{"": true});
+ checkType(checkIs<Map<String, S>>, true, const <String, S>{"": const S()});
}
diff --git a/Language/Expressions/Null/instance_of_class_null_t01.dart b/Language/Expressions/Null/instance_of_class_null_t01.dart
index e735a8f..7b53718 100644
--- a/Language/Expressions/Null/instance_of_class_null_t01.dart
+++ b/Language/Expressions/Null/instance_of_class_null_t01.dart
@@ -6,9 +6,8 @@
/// @description Checks that null is an instance of the Null class.
/// @author ilya
-
import '../../../Utils/expect.dart';
main() {
- Expect.isTrue(null is Null);
+ checkType(checkIs<Null>, true, null);
}
diff --git a/Language/Expressions/Null/instance_of_class_null_t02.dart b/Language/Expressions/Null/instance_of_class_null_t02.dart
index 87933bc..695e631 100644
--- a/Language/Expressions/Null/instance_of_class_null_t02.dart
+++ b/Language/Expressions/Null/instance_of_class_null_t02.dart
@@ -12,9 +12,9 @@
main() {
var n = null;
- Expect.isTrue(Null is Type);
- Expect.isTrue(null is Null);
- Expect.isTrue(n is Null);
- Expect.isFalse(null is A);
- Expect.isFalse(n is A);
+ checkType(checkIs<Type>, true, Null);
+ checkType(checkIs<Null>, true, null);
+ checkType(checkIs<Null>, true, n);
+ checkType(checkIs<A>, false, null);
+ checkType(checkIs<A>, false, n);
}
diff --git a/Language/Expressions/Strings/String_Interpolation/syntax_t01.dart b/Language/Expressions/Strings/String_Interpolation/syntax_t01.dart
index dd577ab..0b8e455 100644
--- a/Language/Expressions/Strings/String_Interpolation/syntax_t01.dart
+++ b/Language/Expressions/Strings/String_Interpolation/syntax_t01.dart
@@ -14,7 +14,6 @@
/// the specification don't produce compile-time errors.
/// @author msyabro
-
import 'String_Interpolation_lib.dart';
topFunc(p1, p2) {}
diff --git a/Language/Expressions/Strings/implement_class_string_t01.dart b/Language/Expressions/Strings/implement_class_string_t01.dart
index 33619e6..11bbce5 100644
--- a/Language/Expressions/Strings/implement_class_string_t01.dart
+++ b/Language/Expressions/Strings/implement_class_string_t01.dart
@@ -9,19 +9,19 @@
import '../../../Utils/expect.dart';
main() {
- Expect.isTrue("" is String);
- Expect.isTrue('' is String);
- Expect.isTrue(r"" is String);
- Expect.isTrue(r'' is String);
- Expect.isTrue("""""" is String);
- Expect.isTrue('''''' is String);
- Expect.isTrue(r"""""" is String);
- Expect.isTrue(r'''''' is String);
+ checkType(checkIs<String>, true, "");
+ checkType(checkIs<String>, true, '');
+ checkType(checkIs<String>, true, r"");
+ checkType(checkIs<String>, true, r'');
+ checkType(checkIs<String>, true, """""");
+ checkType(checkIs<String>, true, '''''');
+ checkType(checkIs<String>, true, r"""""");
+ checkType(checkIs<String>, true, r'''''');
- Expect.isTrue("String" is String);
- Expect.isTrue('\x00\x01\x02' is String);
- Expect.isTrue(r"\\\\\\\\" is String);
- Expect.isTrue(r'$$$$$' is String);
- Expect.isTrue("""
- new line """ is String);
+ checkType(checkIs<String>, true, "String");
+ checkType(checkIs<String>, true, '\x00\x01\x02');
+ checkType(checkIs<String>, true, r"\\\\\\\\");
+ checkType(checkIs<String>, true, r'$$$$$');
+ checkType(checkIs<String>, true, """
+ new line """);
}
diff --git a/Language/Expressions/Strings/runtime_type_t01.dart b/Language/Expressions/Strings/runtime_type_t01.dart
index aca6461..276f801 100644
--- a/Language/Expressions/Strings/runtime_type_t01.dart
+++ b/Language/Expressions/Strings/runtime_type_t01.dart
@@ -11,12 +11,12 @@
import '../../../Utils/expect.dart';
main() {
- Expect.isTrue("abc".runtimeType is Type);
+ checkType(checkIs<Type>, true, "abc".runtimeType);
Expect.isTrue("abc".runtimeType == String);
- Expect.isTrue('abc'.runtimeType is Type);
+ checkType(checkIs<Type>, true, 'abc'.runtimeType);
Expect.isTrue('abc'.runtimeType == String);
- Expect.isTrue(r"abc".runtimeType is Type);
+ checkType(checkIs<Type>, true, r"abc".runtimeType);
Expect.isTrue(r"abc".runtimeType == String);
- Expect.isTrue(r'abc'.runtimeType is Type);
+ checkType(checkIs<Type>, true, r'abc'.runtimeType);
Expect.isTrue(r'abc'.runtimeType == String);
}
diff --git a/Language/Expressions/This/definition_t06.dart b/Language/Expressions/This/definition_t06.dart
index c5777a7..456a546 100644
--- a/Language/Expressions/This/definition_t06.dart
+++ b/Language/Expressions/This/definition_t06.dart
@@ -15,23 +15,23 @@
class A{
int x = 5;
- A getSelf() {
+ A get self {
return this;
}
}
main() {
A a = new A();
- Expect.isTrue(a.getSelf() is A);
- Expect.equals(a, a.getSelf());
+ checkType(checkIs<A>, true, a.self);
+ Expect.equals(a, a.self);
Expect.equals(5, a.x);
- Expect.equals(5, a.getSelf().x);
+ Expect.equals(5, a.self.x);
a.x = 1;
Expect.equals(1, a.x);
- Expect.equals(1, a.getSelf().x);
+ Expect.equals(1, a.self.x);
- a.getSelf().x = 2;
+ a.self.x = 2;
Expect.equals(2, a.x);
- Expect.equals(2, a.getSelf().x);
+ Expect.equals(2, a.self.x);
}
diff --git a/Language/Expressions/Type_Test/definition_t09.dart b/Language/Expressions/Type_Test/definition_t09.dart
index 2a518ea..5760609 100644
--- a/Language/Expressions/Type_Test/definition_t09.dart
+++ b/Language/Expressions/Type_Test/definition_t09.dart
@@ -9,7 +9,6 @@
/// does not show that v has type T.
/// @author ilya
-
class C {}
class D extends C { f() {} }
diff --git a/Language/Expressions/Type_Test/evaluation_t05.dart b/Language/Expressions/Type_Test/evaluation_t05.dart
index 89161ce..4cd6614 100644
--- a/Language/Expressions/Type_Test/evaluation_t05.dart
+++ b/Language/Expressions/Type_Test/evaluation_t05.dart
@@ -12,7 +12,6 @@
/// less then n type parameters, then it is a compile error
/// @author msyabro
-
class G<T> {}
main() {
diff --git a/Language/Expressions/Type_Test/evaluation_t06.dart b/Language/Expressions/Type_Test/evaluation_t06.dart
index 449bcbb..04fb1d3 100644
--- a/Language/Expressions/Type_Test/evaluation_t06.dart
+++ b/Language/Expressions/Type_Test/evaluation_t06.dart
@@ -12,7 +12,6 @@
/// which has more then n type parameters, then it is a compile error
/// @author msyabro
-
class G<T, U, V> {}
main() {
diff --git a/Language/Expressions/Type_Test/evaluation_t07.dart b/Language/Expressions/Type_Test/evaluation_t07.dart
index c56fae4..a662989 100644
--- a/Language/Expressions/Type_Test/evaluation_t07.dart
+++ b/Language/Expressions/Type_Test/evaluation_t07.dart
@@ -12,7 +12,6 @@
/// argument and G is generic type, then it is a compile error
/// @author ilya
-
class G<T> {}
main() {
diff --git a/Language/Expressions/Type_Test/evaluation_t08.dart b/Language/Expressions/Type_Test/evaluation_t08.dart
index 7e1f906..5bfc7cf 100644
--- a/Language/Expressions/Type_Test/evaluation_t08.dart
+++ b/Language/Expressions/Type_Test/evaluation_t08.dart
@@ -12,7 +12,6 @@
/// type, then it is a compile error
/// @author ilya
-
class G {}
main() {
diff --git a/Language/Expressions/Type_Test/static_type_t01.dart b/Language/Expressions/Type_Test/static_type_t01.dart
index 42fb6d0..68795c7 100644
--- a/Language/Expressions/Type_Test/static_type_t01.dart
+++ b/Language/Expressions/Type_Test/static_type_t01.dart
@@ -6,8 +6,6 @@
/// @description Checks that the static checker does not raise warnings when
/// assigning the result of the is-expression to bool variables.
/// @author msyabro
-/// @reviewer kaigorodov
-
main() {
bool e = 1 is int;
diff --git a/Language/Expressions/Type_Test/syntax_t01.dart b/Language/Expressions/Type_Test/syntax_t01.dart
index 3ba8a6a..4c5214a 100644
--- a/Language/Expressions/Type_Test/syntax_t01.dart
+++ b/Language/Expressions/Type_Test/syntax_t01.dart
@@ -12,7 +12,6 @@
/// @description Checks basic grammar.
/// @author msyabro
-
main() {
1 is int;
2 is! int;
diff --git a/Language/Expressions/Type_Test/syntax_t02.dart b/Language/Expressions/Type_Test/syntax_t02.dart
index 64ffc59..0481c88 100644
--- a/Language/Expressions/Type_Test/syntax_t02.dart
+++ b/Language/Expressions/Type_Test/syntax_t02.dart
@@ -13,7 +13,6 @@
/// operand of a type test expression is a type name.
/// @author kaigorodov
-
main() {
int is Type;
}
diff --git a/Language/Expressions/Type_Test/syntax_t03.dart b/Language/Expressions/Type_Test/syntax_t03.dart
index 99e95a7..d584ee1 100644
--- a/Language/Expressions/Type_Test/syntax_t03.dart
+++ b/Language/Expressions/Type_Test/syntax_t03.dart
@@ -13,7 +13,6 @@
/// literal in the right part of the expression.
/// @author msyabro
-
main () {
1 is 1;
// ^
diff --git a/Language/Expressions/Type_Test/syntax_t04.dart b/Language/Expressions/Type_Test/syntax_t04.dart
index a4c763a..76ab0c1 100644
--- a/Language/Expressions/Type_Test/syntax_t04.dart
+++ b/Language/Expressions/Type_Test/syntax_t04.dart
@@ -13,7 +13,6 @@
/// operand of a type test expression is a type alias name.
/// @author kaigorodov
-
typedef f();
main() {
diff --git a/Language/Expressions/Type_Test/syntax_t05.dart b/Language/Expressions/Type_Test/syntax_t05.dart
index 79f4cdb..b5db913 100644
--- a/Language/Expressions/Type_Test/syntax_t05.dart
+++ b/Language/Expressions/Type_Test/syntax_t05.dart
@@ -13,7 +13,6 @@
/// expression is a statement.
/// @author msyabro
-
main () {
if (1 < 2) {} is bool;
// ^
diff --git a/Language/Expressions/syntax_t01.dart b/Language/Expressions/syntax_t01.dart
index f8c0e38..f402905 100644
--- a/Language/Expressions/syntax_t01.dart
+++ b/Language/Expressions/syntax_t01.dart
@@ -62,14 +62,14 @@
Expect.isTrue(false == (false));
Expect.isTrue(null == (null));
Expect.isTrue(-1.1 == (-1.1));
- Expect.isTrue(([]) is List);
+ checkType(checkIs<List>, true, ([]));
Expect.listEquals([], ([]));
Expect.listEquals([1, 2, "three"], ([1, 2, "three"]));
- Expect.isTrue(({}) is Map);
+ checkType(checkIs<Map>, true, ({}));
Expect.mapEquals({}, ({}));
Expect.mapEquals({"foo": "f00", "bar": 214}, ({"foo": "f00", "bar": 214}));
Expect.isTrue(() {return 3;}() == (() {return 3;}()));
- Expect.isTrue((new A()) is A);
+ checkType(checkIs<A>, true, (new A()));
Expect.isTrue((new A()) != null);
A a = new A();
Expect.equals(a, (a));
diff --git a/Language/Functions/Type_of_a_Function/function_type_t01.dart b/Language/Functions/Type_of_a_Function/function_type_t01.dart
index 27363c8..09982ad 100644
--- a/Language/Functions/Type_of_a_Function/function_type_t01.dart
+++ b/Language/Functions/Type_of_a_Function/function_type_t01.dart
@@ -24,15 +24,15 @@
main() {
int f1(int p1) {return p1;};
- Expect.isTrue(f1 is F1);
+ checkType(checkIs<F1>, true, f1);
Function f = f1;
int f2(int p1, int p2, [int p3 = 0, int p4 = 0]) {return p1 + p2 + p3 + p4;};
- Expect.isTrue(f2 is F2);
+ checkType(checkIs<F2>, true, f2);
f = f2;
int f3(int p1, int p2, int p3, {p4, p5}) {return p1 + p2 + p3;};
- Expect.isTrue(f3 is F3);
+ checkType(checkIs<F3>, true, f3);
f = f3;
Expect.isFalse(f1 is F2);
@@ -41,5 +41,4 @@
Expect.isFalse(f2 is F3);
Expect.isFalse(f3 is F1);
Expect.isFalse(f3 is F2);
-
}
diff --git a/Language/Functions/Type_of_a_Function/return_type_t02.dart b/Language/Functions/Type_of_a_Function/return_type_t02.dart
index 2ea15ab..ca17b6b 100644
--- a/Language/Functions/Type_of_a_Function/return_type_t02.dart
+++ b/Language/Functions/Type_of_a_Function/return_type_t02.dart
@@ -22,8 +22,8 @@
}
main() {
- Expect.isTrue(new A() is A);
- Expect.isTrue(new A.b() is A);
- Expect.isTrue(const C() is C);
- Expect.isTrue(const C.c() is C);
+ checkType(checkIs<A>, true, new A());
+ checkType(checkIs<A>, true, new A.b());
+ checkType(checkIs<C>, true, new C());
+ checkType(checkIs<C>, true, new C.c());
}