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");