Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java

Issue 8846002: Tweaks for reporting duplicates, issue 519. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix for issue 647. Remove FIELD. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java
diff --git a/compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java b/compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java
index 7b6e34d8528cbd76916930fc319f72fef5e039b8..6bb3b9620b144393e76094073a1aace09741007b 100644
--- a/compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java
+++ b/compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java
@@ -214,6 +214,17 @@ public class NegativeResolverTest extends CompilerTestCase {
errEx(ResolverErrorCode.SUPER_IN_FACTORY_CONSTRUCTOR, 4, 12, 5));
}
+ public void testNameConflict_field_field() {
+ checkSourceErrors(
+ makeCode(
+ "class ClassDeclarationWithLongEnoughNameToForceLineSplitting {",
+ " var foo;",
+ " var foo;",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 2, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3));
+ }
+
public void testCall1() {
checkNumErrors("StaticInstanceCallNegativeTest.dart", 1);
}
@@ -262,44 +273,315 @@ public class NegativeResolverTest extends CompilerTestCase {
checkNumErrors("ConstVariableInitializationNegativeTest2.dart", 1);
}
- public void testNameShadowNegativeTest1() {
- checkNumErrors("NameShadowNegativeTest1.dart", 1);
+ public void test_nameShadow_topLevel_getterSetter_class() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "get foo() {}",
+ "set bar(x) {}",
+ "class foo {}",
+ "class bar{}"),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 4, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 5, 7, 3));
}
- public void testNameShadowNegativeTest2() {
- checkNumErrors("NameShadowNegativeTest2.dart", 1);
+ public void test_nameShadow_topLevel_class_getterSetter() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class foo {}",
+ "class bar {}",
+ "get foo() {}",
+ "set bar(x) {}"),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 4, 5, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 5, 5, 3));
}
- public void testNameShadowNegativeTest4() {
- checkNumErrors("NameShadowNegativeTest4.dart", 1);
+ public void test_nameShadow_topLevel_getter_setter() {
+ checkSourceErrors(makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "get bar() {}",
+ "set bar(x) {}"));
}
- public void testNameShadowNegativeTest5() {
- checkNumErrors("NameShadowNegativeTest5.dart", 1);
+ public void test_nameShadow_topLevel_setter_getter() {
+ checkSourceErrors(makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "set bar(x) {}",
+ "get bar() {}"));
}
- public void testNameShadowNegativeTest6() {
- checkNumErrors("NameShadowNegativeTest6.dart", 1);
+ public void test_nameShadow_topLevel_getters() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "get bar() {}",
+ "get bar() {}"),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3));
}
- public void testNameShadowNegativeTest7() {
- checkNumErrors("NameShadowNegativeTest7.dart", 1);
+ public void test_nameShadow_topLevel_setters() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "set bar(x) {}",
+ "set bar(x) {}"),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
+ errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3));
}
- public void testNameShadowNegativeTest8() {
- checkNumErrors("NameShadowNegativeTest8.dart", 1);
+ /**
+ * Multiple unnamed constructor definitions.
+ */
+ public void test_nameShadow_unnamedConstructors() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " A(x) {}",
+ " A(x,y) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 1),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 1));
+ {
+ String message = errors.get(0).getMessage();
+ assertTrue(message, message.contains("'A'"));
+ }
+ {
+ String message = errors.get(1).getMessage();
+ assertTrue(message, message.contains("'A'"));
+ }
}
- public void testNameShadowNegativeTest9() {
- checkNumErrors("NameShadowNegativeTest9.dart", 1);
+ /**
+ * Multiple unnamed constructor definitions. Make sure modifiers works as expected.
+ */
+ public void test_nameShadow_unnamedConstructors_constModifier() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " A(x) {}",
+ " const A(x,y) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 1),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 9, 1),
+ errEx(ResolverErrorCode.CONST_CONSTRUCTOR_CANNOT_HAVE_BODY, 4, 9, 1));
+ {
+ String message = errors.get(0).getMessage();
+ assertTrue(message, message.contains("'A'"));
+ }
}
- public void testNameShadowNegativeTest10() {
- checkNumErrors("NameShadowNegativeTest10.dart", 1);
+ /**
+ * Named constructor shadows another named constructor.
+ */
+ public void test_nameShadow_namedConstructors() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " A.foo() {}",
+ " A.foo() {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 5),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 5));
+ {
+ String message = errors.get(0).getMessage();
+ assertTrue(message, message.contains("'A.foo'"));
+ }
+ {
+ String message = errors.get(1).getMessage();
+ assertTrue(message, message.contains("'A.foo'"));
+ }
}
- public void testNameShadowNegativeTest11() {
- checkNumErrors("NameShadowNegativeTest11.dart", 1);
+ /**
+ * Method shadows another method.
+ */
+ public void test_nameShadow_methods() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " foo() {}",
+ " foo() {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 3));
+ }
+
+ /**
+ * Field shadows method.
+ */
+ public void test_nameShadow_method_field() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " foo() {}",
+ " var foo;",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
+ }
+
+ /**
+ * Static method shadows instance method.
+ */
+ public void test_nameShadow_method_staticMethod() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " foo(x) {}",
+ " static foo(a,b) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 10, 3));
+ }
+
+ /**
+ * Field shadows another field.
+ */
+ public void test_nameShadow_fields() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " var _a;",
+ " var _a;",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 2),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 2));
+ }
+
+ /**
+ * Field shadows setter/getter.
+ */
+ public void test_nameShadow_setter_field() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " set foo(x) {}",
+ " get foo() {}",
+ " var foo;",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
+ }
+
+ /**
+ * Setter shadows field.
+ */
+ public void test_nameShadow_field_setter() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " var foo;",
+ " set foo(x) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
+ }
+
+ /**
+ * Method shadows setter.
+ */
+ public void test_nameShadow_setter_method() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " set foo(x) {}",
+ " foo() {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 3));
+ }
+
+ /**
+ * Getter shadows field.
+ */
+ public void test_nameShadow_field_getter() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " var foo;",
+ " get foo() {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
+ }
+
+ /**
+ * Setter shadows another setter.
zundel 2011/12/12 16:02:59 Setter --> Getter and setter --> getter
+ */
+ public void test_nameShadow_getters() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " get foo() {}",
+ " set foo(x) {}",
+ " get foo() {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
+ }
+
+ /**
+ * Setter shadows another setter.
+ */
+ public void test_nameShadow_setters() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " set foo(x) {}",
+ " get foo() {}",
+ " set foo(x) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
+ }
+
+ /**
+ * Field shadows getter.
+ */
+ public void test_nameShadow_getter_field() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " get foo() {}",
+ " var foo;",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
+ }
+
+ /**
+ * Setter shadows method.
+ */
+ public void test_nameShadow_method_setter() {
+ checkSourceErrors(
+ makeCode(
+ "// filler filler filler filler filler filler filler filler filler filler",
+ "class A {",
+ " foo() {}",
+ " set foo(x) {}",
+ "}"),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
+ errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
}
public void testUnresolvedSuperFieldNegativeTest() {

Powered by Google App Engine
This is Rietveld 408576698