You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2022/09/20 16:42:00 UTC

[jira] [Commented] (GROOVY-10762) Generated getters for wrapper type Boolean is missing isXXX method

    [ https://issues.apache.org/jira/browse/GROOVY-10762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17607302#comment-17607302 ] 

Eric Milles commented on GROOVY-10762:
--------------------------------------

This is an intended change for Groovy 4.  Only primitive boolean is recognized for "isName()".  We had to sort out a lot of edge cases, including "def isName()" and of course "Boolean isName()".  I can link the relevant issues if you'd like to look them over.

> Generated getters for wrapper type Boolean is missing isXXX method
> ------------------------------------------------------------------
>
>                 Key: GROOVY-10762
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10762
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 4.0.5
>            Reporter: Tim Yates
>            Priority: Major
>
> Inspecting the generated class for the following with 4.0.5
> {code:java}
> class Config
> {
>     boolean primitive
>     Boolean wrapper
> } {code}
> Shows {{getPrimitive}} and {{isPrimitive}} for the {{boolean}} field, but only {{getWrapper}} for the {{Boolean}} field.  I was expecting a {{isWrapper}} method to be generated as with Groovy 3.x
> Or is this an expected change?
> AST Browser shows (for the above class)
> {code:java}
> public class Config extends java.lang.Object implements groovy.lang.GroovyObject {
>     private boolean primitive 
>     private java.lang.Boolean wrapper 
>     private static org.codehaus.groovy.reflection.ClassInfo $staticClassInfo 
>     public static transient boolean __$stMC 
>     private transient groovy.lang.MetaClass metaClass     @groovy.transform.Generated
>     public Config() {
>         metaClass = /*BytecodeExpression*/
>     }
>     protected groovy.lang.MetaClass $getStaticMetaClass() {
>     }
>     @groovy.transform.Generated
>     @groovy.transform.Internal
>     @java.beans.Transient
>     public groovy.lang.MetaClass getMetaClass() {
>     }
>     @groovy.transform.Generated
>     @groovy.transform.Internal
>     public void setMetaClass(groovy.lang.MetaClass mc) {
>     }
>     public static java.lang.invoke.MethodHandles$Lookup $getLookup() {
>     }
>     @groovy.transform.Generated
>     public boolean getPrimitive() {
>     }
>     @groovy.transform.Generated
>     public boolean isPrimitive() {
>     }
>     @groovy.transform.Generated
>     public void setPrimitive(boolean value) {
>     }
>     @groovy.transform.Generated
>     public java.lang.Boolean getWrapper() {
>     }
>     @groovy.transform.Generated
>     public void setWrapper(java.lang.Boolean value) {
>     }
> } {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)