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

Eric Milles edited comment on GROOVY-9005 at 2/20/19 5:59 PM:
--------------------------------------------------------------

Sure, I would like to see the bug fixed as well.  Just trying to hone in on 
where exactly the bug lies.

You could isolate the anonymous inner creation to a method.  That could be 
tagged @CompileDynamic if needed.
{code:groovy}
@CompileStatic
class A extends A1 {
    Map<String, Object> getInnerObject() {
        Map<String, Object> commands = getBaseMap()
        commands.put("name", newCallable())
        return commands
    }
    // could be @CompileDynamic if needed
    Callable<String> newCallable() {
      new Callable<String>() {
        @Override
        String call() {
          getObject().toString() // can be qualified with "A.this." if needed, 
which may eliminate the error
        }
      }
    }
}
{code}


was (Author: emilles):
Sure, I would like to see the bug fixed as well.  Just trying to hone in on 
where exactly the bug lies.

You could isolate the anonymous inner creation to a method.  That could be 
tagged @CompileDynamic if needed.
{code:groovy}
@CompileStatic
class A extends A1 {
    Map<String, Object> getInnerObject() {
        Map<String, Object> commands = getBaseMap()
        commands.put("name", newCallable())
        return commands
    }
    // could be @CompileDynamic if needed
    Callable<String> newCallable() {
      new Callable<String>() {
        @Override
        String call() {
          getObject().toString() // can be qualified with "A.this." if needed; 
this may eliminate the error
        }
      }
    }
}
{code}

> SomeClass.groovy: -1: Access to java.lang.Object#this is forbidden @ line -1, 
> column -1
> ---------------------------------------------------------------------------------------
>
>                 Key: GROOVY-9005
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9005
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>    Affects Versions: 2.5.6
>            Reporter: Devin Rosenbauer
>            Priority: Major
>         Attachments: GROOVY-9005.zip
>
>
> I'm receiving the above error when attempting to compile certain classes that 
> have @CompileStatic on either the class or a method within a dynamically 
> compiled class. The project is a cross-compiled Java / Groovy project with 
> all classes of both types defined in the "groovy" structure. The error can be 
> reproduced when a Groovy class extends a Java class which extends a Groovy 
> class, then a method in the Java class is called from an inner class of the 
> Groovy class.
> The simplest case I can derive to reproduce the failure is attached.
> A is the class which fails to compile. A1 and A2 are the Java and Groovy 
> superclasses, respectively.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to