[ 
https://issues.apache.org/jira/browse/GROOVY-11320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17826909#comment-17826909
 ] 

Paul King commented on GROOVY-11320:
------------------------------------

Another example:
{code}
def testObj = 0
(int)(testObj) + 10 // compilation error: unable to resolve class testObj
{code}


> Unable to resolve class when putting variables into brackets.
> -------------------------------------------------------------
>
>                 Key: GROOVY-11320
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11320
>             Project: Groovy
>          Issue Type: Bug
>          Components: parser, parser-antlr4
>    Affects Versions: 4.0.10, 3.0.20
>            Reporter: Philip Markus
>            Priority: Major
>
> After migrating from Groovy 2.5 to Groovy 4.0, we experience some strange 
> parsing behavior.
> {code:java}
> def foo = "spongebog"
> def bar = " squarepants"
> (foo) + (bar){code}
> 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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to