Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-8127

Access to Trait$Trait$Helper#$self is forbidden

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.10
    • Fix Version/s: 2.4.11
    • Component/s: Compiler
    • Labels:
      None

      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:

      import groovy.transform.CompileStatic
      import org.junit.Rule
      import org.junit.rules.TestRule
      @CompileStatic
      trait FooTrait {
          @Rule
          public final TestRule foo = {} as TestRule
      }
      

      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

      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
      
      }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                paulk Paul King
                Reporter:
                facewindu Fran├žois Guillot
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: