[
https://issues.apache.org/jira/browse/GROOVY-11840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18051886#comment-18051886
]
Eric Milles commented on GROOVY-11840:
--------------------------------------
OptimizingBooleanExpression reduces to a null check when inferred expression
type does not have an associated "asBoolean" method or the expr type is final
(won't see any sub types at runtime) and only "asBoolean(Object)" can be found.
> Regression in if statement for boolean var in groovy 5
> ------------------------------------------------------
>
> Key: GROOVY-11840
> URL: https://issues.apache.org/jira/browse/GROOVY-11840
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 5.0.3
> Reporter: Andriy Rysin
> Assignee: Eric Milles
> Priority: Major
> Attachments: Test.groovy
>
>
> In groovy 5 "if( booleanVar )" evaluates to true even if boolean is false.
> See test example. On groovy4 both if statements are false, on groovy5 the
> first one is true.
> {code:groovy}
> @groovy.transform.CompileStatic
> class Test {
> private static final boolean USE_SUFFIX_2 = false
> static main(String[] args) {
> ['1', '2', '3'].each { String line ->
> if( USE_SUFFIX_2 ) {
> println "Wrong 1!"
> }
> if( USE_SUFFIX_2 == true ) {
> println "Wrong 2!"
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)