Fixes #1246. Use correct type for type inference
diff --git a/LanguageFeatures/Super-parameters/super_constructor_invocation_A02_t02.dart b/LanguageFeatures/Super-parameters/super_constructor_invocation_A02_t02.dart
index 0f44d0d..828f3ef 100644
--- a/LanguageFeatures/Super-parameters/super_constructor_invocation_A02_t02.dart
+++ b/LanguageFeatures/Super-parameters/super_constructor_invocation_A02_t02.dart
@@ -46,7 +46,7 @@
   Expect.isFalse(c.f1 is String);
   Expect.isTrue(c.v1 is int);
   Expect.isFalse(c.v1 is String);
-  Expect.isTrue(c.i1.runtimeType is int);
+  Expect.equals("int", c.i1.runtimeType.toString());
   Expect.isTrue(c.t1 is int);
   Expect.isFalse(c.t1 is String);
 }
diff --git a/LanguageFeatures/Super-parameters/type_inference_A01_t03.dart b/LanguageFeatures/Super-parameters/type_inference_A01_t03.dart
index cd37ef0..2c75d4d 100644
--- a/LanguageFeatures/Super-parameters/type_inference_A01_t03.dart
+++ b/LanguageFeatures/Super-parameters/type_inference_A01_t03.dart
@@ -33,7 +33,7 @@
 }
 
 class C<T extends num> extends S<T> {
-  C(int x, int super.f, int super.v, int super.n, int super.t, int y,
+  C(int x, int super.f, int super.v, int super.n, T super.t, int y,
       int super.i) {
     Expect.isTrue(f is int);
     Expect.isFalse(f is String);
@@ -41,8 +41,6 @@
     Expect.isFalse(v is String);
     Expect.isTrue(n is int);
     Expect.isFalse(n is String);
-    Expect.isTrue(t is int);
-    Expect.isFalse(t is String);
   }
 }
 
diff --git a/LanguageFeatures/Super-parameters/type_inference_A01_t04.dart b/LanguageFeatures/Super-parameters/type_inference_A01_t04.dart
new file mode 100644
index 0000000..4a5ce14
--- /dev/null
+++ b/LanguageFeatures/Super-parameters/type_inference_A01_t04.dart
@@ -0,0 +1,29 @@
+// 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 infer the type of a parameter declaration, p, of a
+/// non-redirecting generative constructor, C, as:
+///
+/// If the p has a type in its <finalConstVarOrType>, that remains the type of
+/// the parameter.
+///
+/// @description Check that if the p has a type in its <finalConstVarOrType>,
+/// that remains the type of the parameter.
+/// @author sgrekhov@unipro.ru
+
+// SharedOptions=--enable-experiment=super-parameters
+
+class S<T extends num> {
+  S(T t);
+}
+
+class C<T extends num> extends S<T> {
+  C(int super.t);
+//  ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+main() {
+  C(42);
+}