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); |
+ } |
} |