#1231. More Super parameters tests added
diff --git a/LanguageFeatures/Super-parameters/semantics_A06_t14.dart b/LanguageFeatures/Super-parameters/semantics_A06_t14.dart
index 5f65c7f..87dac0b 100644
--- a/LanguageFeatures/Super-parameters/semantics_A06_t14.dart
+++ b/LanguageFeatures/Super-parameters/semantics_A06_t14.dart
@@ -30,7 +30,7 @@
   int s1;
   int s2;
   S(this.s1, this.s2);
-  S.named(this.s1, {this.s2});
+  S.named(this.s1, {this.s2 = 0});
 }
 
 class C extends S {
diff --git a/LanguageFeatures/Super-parameters/semantics_A06_t15.dart b/LanguageFeatures/Super-parameters/semantics_A06_t15.dart
new file mode 100644
index 0000000..76be55c
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/semantics_A06_t15.dart
@@ -0,0 +1,47 @@
+// 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 Let C be a non-redirecting generative constructor with, implicit
+/// or explicit, super-constructor invocation s at the end of its initializer
+/// list. Let D be the superclass constructor targeted by s (which must exist).
+///
+/// We define the associated super-constructor parameter for each
+/// super-parameter p of C as follows:
+///
+/// If p is a positional parameter, let j be the number of positional
+/// super-parameters of C up to and including p in source order. The associated
+/// super-constructor parameter of p is the jth positional parameter of D
+/// (1-based), if D has that many positional parameters.
+/// If p is a named parameter with name n, the associated super-constructor
+/// parameter is the named parameter of D with name n, if D has a named
+/// parameter with that name.
+///
+/// It’s a compile-time error if a non-redirecting generative
+/// constructor has a super-parameter with no associated super-constructor
+/// parameter.
+///
+/// @description Check that it is a compile-time error if a non-redirecting
+/// generative constructor has a super-parameter with no associated
+/// super-constructor parameter.
+/// @author sgrekhov@unipro.ru
+
+class S {
+  int s1;
+  int s2;
+  S(this.s1, {this.s2 = 0});
+  factory S.f(int s1, int s2) => S(s1, s2: s2);
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x;
+//                            ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C(1, 2, 3, 4);
+}
diff --git a/LanguageFeatures/Super-parameters/semantics_A06_t16.dart b/LanguageFeatures/Super-parameters/semantics_A06_t16.dart
new file mode 100644
index 0000000..5689971
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/semantics_A06_t16.dart
@@ -0,0 +1,47 @@
+// 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 Let C be a non-redirecting generative constructor with, implicit
+/// or explicit, super-constructor invocation s at the end of its initializer
+/// list. Let D be the superclass constructor targeted by s (which must exist).
+///
+/// We define the associated super-constructor parameter for each
+/// super-parameter p of C as follows:
+///
+/// If p is a positional parameter, let j be the number of positional
+/// super-parameters of C up to and including p in source order. The associated
+/// super-constructor parameter of p is the jth positional parameter of D
+/// (1-based), if D has that many positional parameters.
+/// If p is a named parameter with name n, the associated super-constructor
+/// parameter is the named parameter of D with name n, if D has a named
+/// parameter with that name.
+///
+/// It’s a compile-time error if a non-redirecting generative
+/// constructor has a super-parameter with no associated super-constructor
+/// parameter.
+///
+/// @description Check that it is a compile-time error if a non-redirecting
+/// generative constructor has a super-parameter with no associated
+/// super-constructor parameter.
+/// @author sgrekhov@unipro.ru
+
+class S {
+  int s1;
+  int s2;
+  S(this.s1, this.s2);
+  S.named(this.s1, {this.s2 = 0});
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x, super.named();
+//                            ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C(1, 2, 3, 4);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t01.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t01.dart
new file mode 100644
index 0000000..00b2845
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t01.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int s1;
+  int s2;
+  String log;
+  S(this.s1, {this.s2 = 0}) : log = "S";
+  S.named(this.s1, {this.s2 = 0}) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, {super.s2}) : this.i2 = x, super.named();
+}
+
+main() {
+  Expect.equals("S.named", C(1, 2, 3, s2: 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t02.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t02.dart
new file mode 100644
index 0000000..ec28719
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t02.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int s1;
+  int s2;
+  String log;
+  S(this.s1, this.s2) : log = "S";
+  S.named(this.s1, this.s2) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x, super.named();
+}
+
+main() {
+  Expect.equals("S.named", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t03.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t03.dart
new file mode 100644
index 0000000..22b0566
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t03.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int s1;
+  int s2;
+  String log;
+  S(this.s1, this.s2) : log = "S";
+  S.named(this.s1, this.s2) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x, super();
+}
+
+main() {
+  Expect.equals("S", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t04.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t04.dart
new file mode 100644
index 0000000..868ff4b
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t04.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int s1;
+  int s2;
+  String log;
+  S(this.s1, this.s2) : log = "S";
+  S.named(this.s1, this.s2) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x;
+}
+
+main() {
+  Expect.equals("S", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t05.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t05.dart
new file mode 100644
index 0000000..0970775
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t05.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int? s1;
+  int? s2;
+  String log;
+  S(this.s1, {this.s2}) : log = "S";
+  S.named(this.s1, {this.s2}) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, {super.s2}) : this.i2 = x;
+}
+
+main() {
+  Expect.equals("S", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t06.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t06.dart
new file mode 100644
index 0000000..b376b22
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t06.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int? s1;
+  int? s2;
+  String log;
+  S(this.s1, [this.s2]) : log = "S";
+  S.named(this.s1, [this.s2]) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, [super.s2]) : this.i2 = x;
+}
+
+main() {
+  Expect.equals("S", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t07.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t07.dart
new file mode 100644
index 0000000..fc17fda
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t07.dart
@@ -0,0 +1,36 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+import "../../Utils/expect.dart";
+
+class S {
+  int? s1;
+  int? s2;
+  String log;
+  S(this.s1, [this.s2]) : log = "S";
+  S.named(this.s1, [this.s2]) : log = "S.named";
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, [super.s2]) : this.i2 = x, super.named();
+}
+
+main() {
+  Expect.equals("S.named", C(1, 2, 3, 4).log);
+}
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t08.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t08.dart
new file mode 100644
index 0000000..afcec6a
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A01_t08.dart
@@ -0,0 +1,38 @@
+// 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 When inferring the super-constructor invocation, s, targeting the
+/// super constructor D, we include the implicit super-parameters from the
+/// constructor parameter list:
+///
+/// The super-constructor invocation s infers a super-constructor invocation s’
+/// such that
+///
+/// The same constructor is targeted by s’ as by s (same leading super or
+/// super.id constructor reference).
+///
+/// @description Check that the same constructor is targeted by s’ as by s
+/// @author sgrekhov@unipro.ru
+
+class S {
+  int? s1;
+  int? s2;
+  String log;
+  S(this.s1, this.s2) : log = "S";
+  S.named(this.s1, this.s2) : log = "S.named";
+  factory S.f(int s1, int s2) => S(s1, s2);
+}
+
+class C extends S {
+  int i1;
+  int i2;
+  C(this.i1, super.s1, int x, super.s2) : this.i2 = x, super.f();
+//                                                     ^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C(1, 2, 3, 4);
+}