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)