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

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

Issue 8632020: Make method overrides with differing parameters a compile-time error (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Report on function name, not entire function! 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/ResolverTest.java
diff --git a/compiler/javatests/com/google/dart/compiler/resolver/ResolverTest.java b/compiler/javatests/com/google/dart/compiler/resolver/ResolverTest.java
index 4371e256255e0102aa05f0a4958ae60e292f9ba1..e16a53c49a4f407303c21b283b136d45531a632c 100644
--- a/compiler/javatests/com/google/dart/compiler/resolver/ResolverTest.java
+++ b/compiler/javatests/com/google/dart/compiler/resolver/ResolverTest.java
@@ -986,4 +986,64 @@ public class ResolverTest extends ResolverTestCase {
" }",
"}"));
}
+
+ public void testImplementsAndOverrides1() {
+ resolveAndTest(Joiner.on("\n").join(
+ "class Object {}",
+ "interface Interface {",
+ " foo(x);",
+ "}",
+ "class Class implements Interface {",
+ " foo() {}", // error
+ "}"),
+ ResolverErrorCode.CANNOT_OVERRIDE_METHOD_WRONG_NUM_PARAMS);
+ }
+
+ public void testImplementsAndOverrides2() {
+ resolveAndTest(Joiner.on("\n").join(
+ "class Object {}",
+ "interface Interface {",
+ " foo([x]);",
+ "}",
+ "class Class implements Interface {",
+ " foo([x,y]) {}", // error
+ "}"),
+ ResolverErrorCode.CANNOT_OVERRIDE_METHOD_WRONG_NUM_PARAMS);
+ }
+
+ public void testImplementsAndOverrides3() {
+ resolveAndTest(Joiner.on("\n").join(
+ "class Object {}",
+ "interface Interface {",
+ " foo(x, [y]);",
+ "}",
+ "class Class implements Interface {",
+ " foo([x,y]) {}", // error
+ "}"),
+ ResolverErrorCode.CANNOT_OVERRIDE_METHOD_NUM_NAMED_PARAMS);
+ }
+
+ public void testImplementsAndOverrides4() {
+ resolveAndTest(Joiner.on("\n").join(
+ "class Object {}",
+ "interface Interface {",
+ " foo([x,y]);",
+ "}",
+ "class Class implements Interface {",
+ " foo([x]) {}", // error
+ "}"),
+ ResolverErrorCode.CANNOT_OVERRIDE_METHOD_WRONG_NUM_PARAMS);
+ }
+
+ public void testImplementsAndOverrides5() {
+ resolveAndTest(Joiner.on("\n").join(
+ "class Object {}",
+ "interface Interface {",
+ " foo([y,x]);",
+ "}",
+ "class Class implements Interface {",
+ " foo([x,y]) {}", // error
+ "}"),
+ ResolverErrorCode.CANNOT_OVERRIDE_METHOD_ORDER_NAMED_PARAMS);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698