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)