[ 
https://issues.apache.org/jira/browse/GROOVY-11560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King updated GROOVY-11560:
-------------------------------
    Description: 
This is a clone of GROOVY-10381 which solved the following:
{code:java}
package p;
public interface A {
  default void m() {}
}
public interface B {
  default void m() {}
}
{code}
{code:groovy}
class C implements p.A, p.B {
  void test() {
    m()
  }
}
{code}

{{groovyc}} does not detect that {{m()}} must be overridden to resolve the 
conflict.  {{javac}} does produce an error, but it is still possible to import 
the interfaces from libraries and not trigger joint compilation. As noted in 
that issue, the following case isn't covered:


  was:
Consider the following:
{code:java}
package p;
public interface A {
  default void m() {}
}
public interface B {
  default void m() {}
}
{code}
{code:groovy}
class C implements p.A, p.B {
  void test() {
    m()
  }
}
{code}

{{groovyc}} does not detect that {{m()}} must be overridden to resolve the 
conflict.  {{javac}} does produce an error, but it is still possible to import 
the interfaces from libraries and not trigger joint compilation.


> Invalid compiler error for class which overrides a method having duplicate 
> default definitions from interfaces
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-11560
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11560
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Eric Milles
>            Assignee: Daniel Sun
>            Priority: Major
>              Labels: default-methods
>
> This is a clone of GROOVY-10381 which solved the following:
> {code:java}
> package p;
> public interface A {
>   default void m() {}
> }
> public interface B {
>   default void m() {}
> }
> {code}
> {code:groovy}
> class C implements p.A, p.B {
>   void test() {
>     m()
>   }
> }
> {code}
> {{groovyc}} does not detect that {{m()}} must be overridden to resolve the 
> conflict.  {{javac}} does produce an error, but it is still possible to 
> import the interfaces from libraries and not trigger joint compilation. As 
> noted in that issue, the following case isn't covered:



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

Reply via email to