Issue #1087: New tests for unnamed constructor tear offs added; missing enable-experiment tags added.
diff --git a/LanguageFeatures/Constructor-tear-offs/goal_t01_A01.dart b/LanguageFeatures/Constructor-tear-offs/goal_t01_A01.dart
index 13fea4d..4d80a20 100644
--- a/LanguageFeatures/Constructor-tear-offs/goal_t01_A01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/goal_t01_A01.dart
@@ -22,6 +22,8 @@
/// constructions.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/goal_t01_A02.dart b/LanguageFeatures/Constructor-tear-offs/goal_t01_A02.dart
index 7e19f33..b721181 100644
--- a/LanguageFeatures/Constructor-tear-offs/goal_t01_A02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/goal_t01_A02.dart
@@ -22,6 +22,8 @@
/// constructions
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/goal_t01_A03.dart b/LanguageFeatures/Constructor-tear-offs/goal_t01_A03.dart
index ffec8b0..3cfc1a3 100644
--- a/LanguageFeatures/Constructor-tear-offs/goal_t01_A03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/goal_t01_A03.dart
@@ -22,6 +22,8 @@
/// constructions
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T extends num> {
diff --git a/LanguageFeatures/Constructor-tear-offs/goal_t01_A04.dart b/LanguageFeatures/Constructor-tear-offs/goal_t01_A04.dart
index 752c463..3d49353 100644
--- a/LanguageFeatures/Constructor-tear-offs/goal_t01_A04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/goal_t01_A04.dart
@@ -22,6 +22,8 @@
/// correctly for the generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T extends int> {
C.constr(int i) {}
}
@@ -43,7 +45,7 @@
// [cfe] unspecified
var v4 = C.constr<int, int>;
-// ^
+// ^
// [analyzer] unspecified
// [cfe] unspecified
@@ -53,7 +55,7 @@
// [cfe] unspecified
var v6 = (C.constr)<int, int>;
-// ^
+// ^
// [analyzer] unspecified
// [cfe] unspecified
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t01.dart
index 0898fca..75cad65 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t01.dart
@@ -17,10 +17,12 @@
/// non-generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
- static bool called = false;
+ final bool called = false;
C.constr(int i) {
called = true;
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02.dart
index 6da519d..bfe3f39 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02.dart
@@ -17,10 +17,12 @@
/// arguments is allowed for a generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
- static bool called = false;
+ bool called = false;
C.constr(int i) {
Expect.isTrue(T == dynamic);
called = true;
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t03.dart
index 81f1892..f4fd483 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t03.dart
@@ -17,10 +17,12 @@
/// is allowed for a generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
- static bool called = false;
+ bool called = false;
C.constr(int i) {
Expect.isTrue(T == int);
called = true;
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t04.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t04.dart
index af71720..8ef10cb 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t04.dart
@@ -17,6 +17,8 @@
/// named constructor.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T> {
C.constr(int i) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t01.dart
index 5120625..37e6c5d 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t01.dart
@@ -13,6 +13,8 @@
/// @description Checks constructor tear-off expression for non-generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t02.dart
index 0738cfe..e5226b9 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A02_t02.dart
@@ -13,6 +13,8 @@
/// @description Checks constructor tear-off expression for generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t01.dart
index 23440c7..c2cf9be 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t01.dart
@@ -11,6 +11,8 @@
/// is not allowed for a non-generic class.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr(int i) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t02.dart
index e6dea21..438886a 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t02.dart
@@ -13,6 +13,8 @@
/// arguments to [C].
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t03.dart
index 2bc0358..c4991ac 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t03.dart
@@ -13,6 +13,8 @@
/// arguments to [C] - test case with the several type parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1, T2 extends num, T3 extends String> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t04.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t04.dart
index a62d15b..f4cb862 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t04.dart
@@ -13,23 +13,25 @@
/// arguments to [C] - test case with the different type parameter numbers.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T1, T2 extends num, T3 extends String> {
C.constr(exp1, exp2, exp3) {}
}
main() {
C<dynamic>.constr;
-// ^
+// ^
// [analyzer] unspecified
// [cfe] unspecified
C<dynamic, num>.constr;
-// ^
+// ^
// [analyzer] unspecified
// [cfe] unspecified
- C<dynamic, num, String, dynamic>.constr;
-// ^
+ C<String, num, dynamic>.constr;
+// ^
// [analyzer] unspecified
// [cfe] unspecified
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t05.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t05.dart
index d0b935c..d4cfeeb 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t05.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t05.dart
@@ -13,6 +13,8 @@
/// arguments to [C] - test incorrect type parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T1 extends int> {
C.constr(exp1, exp2, exp3) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t06.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t06.dart
index 8e9718a..bfe722c 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t06.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A03_t06.dart
@@ -13,6 +13,8 @@
/// arguments to [C] - test incorrect type arguments.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T> {
C.constr() {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t01.dart
index 13d6cd9..14da224 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t01.dart
@@ -13,6 +13,8 @@
/// @description Checks that [params] is exactly the same parameter list.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t02.dart
index 62156a2..7ef90b2 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t02.dart
@@ -14,6 +14,8 @@
/// list test constructor without arguments.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr() {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t03.dart
index bf7f5ba..5f11aac 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t03.dart
@@ -14,6 +14,8 @@
/// list - test case with one [int] argument.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr(num i) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t04.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t04.dart
index 0121c72..280248e 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t04.dart
@@ -14,6 +14,8 @@
/// list - test case with one [dynamic] argument.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr(i) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t05.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t05.dart
index f964f80..6d00414 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t05.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t05.dart
@@ -14,6 +14,8 @@
/// list - test case with several argument.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr(int i, String j, List<int> l) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t06.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t06.dart
index 19f6838..a0bded9 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t06.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t06.dart
@@ -13,6 +13,8 @@
/// @description Checks that initializing formals are represented by normal
/// parameters with the same name and type.
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t07.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t07.dart
index 903ace8..ceab7a3 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t07.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t07.dart
@@ -13,6 +13,8 @@
/// @description Checks statically that initializing formals are represented by
/// normal parameters with the same name and type.
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
int x;
dynamic y;
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t08.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t08.dart
index c3fe4be..f4a9419 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t08.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t08.dart
@@ -13,9 +13,11 @@
/// @description Checks statically that initializing formals are represented by
/// normal parameters with the same name and type.
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
int x;
- dynamic y;
+ String y;
C.name(this.x, this.y);
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t09.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t09.dart
index f01e99a..54f3cd8 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t09.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t09.dart
@@ -14,6 +14,8 @@
/// named parameters
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t10.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t10.dart
index 7293a54..792b20d 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t10.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t10.dart
@@ -14,6 +14,8 @@
/// parameters with the same name and type - test named parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t11.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t11.dart
index 24800d7..07030a1 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t11.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t11.dart
@@ -14,6 +14,8 @@
/// incorrect named arguments dynamically.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t12.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t12.dart
index 41f8116..b56bfce 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t12.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t12.dart
@@ -14,6 +14,8 @@
/// incorrect named arguments statically.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr({int? j, String s = "testme"}) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t13.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t13.dart
index ae56e3a..cecd79e 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t13.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t13.dart
@@ -14,6 +14,8 @@
/// normal parameters with the same name and type - test named parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
int? j = 0;
String s = "";
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t14.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t14.dart
index 8e3ce59..3a6b758 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t14.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t14.dart
@@ -14,6 +14,8 @@
/// additional parameters
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t15.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t15.dart
index e2cdb26..ed7a411 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t15.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t15.dart
@@ -14,6 +14,8 @@
/// parameters with the same name and type - test additional parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t16.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t16.dart
index 7b06c2a..9b59bc8 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t16.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t16.dart
@@ -14,6 +14,8 @@
/// incorrect additional arguments dynamically.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t17.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t17.dart
index 0199f6c..7f05f27 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t17.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t17.dart
@@ -14,6 +14,8 @@
/// incorrect additional arguments statically.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr([int? j, String s = "testme"]) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t18.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t18.dart
index 66f9eda..fc22234 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t18.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t18.dart
@@ -14,6 +14,8 @@
/// normal parameters with the same name and type - test additional parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
int? j = 0;
String s = "";
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t19.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t19.dart
index 893844a..2d5de01 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t19.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t19.dart
@@ -14,6 +14,8 @@
/// required named parameter.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t20.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t20.dart
index 64b2bf0..779bde5 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t20.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t20.dart
@@ -14,6 +14,8 @@
/// parameters with the same name and type - test required named parameter.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t21.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t21.dart
index 0a59000..05a5c73 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t21.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t21.dart
@@ -14,6 +14,8 @@
/// incorrect required named arguments statically.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
C.constr({required int i}) {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t22.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t22.dart
index 085f95e..3940af3 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t22.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t22.dart
@@ -15,9 +15,10 @@
/// parameter.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C {
int? i;
-
C.constr({required this.i});
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t01.dart
index bee83a6..35ad417 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t01.dart
@@ -12,6 +12,8 @@
/// @description Checks that type arguments can be implicitly instantiated.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1, T2 extends num, T3 extends String> {
@@ -20,6 +22,8 @@
}
main() {
- Expect.isTrue(C.constr is C Function<T1 extends dynamic, T2 extends num, T3 extends String>());
- Expect.isTrue(C.constr1 is C Function<T1 extends dynamic, T2 extends num, T3 extends String>(T1, T2));
+ Expect.isTrue(C.constr is
+ C Function<T1 extends dynamic, T2 extends num, T3 extends String>());
+ Expect.isTrue(C.constr1 is
+ C Function<T1 extends dynamic, T2 extends num, T3 extends String>(T1, T2));
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t02.dart
index 7741bab..d59a5fa 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t02.dart
@@ -12,6 +12,8 @@
/// @description Checks that type arguments can be implicitly instantiated.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1, T2 extends num, T3 extends String> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t01.dart
index a8aed24..a332fec 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t01.dart
@@ -12,6 +12,8 @@
/// [C<typeArgs>.name.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1, T2 extends num, T3 extends String> {
@@ -21,14 +23,20 @@
main() {
var v1 = C<dynamic, num, String>.constr;
- Expect.isTrue(v1 is C Function<T1 extends dynamic, T2 extends num, T3 extends String>());
+ Expect.isTrue(v1 is
+ C Function<T1 extends dynamic, T2 extends num, T3 extends String>());
var v2 = C<dynamic, num, String>.constr1;
- Expect.isTrue(v2 is C Function<T1 extends dynamic, T2 extends num, T3 extends String>(dynamic, num));
+ Expect.isTrue(v2 is C Function<T1 extends dynamic,
+ T2 extends num,
+ T3 extends String>(dynamic, num));
var v3 = C<List<int>, int, String>.constr;
- Expect.isTrue(v3 is C Function<T1 extends List<int>, T2 extends int, T3 extends String>());
+ Expect.isTrue(v3 is
+ C Function<T1 extends List<int>, T2 extends int, T3 extends String>());
var v4 = C<List<int>, int, String>.constr1;
- Expect.isTrue(v3 is C Function<T1 extends List<int>, T2 extends int, T3 extends String>(List<int>, int));
+ Expect.isTrue(v3 is C Function<T1 extends List<int>,
+ T2 extends int,
+ T3 extends String>(List<int>, int));
}
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t02.dart
index d995679..0771288 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t02.dart
@@ -13,6 +13,8 @@
/// constructor tearing off.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1, T2 extends num, T3 extends String> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t01.dart
index 7d2ca52..4f589a4 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t01.dart
@@ -12,6 +12,8 @@
/// the same function value: test default constructor
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t02.dart
index ab4581c..b9007d4 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t02.dart
@@ -12,6 +12,8 @@
/// the same function value: test named constructors
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t03.dart
index 9297941..6be5c48 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t03.dart
@@ -12,6 +12,8 @@
/// the same function value: test constructors with initializing formals.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t04.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t04.dart
index 4b7c1b3..7597f6f 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t04.dart
@@ -12,6 +12,8 @@
/// the same function value: test constructors with named parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t05.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t05.dart
index 6788117..c1f5ad1 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t05.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t05.dart
@@ -12,6 +12,8 @@
/// the same function value: test constructors with optional parameters.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t06.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t06.dart
index 1ffe66f..e458102 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t06.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t06.dart
@@ -12,6 +12,8 @@
/// the same function value: test generic constructor.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t07.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t07.dart
index df765fb..be90b98 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t07.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A07_t07.dart
@@ -12,6 +12,8 @@
/// the same function value: test generic constructor.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T1 extends int, T2, T3 extends List> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t01.dart
index ac746ae..b7a300e 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t01.dart
@@ -10,6 +10,8 @@
/// class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class MyClass {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t02.dart
index cf5a995..2ead742 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t02.dart
@@ -9,6 +9,8 @@
/// canonicalized if the instantiating types are constant - test generic class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class MyClass<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t03.dart
index 860b6ef..623308a 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t03.dart
@@ -9,6 +9,8 @@
/// instantiating types are not constant - test non-generic class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class MyClass {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t04.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t04.dart
index 1400abd..4bc4ce1 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_A08_t04.dart
@@ -9,6 +9,8 @@
/// instantiating types are not constant - test generic class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class MyClass<T1 extends String, T2 extends num> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A01.dart
index 5debb41..c2d2d17 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A01.dart
@@ -10,6 +10,8 @@
/// expressions are the same - test non-generic class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A02.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A02.dart
index 80e8330..c9c051d 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A02.dart
@@ -10,6 +10,8 @@
/// expressions are the same - test generic class with default type arguments
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A03.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A03.dart
index d7935ba..1fd4e59 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_t09_A03.dart
@@ -10,6 +10,8 @@
/// expressions are the same - test generic class
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class C<T> {
diff --git a/LanguageFeatures/Constructor-tear-offs/named_constructor_t10_A01.dart b/LanguageFeatures/Constructor-tear-offs/named_constructor_t10_A01.dart
index e5b7e56..20b8dd0 100644
--- a/LanguageFeatures/Constructor-tear-offs/named_constructor_t10_A01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/named_constructor_t10_A01.dart
@@ -14,6 +14,8 @@
/// allowed.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
class C<T> {
C() {}
}
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01.dart
index 288246e..d344303 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01.dart
@@ -11,6 +11,8 @@
/// List<int>;] and filled constructor is teared of in this case.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef IntList = List<int>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t02.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t02.dart
index 3c66d96..8828d63 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t02.dart
@@ -11,7 +11,7 @@
/// off constructor.
/// @author iarkh@unipro.ru
-import "../../Utils/expect.dart";
+// SharedOptions=--enable-experiment=constructor-tearoffs
typedef IntList = List<int>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t01.dart
index e066471..b47f8b9 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t01.dart
@@ -12,6 +12,8 @@
/// [List].
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList = List;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t02.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t02.dart
index eb4e207..eb7ec8f 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t02.dart
@@ -12,6 +12,8 @@
/// [List<num?>].
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList = List<num?>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t03.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t03.dart
index e02522c..d613477 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t03.dart
@@ -12,6 +12,8 @@
/// negative static case for raw List.
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
typedef MyList = List;
main() {
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t04.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t04.dart
index 6d55e14..5dd8202 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t04.dart
@@ -12,6 +12,8 @@
/// negative static case for [List<int>].
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
typedef MyList = List<int>;
main() {
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t05.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t05.dart
index 41f05b8..eed6e15 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t05.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t05.dart
@@ -12,6 +12,8 @@
/// negative dynamic case for [List<int>].
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList = List<int>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t01.dart
index c5f8ab0..63cdffe 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t01.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t02.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t02.dart
index cd8703b..7b4a981 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t02.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
typedef MyList<T> = List<T>;
main() {
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t03.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t03.dart
index e188cb9..db8e9cc 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t03.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t04.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t04.dart
index 2fe4238..844e7db 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t04.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t04.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T extends num> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t05.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t05.dart
index b23bf91..3c4d5fa 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t05.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t05.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
typedef MyList<T extends num> = List<T>;
main() {
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t06.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t06.dart
index 0cf2c02..031a641 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t06.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t06.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T extends num> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t07.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t07.dart
index 5c08fa7..6837065 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t07.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t07.dart
@@ -12,6 +12,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T extends num> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t01.dart
index 2057742..99f5aba 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t01.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t01.dart
@@ -2,11 +2,11 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-/// If the type alias is not instantiated, then it's a function from types to
-/// types, not an alias for a single type, and tearing off a constructor works
-/// equivalently to tearing off a corresponding generic function where the
-/// generics match the type alias, not the underlying class. The result is a
-/// compile-time constant.
+/// @assertion If the type alias is not instantiated, then it's a function from
+/// types to types, not an alias for a single type, and tearing off a
+/// constructor works equivalently to tearing off a corresponding generic
+/// function where the generics match the type alias, not the underlying class.
+/// The result is a compile-time constant.
///
/// @description Checks that if type alias is not instantiated, tearing off a
/// constructor works equivalently to tearing off a corresponding generic
@@ -14,6 +14,8 @@
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef MyList<T> = List<T>;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t02.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t02.dart
index b64d3f7..570dabe 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t02.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t02.dart
@@ -2,17 +2,19 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-/// If the type alias is not instantiated, then it's a function from types to
-/// types, not an alias for a single type, and tearing off a constructor works
-/// equivalently to tearing off a corresponding generic function where the
-/// generics match the type alias, not the underlying class. The result is a
-/// compile-time constant.
+/// @assertion If the type alias is not instantiated, then it's a function from
+/// types to types, not an alias for a single type, and tearing off a
+/// constructor works equivalently to tearing off a corresponding generic
+/// function where the generics match the type alias, not the underlying class.
+/// The result is a compile-time constant.
///
/// @description Checks that the result of the not instantiated type alias
/// tearing off is a compile-time constant.
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
typedef IntList = List;
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart
index 690cebc..86284d2 100644
--- a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart
@@ -2,17 +2,19 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-/// If the type alias is not instantiated, then it's a function from types to
-/// types, not an alias for a single type, and tearing off a constructor works
-/// equivalently to tearing off a corresponding generic function where the
-/// generics match the type alias, not the underlying class. The result is a
-/// compile-time constant.
+/// @assertion If the type alias is not instantiated, then it's a function from
+/// types to types, not an alias for a single type, and tearing off a
+/// constructor works equivalently to tearing off a corresponding generic
+/// function where the generics match the type alias, not the underlying class.
+/// The result is a compile-time constant.
///
/// @description Checks that the result of the not instantiated type alias
/// tearing off is a compile-time constant.
///
/// @author iarkh@unipro.ru
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
import "../../Utils/expect.dart";
class A<T extends num> {
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A05_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A05_t01.dart
new file mode 100644
index 0000000..312a08e
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A05_t01.dart
@@ -0,0 +1,30 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Example:
+///
+// typedef ListList<T> = List<List<T>>;
+// Corresponding factory function
+// List<List<T>> ListList$filled$tearoff<T>(int length, List<T> value) =>
+// List<List<T>>.filled(length, value);
+///
+/// @description Checks example 1 from the Spec
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+typedef ListList<T> = List<List<T>>;
+
+main() {
+ Expect.notEquals(List<List>.filled, ListList.filled);
+
+ Expect.identical(List<List<dynamic>>.filled, ListList<dynamic>.filled);
+ Expect.identical(List<List<int>>.filled, ListList<int>.filled);
+ Expect.identical(List<List<Never>>.filled, ListList<Never>.filled);
+ Expect.identical(List<List<Null>>.filled, ListList<Null>.filled);
+ Expect.identical(List<List<List>>.filled, ListList<List>.filled);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A06_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A06_t01.dart
new file mode 100644
index 0000000..46b0f48
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A06_t01.dart
@@ -0,0 +1,41 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Example:
+///
+/// typedef MyList<T> = List<T>;
+/// typedef MyList2<T extends num> = List<T>;
+/// void main() {
+/// // Instantiated type aliases use the aliased type.
+/// print(identical(MyList<int>.filled, MyList2<int>.filled)); // true
+/// print(identical(MyList<int>.filled, List<int>.filled)); // true
+/// print(identical(MyList2<int>.filled, List<int>.filled)); // true
+/// // Non-instantiated type aliases have their own generic function.
+/// print(identical(MyList.filled, MyList.filled)); // true
+/// print(identical(MyList2.filled, MyList2.filled)); // true
+/// print(identical(MyList.filled, MyList2.filled)); // false
+/// print(identical(MyList.filled, List.filled)); // false (!)
+/// }
+///
+/// @description Checks example 2 from the Spec
+///
+/// @author iarkh@unipro.ru
+
+import "../../Utils/expect.dart";
+
+typedef MyList<T> = List<T>;
+typedef MyList2<T extends num> = List<T>;
+
+void main() {
+ // Instantiated type aliases use the aliased type.
+ Expect.identical(MyList<int>.filled, MyList2<int>.filled);
+ Expect.identical(MyList<int>.filled, List<int>.filled);
+ Expect.identical(MyList2<int>.filled, List<int>.filled);
+
+ // Non-instantiated type aliases have their own generic function.
+ Expect.identical(MyList.filled, MyList.filled);
+ Expect.identical(MyList2.filled, MyList2.filled);
+ Expect.notEquals(MyList.filled, MyList2.filled);
+ Expect.notEquals(MyList.filled, List.filled);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A07_t01.dart b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A07_t01.dart
new file mode 100644
index 0000000..4c652b5
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A07_t01.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion We do not try to distinguish the cases where the type arguments
+/// are passed directly to the original class in the same order vs. those where
+/// they are modified along the way.
+///
+/// @description Checks case where type argument is not passed directly to the
+/// original class
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A<T1, T2> {
+ A.testme() {}
+}
+typedef AAlias<X, Y> = A<X, Y>;
+
+class B<T1, T2> {
+ var v1 = AAlias.testme;
+ var v2 = AAlias.testme;
+}
+
+main() {
+ B b1 = B();
+ Expect.notEquals(b1.v1, b1.v2);
+
+ B b2 = B<int, String>();
+ Expect.identical(b2.v1, b2.v2);
+ Expect.identical(A<int, String>.testme, b2.v2);
+
+ B b3 = B<Never, List>();
+ Expect.identical(b3.v1, b3.v2);
+ Expect.identical(A<Never, List>.testme, b3.v1);
+
+ B b4 = B<dynamic, List<int>>();
+ Expect.identical(b4.v1, b4.v2);
+ Expect.identical(A<dynamic, List<int>>.testme, b3.v1);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A01_t01.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A01_t01.dart
new file mode 100644
index 0000000..c181e2c
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A01_t01.dart
@@ -0,0 +1,24 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion If [C] denotes a class, an expression of [C] by itself already
+/// has a meaning, it evaluates to a [Type] object representing the class, so it
+/// cannot also denote the unnamed constructor.
+///
+/// @description Checks that class name cannot denote the unnamed constructor.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+class A<T> {
+ A();
+}
+
+main() {
+ var v = A.A;
+// ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A02_t01.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A02_t01.dart
new file mode 100644
index 0000000..3160027
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A02_t01.dart
@@ -0,0 +1,60 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Because of that, we introduce a [new] syntax that can be used to
+/// denote the unnamed constructor: [C.new]. It can be used in every place where
+/// a named constructor can be referenced, but will instead denote the unnamed
+/// constructor, and it can be used to tear off the unnamed constructor without
+/// interfering with using the class name to denote the [Type] object.
+///
+/// class C {
+/// final int x;
+/// const C.new(this.x); // declaration.
+/// }
+///
+/// class D extend C {
+/// D(int x) : super.new(x * 2); // super constructor reference.
+/// }
+///
+/// void main() {
+/// D.new(1); // normal invocation.
+/// const C.new(1); // const invocation.
+/// new C.new(1); // explicit new invocation.
+/// var f = C.new; // tear-off.
+/// f(1);
+/// }
+/// }
+///
+/// @description Checks the example from the Spec.
+///
+/// @Issue 46198
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class C {
+ final int x;
+ const C.new(this.x);
+}
+
+class D extends C {
+ D(int x) : super.new(x * 2);
+}
+
+void main() {
+ D d = D.new(1);
+ Expect.Equals(d.x, 2);
+
+ const c = C.new(3);
+ Expect.Equals(c.x, 6);
+
+ var c1 = new C.new(7);
+ Expect.Equals(c1.x, 14);
+
+ var f = C.new;
+ int i = f(-1).x;
+ Expect.Equals(i, -2);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t01.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t01.dart
new file mode 100644
index 0000000..c03f38b
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t01.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] call is equivalent with the default
+/// constructor call. Tests non-generic class.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A {
+ static int called = 0;
+ A() {
+ called++;
+ }
+}
+
+main() {
+ A a = A.new();
+ Expect.equals(1, A.called);
+
+ A();
+ Expect.equals(2, A.called);
+
+ A.new();
+ Expect.equals(3, A.called);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t02.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t02.dart
new file mode 100644
index 0000000..6463386
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t02.dart
@@ -0,0 +1,55 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] call is equivalent with the default
+/// constructor call. Tests super constructor reference.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A {
+ static int called_a = 0;
+ A() {
+ called_a++;
+ }
+}
+
+class B extends A {
+ static int called_b = 0;
+ B() : super() {
+ called_b++;
+ }
+}
+
+main() {
+ B b = B.new();
+ Expect.equals(1, A.called_a);
+ Expect.equals(1, B.called_b);
+
+ B();
+ Expect.equals(2, A.called_a);
+ Expect.equals(2, B.called_b);
+
+ A.new();
+ Expect.equals(3, A.called_a);
+ Expect.equals(2, B.called_b);
+
+ B.new();
+ Expect.equals(4, A.called_a);
+ Expect.equals(3, B.called_b);
+
+ A();
+ Expect.equals(5, A.called_a);
+ Expect.equals(3, B.called_b);
+
+ B();
+ Expect.equals(6, A.called_a);
+ Expect.equals(4, B.called_b);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t03.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t03.dart
new file mode 100644
index 0000000..16fdb76
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t03.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] call is equivalent with the default
+/// constructor call. Tests constructor with arguments.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A {
+ int i = 0;
+ String s = "";
+
+ A(this.i, this.s);
+
+ static void check(exp1, exp2) {
+ A a = A.new(exp1, exp2);
+ Expect.equals(exp1, a.i);
+ Expect.equals(exp2, a.s);
+ }
+}
+
+main() {
+ A.check(1, "Testme");
+ A.check(-2, "Stop");
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t04.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t04.dart
new file mode 100644
index 0000000..11db84f
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t04.dart
@@ -0,0 +1,39 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] call is equivalent with the default
+/// constructor call. Tests generic constructor.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A<T> {
+ int i = 0;
+ String s = "";
+
+ A(this.i, this.s);
+
+ void check(exp1, exp2, exp3) {
+ Expect.equals(exp1, i);
+ Expect.equals(exp2, s);
+ Expect.equals(exp3, T);
+ }
+}
+
+main() {
+ A(1, "Testme").check(1, "Testme", dynamic);
+ A.new(1, "Testme").check(1, "Testme", dynamic);
+
+ A<int>(12345, "").check(12345, "", int);
+ A.new<int>(12345, "").check(12345, "", int);
+
+ A<Never>(0, "0").check(0, "0", Never);
+ A.new<Never>.(0, "0").check(0, "0", Never);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t05.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t05.dart
new file mode 100644
index 0000000..679907c
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t05.dart
@@ -0,0 +1,39 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] declaration is equivalent with default \
+/// constructor declaration.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A<T> {
+ int i = 0;
+ String s = "";
+
+ A.new(this.i, this.s);
+
+ void check(exp1, exp2, exp3) {
+ Expect.equals(exp1, i);
+ Expect.equals(exp2, s);
+ Expect.equals(exp3, T);
+ }
+}
+
+main() {
+ A(1, "Testme").check(1, "Testme", dynamic);
+ A.new(1, "Testme").check(1, "Testme", dynamic);
+
+ A<int>(12345, "").check(12345, "", int);
+ A.new<int>(12345, "").check(12345, "", int);
+
+ A<Never>(0, "0").check(0, "0", Never);
+ A.new<Never>.(0, "0").check(0, "0", Never);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t06.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t06.dart
new file mode 100644
index 0000000..cbad226
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t06.dart
@@ -0,0 +1,42 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion Apart from the tear-off, this code will mean exactly the same
+/// thing as the same code without the .new.
+///
+/// @description Checks that [new] declaration is equivalent with default \
+/// constructor declaration.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+import "../../Utils/expect.dart";
+
+class A<T> {
+ int i = 0;
+ String s = "";
+
+ A.new(int ii, String ss) {
+ i = ii;
+ s = ss;
+ }
+
+ void check(exp1, exp2, exp3) {
+ Expect.equals(exp1, i);
+ Expect.equals(exp2, s);
+ Expect.equals(exp3, T);
+ }
+}
+
+main() {
+ A(1, "Testme").check(1, "Testme", dynamic);
+ A.new(1, "Testme").check(1, "Testme", dynamic);
+
+ A<int>(12345, "").check(12345, "", int);
+ A.new<int>(12345, "").check(12345, "", int);
+
+ A<Never>(0, "0").check(0, "0", Never);
+ A.new<Never>.(0, "0").check(0, "0", Never);
+}
diff --git a/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t07.dart b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t07.dart
new file mode 100644
index 0000000..ca33fd7
--- /dev/null
+++ b/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A03_t07.dart
@@ -0,0 +1,49 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion If [C] denotes a class, an expression of [C] by itself already
+/// has a meaning, it evaluates to a [Type] object representing the class, so it
+/// cannot also denote the unnamed constructor.
+///
+/// @description Checks that it's impossible to have default constructors
+/// declared with [new] syntax and with class name at the same time.
+///
+/// @author iarkh@unipro.ru
+
+// SharedOptions=--enable-experiment=constructor-tearoffs
+
+class A {
+ A() {}
+ A.new() {}
+// ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class B {
+ B(int i) {}
+ B.new(int i) {}
+// ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class C<T> {
+ C(int i, double j, k) {}
+ C.new() {}
+// ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class D<T1 extends List, T2 extends int, T3> {
+ A.new(T3 z) {}
+// ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+ D(T1 x, T2 t) {}
+}
+
+main() {}