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

Paul King closed GROOVY-7014.
-----------------------------

> A Java compile time error results in a runtime exception in Groovy
> ------------------------------------------------------------------
>
>                 Key: GROOVY-7014
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7014
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>    Affects Versions: 2.3.4, 2.4.0-rc-1
>         Environment: Window 7
>            Reporter: Harminder Singh
>            Assignee: Paul King
>            Priority: Minor
>             Fix For: 2.5.0-alpha-1
>
>
> A Groovy class with CompileStatic annotation exhibit a different behavior 
> than Java.  The following code results in a compile time error in Java, but 
> throws a runtime exception in Groovy.
> {code}
> @CompileStatic
> class Base
> {
>   String getData() { return "ABCD" }
>   Base() { this(getData()) } // Calling an instance method before the class 
> is constructed
>   Base(String arg) {}
> }
> @CompileStatic
> public class GMain
> {
>   public static void main(String[] args)
>   {
>     Base b = new Base();
>   }
> }
> {code}
> Java produces:
> {noformat}
> Java Compiler error: Error:(11, 11) java: cannot reference this before 
> supertype constructor has been called
> {noformat}
> Groovy produces:
> {noformat}
> Groovy Runtime Error details:
> Exception in thread "main" java.lang.ClassCastException: java.lang.Class 
> cannot be cast to main.groovy.Base
>       at main.groovy.Base.<init>(Base.groovy:9)
>       at main.groovy.Derived.<init>(Derived.groovy)
>       at main.groovy.GMain.main(Base.groovy:18)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         ......
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to