You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (Jira)" <ji...@apache.org> on 2022/02/03 22:33:00 UTC
[jira] [Closed] (GROOVY-10318) Weird behavior of !in operator
[ https://issues.apache.org/jira/browse/GROOVY-10318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-10318.
------------------------------
> Weird behavior of !in operator
> ------------------------------
>
> Key: GROOVY-10318
> URL: https://issues.apache.org/jira/browse/GROOVY-10318
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 3.0.9
> Reporter: Damir Murat
> Assignee: Eric Milles
> Priority: Major
> Fix For: 4.0.0-beta-2, 3.0.10
>
>
> 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.20.1#820001)