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

Static type checking error when accessing static members of a primitive type

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1.7, 2.3.0, 2.4.0-rc-1
    • 2.4.1
    • Static Type Checker
    • None

    Description

      The issue is the following. If I declare a variable of a Java primitive type (for example an int) and try to access a static field in a type checked annotated method (such as MAX_VALUE), there is a failure stating '[Static type checking] - No such property: MAX_VALUE for class: int'. An example of this could be:

      @groovy.transform.TypeChecked
      void runMethod (){
      int i = 10
      println(i.MAX_VALUE)
      }
      
      runMethod()
      
      

      However, running the same snippet without the annotation works fine. This happens as far as I know with all primitive types.
      I don't know if the previous code is correct, given that as a primitive type you don't have static fields, and they only appear in runtime because of autoboxing, but I think there should be a consistency between the two situations.
      Furthermore, I think this might be related with issue GROOVY-6349.

      I attach some examples to use as test cases.

      Attachments

        1. Testcases.groovy
          0.3 kB
          Rodolfo Cruz

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rcruzjo Rodolfo Cruz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: