You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "John Wagenleitner (JIRA)" <ji...@apache.org> on 2017/05/09 22:09:04 UTC
[jira] [Resolved] (GROOVY-7218) && operator is not handled
correctly in some cases when it starts a new line
[ https://issues.apache.org/jira/browse/GROOVY-7218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Wagenleitner resolved GROOVY-7218.
---------------------------------------
Resolution: Fixed
Assignee: John Wagenleitner
Fix Version/s: 3.0.0-alpha-1
I tested the repro with the antlr4 parser and verified issue is fixed and that test coverage exists:
https://github.com/apache/groovy/blob/734bff6f3336d5b2607f2749d1f986434711486b/subprojects/parser-antlr4/src/test/resources/core/Expression_23x.groovy#L94-L96
> && operator is not handled correctly in some cases when it starts a new line
> ----------------------------------------------------------------------------
>
> Key: GROOVY-7218
> URL: https://issues.apache.org/jira/browse/GROOVY-7218
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.3.8
> Environment: CentOS 7
> Reporter: Maxim Novikov
> Assignee: John Wagenleitner
> Priority: Minor
> Fix For: 3.0.0-alpha-1
>
>
> h3. Repro
> {code:title=A.groovy|borderStyle=solid}
> def files = new File(".").list(
> [ accept: { d, f ->
> (f ==~ ".*") && !f.endsWith(".tmp")
> }] as FilenameFilter
> ).toList()
> {code}
> *Result:* works fine
> {code:title=B.groovy|borderStyle=solid}
> def files = new File(".").list(
> [ accept: { d, f ->
> (f ==~ ".*")
> && !f.endsWith(".tmp")
> }] as FilenameFilter
> ).toList()
> {code}
> *Result:*
> {code}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
> /home/csbubbles/B.groovy: 5: unexpected token: && @ line 5, column 3.
> && !f.endsWith(".tmp")
> ^
> 1 error
> {code}
> h3. Expected results
> B.groovy should get executed successfully the same way as A.groovy, as its two lines in a closure is the only expression.
> PS "return" statement doesn't help if you put it before "(f ==~ ".*")" either.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)