[ https://issues.apache.org/jira/browse/GROOVY-8127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
François Guillot updated GROOVY-8127: ------------------------------------- Description: I'm switching from Groovy 2.4.7 to 2.4.10 in my project. I have a compile error with 2.4.10. Simplified example: {code} import groovy.transform.CompileStatic import org.junit.Rule import org.junit.rules.TestRule @CompileStatic trait FooTrait { @Rule public final TestRule foo = {} as TestRule } {code} I get "Error:Groovyc: Access to FooTrait$Trait$Helper#$self is forbidden" Another variant of this error is "Error:Groovyc: Apparent variable '$self' was found in a static scope but doesn't refer to a local variable, static field or class." This second error happens with the following code {code} import groovy.transform.CompileStatic import org.junit.Rule import org.junit.rules.TestRule import org.junit.runner.Description import org.junit.runners.model.Statement @CompileStatic trait TestSupport { boolean failOnResourceLeak = true @Rule public final TestRule leakDetectionFlagRule = { Statement base, Description description -> return { base.evaluate() if (failOnResourceLeak) { throw new Exception("A resource has leaked in this test!") } } as Statement } as TestRule } {code} was: I'm switching from Groovy 2.4.7 to 2.4.10 in my project. I have a compile error with 2.4.10. Simplified example: {code} import groovy.transform.CompileStatic import org.junit.Rule import org.junit.rules.TestRule @CompileStatic trait FooTrait { @Rule public final TestRule foo = {} as TestRule } {code} I get "Error:Groovyc: Access to FooTrait$Trait$Helper#$self is forbidden" Another variant of this error is "Error:Groovyc: Apparent variable '$self' was found in a static scope but doesn't refer to a local variable, static field or class." This second error happens with the following code {code} import groovy.transform.CompileStatic import org.junit.Rule import org.junit.rules.TestRule import org.junit.runner.Description import org.junit.runners.model.Statement @CompileStatic trait RatpackTestSupport { boolean failOnResourceLeak = true @Rule public final TestRule leakDetectionFlagRule = { Statement base, Description description -> return { base.evaluate() if (failOnResourceLeak) { throw new Exception("A resource has leaked in this test!") } } as Statement } as TestRule } {code} > Access to Trait$Trait$Helper#$self is forbidden > ----------------------------------------------- > > Key: GROOVY-8127 > URL: https://issues.apache.org/jira/browse/GROOVY-8127 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 2.4.10 > Reporter: François Guillot > > I'm switching from Groovy 2.4.7 to 2.4.10 in my project. > I have a compile error with 2.4.10. > Simplified example: > {code} > import groovy.transform.CompileStatic > import org.junit.Rule > import org.junit.rules.TestRule > @CompileStatic > trait FooTrait { > @Rule > public final TestRule foo = {} as TestRule > } > {code} > I get "Error:Groovyc: Access to FooTrait$Trait$Helper#$self is forbidden" > Another variant of this error is "Error:Groovyc: Apparent variable '$self' > was found in a static scope but doesn't refer to a local variable, static > field or class." > This second error happens with the following code > {code} > import groovy.transform.CompileStatic > import org.junit.Rule > import org.junit.rules.TestRule > import org.junit.runner.Description > import org.junit.runners.model.Statement > @CompileStatic > trait TestSupport { > boolean failOnResourceLeak = true > @Rule > public final TestRule leakDetectionFlagRule = { Statement base, > Description description -> > return { > base.evaluate() > if (failOnResourceLeak) { > throw new Exception("A resource has leaked in this test!") > } > } as Statement > } as TestRule > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)