[ 
https://issues.apache.org/jira/browse/GROOVY-11237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17790853#comment-17790853
 ] 

ASF GitHub Bot commented on GROOVY-11237:
-----------------------------------------

paulk-asert commented on code in PR #2001:
URL: https://github.com/apache/groovy/pull/2001#discussion_r1408619139


##########
src/test/groovy/InterfaceTest.groovy:
##########
@@ -91,4 +91,19 @@ final class InterfaceTest extends CompilableTestSupport {
             assert impl2.foo() == 'hello from Foo#foo'
         '''
     }
+
+    // GROOVY-11237
+    void testStaticInterfaceMethod() {
+        assertScript '''
+            interface Foo {
+                static hello(where) { "hello $where" }
+                static String BAR = 'bar'
+                String BAA = 'baa' // implicit static
+            }
+
+            assert Foo.hello('world') == 'hello world'
+            assert Foo.BAR == 'bar'
+            assert Foo.BAA == 'baa'
+        '''

Review Comment:
   Added





> Support static interface methods
> --------------------------------
>
>                 Key: GROOVY-11237
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11237
>             Project: Groovy
>          Issue Type: Sub-task
>          Components: Compiler
>            Reporter: Christopher Smith
>            Assignee: Paul King
>            Priority: Major
>
> Apologies if this is a dupe, but I went back as far as 6000, and GROOVY-8299 
> is the only relevant ticket I saw.
> Since Java 8, interfaces can carry static methods like classes. Groovy still 
> (as of 3.0.8) does not support adding static methods to interfaces.
> {code}
> The method 'java.lang.String dynamoTableNameForType(java.lang.String)' from 
> interface 'com.example.HasDynamo' must not be static. Only fields may be 
> static in an interface.
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to