Eric Milles created GROOVY-11367:
------------------------------------

             Summary: map-based types property semantics
                 Key: GROOVY-11367
                 URL: https://issues.apache.org/jira/browse/GROOVY-11367
             Project: Groovy
          Issue Type: Bug
            Reporter: Eric Milles
            Assignee: Eric Milles


The rules for property read and write for map-based types has several 
inconsistencies:

{code:groovy}
class M extends HashMap<String,Object> {
  public pub
  protected pro
  @PackageScope pack
  private priv
  def getAny() {}
  void setAny(value) {}
}
{code}

1) read and write do not share a consistent resolution order -- noted in 8555

{code:groovy}
void test1(M map) {
  map.pub  // obj field (fixed in 5001)
  map.pro  // map property
  map.pack // map property
  map.priv // map property
  map.any // getter (all visibilities)
  map.pub = null // obj field
  map.pro = null // obj field
  map.pack = null // map property
  map.priv = null // map property
}
{code}

2) "this" and "super" have different behavior

{code:groovy}
TODO
{code}

3) Dynamic and static compilation have different behavior

{code:groovy}
TODO
{code}

GROOVY-11223, GROOVY-11319, GROOVY-9127, GROOVY-8555, GROOVY-8065, GROOVY-6277, 
GROOVY-6144, GROOVY-5985, GROOVY-5491, GROOVY-5001, GROOVY-662



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

Reply via email to