Type parameter and class name must not conflict
Implement missing name conflict check.
BUG=14513
R=regis@google.com
Review URL: https://codereview.chromium.org/2063223003 .
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index a5a568b..b8fa54b 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -4677,6 +4677,11 @@
}
ExpectToken(Token::kRBRACE);
+ if (cls.LookupTypeParameter(class_name) != TypeParameter::null()) {
+ ReportError(class_pos,
+ "class name conflicts with type parameter '%s'",
+ class_name.ToCString());
+ }
CheckConstructors(&members);
// Need to compute this here since MakeArray() will clear the
diff --git a/tests/co19/co19-co19.status b/tests/co19/co19-co19.status
index 4d8a0e7..948470b 100644
--- a/tests/co19/co19-co19.status
+++ b/tests/co19/co19-co19.status
@@ -25,16 +25,15 @@
LibTest/core/Symbol/Symbol_A01_t04: RuntimeError # Issue 25804
-Language/Classes/same_name_type_variable_t01: Pass, MissingCompileTimeError, Fail # Issue 14513
-Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513
-Language/Classes/same_name_type_variable_t07: Pass, MissingCompileTimeError, Fail # Issue 14513
+Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
+Language/Classes/same_name_type_variable_t07: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
-LibTest/math/acos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/asin_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/atan_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/acos_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/asin_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/atan_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/cos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/tan_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/cos_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/tan_A01_t01: PASS, FAIL, OK # Issue 26261
LibTest/core/Expando/Expando_A03_t01: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t03: RuntimeError # Issue 17735
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index b1e73f1..c4c30e7 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -30,6 +30,7 @@
Language/Classes/Static_Methods/type_object_t01: RuntimeError # Please triage this failure
Language/Classes/Static_Methods/type_object_t02: RuntimeError # Please triage this failure
Language/Classes/definition_t23: CompileTimeError # Please triage this failure
+Language/Classes/same_name_type_variable_t01: Fail # Missing CT error on class with same name a type parameter
Language/Classes/same_name_type_variable_t02: Fail # Missing CT error on member with same name a type parameter
Language/Classes/same_name_type_variable_t03: Fail # Missing CT error on member with same name a type parameter
Language/Classes/same_name_type_variable_t05: Fail # Missing CT error on member with same name a type parameter
@@ -1549,7 +1550,7 @@
WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 52
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 52
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Pass, RuntimeError # Issue 52
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Pass, RuntimeError # Issue 52
WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Pass, RuntimeError # Issue 52