[
https://issues.apache.org/jira/browse/GROOVY-11320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945398#comment-17945398
]
Eric Milles commented on GROOVY-11320:
--------------------------------------
I have run into similar troubles with the unary plus. We used to write:
{code:groovy}
def foo() {
return "x"
+ "y"
}
{code}
Where "x" and "y" could be arbitrarily long expressions -- thus the line wrap.
We changed our Java coding standard to put operators at the end of the line to
prevent this from being seen as `return "x"` followed by dead code.
Does the unary plus operator do anything useful in Groovy? In Java it is
supposed to do widening or promotion on numeric types.
> 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)