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

Eric Milles reassigned GROOVY-11256:
------------------------------------

    Assignee: Eric Milles

> Fail to identify direct call of abstract method
> -----------------------------------------------
>
>                 Key: GROOVY-11256
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11256
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static Type Checker
>            Reporter: Thodoris Sotiropoulos
>            Assignee: Eric Milles
>            Priority: Minor
>
> I have the following ill-typed program
> {code}
> interface A {
>     int m();
> }
> class C implements A {
>     public int m()  { return 1; }
>     void test() {
>         A.super.m();
>     }
> }
> public class Test {
>     public static void main(String[] args) {
>         new C().test();
>     }
> }
> {code}
> h3. Actual behavior
> The program compiles with and produces:
> {code}
> Exception in thread "main" java.lang.AbstractMethodError: 'int A.m()'
>         at C.test(Test.groovy:8)
>         at Test.main(Test.groovy:14)
> {code}
> h3. Expected behavior
> Reject the program with:
> {code}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> Test.groovy: 8: [Static type checking] - Abstract method m() cannot be called 
> directly
>  @ line 8, column 9.
>            A.super.m();
>            ^
> 1 error
> {code}



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

Reply via email to