Damir Murat created GROOVY-10318:
------------------------------------
Summary: Weird behavior of !in operator
Key: GROOVY-10318
URL: https://issues.apache.org/jira/browse/GROOVY-10318
Project: Groovy
Issue Type: Improvement
Affects Versions: 3.0.9
Reporter: Damir Murat
After upgrading to 3.0.9, I've noticed some unexpected behavior around the
"!in" operator. Consider the following example:
{code:java}
import groovy.transform.CompileStatic@CompileStatic
class MyPogo {
String firstName
String lastName
}
@CompileStatic
class Test {
void testMe() {
MyPogo myPogo = new MyPogo(firstName: "My First Name", lastName: "My Last
Name")
Map<String, ?> filteredProperties = myPogo.properties.findAll {
Boolean result = it.key as String !in ["class"]
result
}
println filteredProperties
assert filteredProperties.size() == 2
filteredProperties = myPogo.properties.findAll {
(it.key as String !in ["class"]) as Boolean
}
println filteredProperties
assert filteredProperties.size() == 2
filteredProperties = myPogo.properties.findAll {
it.key as String !in ["class"]
}
println filteredProperties
assert filteredProperties.size() == 2
}
}
new Test().testMe()
{code}
When running it in GroocyConsole, the third assertion will fail without
apparent reason.
It looks like for "!in" to work correctly, some additional operation is
required.
The same code works for the 3.0.8 and 3.0.7 versions.
Tnx
--
This message was sent by Atlassian Jira
(v8.3.4#803005)