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]
