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

Unable to resolve class when putting variables into brackets.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.0.10, 3.0.20
    • None
    • parser, parser-antlr4
    • None

    Description

      After migrating from Groovy 2.5 to Groovy 4.0, we experience some strange parsing behavior.

      def foo = "spongebog"
      def bar = " squarepants"
      
      (foo) + (bar)

      The above snippet will yield a parser error "Unable to resolve class foo".

      This worked fine in 2.5, but seems to have been broken since 3.0. (Tried it in Groovy web console)

      I couldn't find any hints in the release notes, what might be the cause of this change and I am not sure what the expression (ClassName) even tries to perform. After all class names work as constants for their Class instance (without .class as in Java) anyway, with or without brackets.

      We know that those brackets are unnecessary, but for a reason that I am not aware of, we have lots of such expressions lying around in small snippets.

      Note: Our application is written in Java, but allows users to adapt runtime behavior using Groovy scripts and also is used for expressions in mail templates. which means we cannot just change the affected code, as they will still linger around in databases across different installations of our software.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              pmarkus Philip Markus
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: