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

[jira] [Updated] (GROOVY-10515) EqualsAndHashCode no longer access parent class

     [ https://issues.apache.org/jira/browse/GROOVY-10515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Brown updated GROOVY-10515:
---------------------------------
    Description: 
It appears there is a breaking change between Groovy 2.4 and 2.5 to the EqualsAndHashCode() method.   In 2.4, the includes attribute could reference properties of parent classes up the inheritance tree, however, in 2.5 an exception is thrown indicating the inherited field(s) do not exist. 

The following code demonstrates a simple inheritance relationship with reproducible exception that works correctly with Groovy 2.4.x 
{code:java}
import groovy.transform.EqualsAndHashCode

@EqualsAndHashCode(includes = ['level0field'], includeFields = true)
abstract class Level0 {
  public String level0field
}

@EqualsAndHashCode(includes = ['level0field', 'level1field'], callSuper = true, includeFields = true)
class Level1 extends Level0 {
  String level1field
}
 {code}

  was:
It appears there is a breaking change between Groovy 2.4 and 2.5 to the EqualsAndHashCode() method.   In 2.4, the includes attribute could reference properties of parent classes up the inheritance tree, however, in 2.5 an exception is thrown indicating the inherited field(s) do not exist. 

The following code demonstrates a simple inheritance relationship with reproducible exception that works correctly with Groovy 2.4.x 

'''

import groovy.transform.EqualsAndHashCode

@EqualsAndHashCode(includes = ['level0field'], includeFields = true)
abstract class Level0 {
public String level0field
}

@EqualsAndHashCode(includes = ['level0field','level1field'], callSuper = true, includeFields = true)
class Level1 extends Level0{
String level1field
}'''


> EqualsAndHashCode no longer access parent class
> -----------------------------------------------
>
>                 Key: GROOVY-10515
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10515
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: David Brown
>            Priority: Minor
>
> It appears there is a breaking change between Groovy 2.4 and 2.5 to the EqualsAndHashCode() method.   In 2.4, the includes attribute could reference properties of parent classes up the inheritance tree, however, in 2.5 an exception is thrown indicating the inherited field(s) do not exist. 
> The following code demonstrates a simple inheritance relationship with reproducible exception that works correctly with Groovy 2.4.x 
> {code:java}
> import groovy.transform.EqualsAndHashCode
> @EqualsAndHashCode(includes = ['level0field'], includeFields = true)
> abstract class Level0 {
>   public String level0field
> }
> @EqualsAndHashCode(includes = ['level0field', 'level1field'], callSuper = true, includeFields = true)
> class Level1 extends Level0 {
>   String level1field
> }
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)