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

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.7, 2.3.0, 2.4.0-rc-1
    • Fix Version/s: 2.4.1
    • Component/s: Static Type Checker
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: