paulk-asert commented on PR #3018:
URL: https://github.com/apache/groovy/pull/3018#issuecomment-6388823505

   Thanks Daniel.
   
   3. The two checks are on different paths. AstBuilder only merges a split 
property when one half has a visibility modifier, and there Object is still an 
unresolved name, hence the helper. With @PackageScope neither half has a 
modifier, so both parse as properties and the parser doesn't compare them. 
PackageScopeASTTransformation runs in SEMANTIC_ANALYSIS, after resolution, when 
def/var/val and Object are all java.lang.Object, so ClassNode.equals already 
treats them as equal. The @PackageScope cases in testDefAndObjectAreTheSameType 
exercise that path.
   
   4. Not just defensive: each property declaration creates its own field, so 
the class has two fields of that name by the time the transform runs. 
removeField(name) removes only the one held in the field index; removeIf takes 
the other (that leftover is the duplicate-field class from the GROOVY-11159 
regression). I'll expand the comment to say so.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to