You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (JIRA)" <ji...@apache.org> on 2019/02/20 17:25:00 UTC

[jira] [Commented] (GROOVY-9005) SomeClass.groovy: -1: Access to java.lang.Object#this is forbidden @ line -1, column -1

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

Eric Milles commented on GROOVY-9005:
-------------------------------------

I suspected that an anonymous inner class was going to show up in your example.  I had a similar issue (GROOVY-8433) where an anonymous inner, which contains an implicit parameter "this" is transformed to something that fails to compile.

Could you try your example this way just to see if the alternative syntax using a closure literal works?
{code:groovy}
@CompileStatic
class A extends A1 {
    Map<String, Object> getInnerObject() {
        Map<String, Object> commands = getBaseMap()
        commands.put('name', { ->
          getObject().toString()  // otherwise the "this" that gets transformed is the implicit object expression of this line
        } as Callable<String>)

        return commands
    }
}
{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)