Adds native JsType tests for defenders.
Change-Id: I141ab0ccdf094a936461b070c99a0e1e85e95da7
diff --git a/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java b/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
index b2e4ca3..8c42740 100644
--- a/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
+++ b/dev/core/test/com/google/gwt/dev/jjs/impl/JsInteropRestrictionCheckerTest.java
@@ -1355,6 +1355,23 @@
"Line 6: Native JsType ''EntryPoint.Buggy'' can only extend native JsType interfaces.");
}
+ public void testNativeJsTypeInterfaceDefenderMethodsFails() throws Exception {
+ addSnippetImport("jsinterop.annotations.JsType");
+ addSnippetImport("jsinterop.annotations.JsOverlay");
+ addSnippetClassDecl(
+ "@JsType(isNative=true) public interface Buggy {",
+ " default void someMethod(){}",
+ " @JsOverlay",
+ " default void someOverlayMethod(){}",
+ "}");
+
+ assertBuggyFails(
+ "Line 6: Native JsType method 'void EntryPoint.Buggy.someMethod()' should be native "
+ + "or abstract.",
+ "Line 8: JsOverlay method 'void EntryPoint.Buggy.someOverlayMethod()' cannot be "
+ + "non-final nor native.");
+ }
+
public void testJsOverlayOnNativeJsTypeMemberSucceeds() throws Exception {
addSnippetImport("jsinterop.annotations.JsType");
addSnippetImport("jsinterop.annotations.JsOverlay");