paulk-asert opened a new pull request, #2633:
URL: https://github.com/apache/groovy/pull/2633

   Backport of master's post-review adjustment to the 5.0.x line. Replaces the 
unreleased groovy.transform.Anchored marker (added in this branch's 
GROOVY-12093 backport, never shipped) with groovy.transform.Virtual, AND flips 
the default dispatch shape for public trait statics so the two release lines 
stay aligned at the source level:
   
     default          declarer-bound (trait body sees its own copy)
     @Virtual         per-implementer override visible to trait body
   
   On 5.x the default returns to the pre-existing 4.x shape; @Virtual is the 
opt-in that restores the per-implementer override path used by Grails' 
Validateable.defaultNullable() and similar framework hooks. The annotated tests 
(Groovy11985 and matrix rows 1/10/12) add the marker so they exercise the 
per-implementer path under the new model.
   
   Out of scope for this backport (master-only on the 6.x line): GROOVY-12104 
(reject T.this.* qualifier inside trait code), GROOVY-12105 (reject unqualified 
super.m() from a static trait method), and the Groovy-6 default of promoting 
public trait statics to JVM-native interface statics.
   
   The matrix test loses its four @Anchored-marker rows (1a/7a/8a/13) and its 
header references; rows 1/10/12 gain @Virtual on the relevant trait static so 
they continue to assert per-implementer dispatch. A new VirtualAnnotationTest 
covers both @Virtual's dispatch contract (with and without the marker, dynamic 
and @CompileStatic) and the validation that rejects misapplied placements at 
compile time.


-- 
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