[ 
https://issues.apache.org/jira/browse/GROOVY-11973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18077179#comment-18077179
 ] 

ASF GitHub Bot commented on GROOVY-11973:
-----------------------------------------

codecov-commenter commented on PR #2501:
URL: https://github.com/apache/groovy/pull/2501#issuecomment-4348310581

   ## 
[Codecov](https://app.codecov.io/gh/apache/groovy/pull/2501?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
 Report
   :x: Patch coverage is `70.37037%` with `8 lines` in your changes missing 
coverage. Please review.
   :white_check_mark: Project coverage is 67.0918%. Comparing base 
([`e706f85`](https://app.codecov.io/gh/apache/groovy/commit/e706f8598a17e6b8dbc6563e51627e180bba0a3d?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache))
 to head 
([`72f6119`](https://app.codecov.io/gh/apache/groovy/commit/72f6119d1f0bddf39b2b2b5f2901a8cc08e934da?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 3 commits behind head on master.
   
   | [Files with missing 
lines](https://app.codecov.io/gh/apache/groovy/pull/2501?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
 | Patch % | Lines |
   |---|---|---|
   | 
[...rol/customizers/ASTTransformationCustomizer.groovy](https://app.codecov.io/gh/apache/groovy/pull/2501?src=pr&el=tree&filepath=src%2Fmain%2Fgroovy%2Forg%2Fcodehaus%2Fgroovy%2Fcontrol%2Fcustomizers%2FASTTransformationCustomizer.groovy&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vZ3Jvb3Z5L29yZy9jb2RlaGF1cy9ncm9vdnkvY29udHJvbC9jdXN0b21pemVycy9BU1RUcmFuc2Zvcm1hdGlvbkN1c3RvbWl6ZXIuZ3Jvb3Z5)
 | 66.6667% | [3 Missing and 5 partials :warning: 
](https://app.codecov.io/gh/apache/groovy/pull/2501?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
 |
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   [![Impacted file tree 
graph](https://app.codecov.io/gh/apache/groovy/pull/2501/graphs/tree.svg?width=650&height=150&src=pr&token=1r45138NfQ&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)](https://app.codecov.io/gh/apache/groovy/pull/2501?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   
   ```diff
   @@                Coverage Diff                 @@
   ##               master      #2501        +/-   ##
   ==================================================
   + Coverage     67.0800%   67.0918%   +0.0117%     
   - Complexity      31728      31750        +22     
   ==================================================
     Files            1465       1465                
     Lines          123217     123346       +129     
     Branches        22067      22094        +27     
   ==================================================
   + Hits            82654      82755       +101     
   - Misses          33476      33491        +15     
   - Partials         7087       7100        +13     
   ```
   
   | [Files with missing 
lines](https://app.codecov.io/gh/apache/groovy/pull/2501?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
 | Coverage Δ | |
   |---|---|---|
   | 
[...y/transform/SealedCompletionASTTransformation.java](https://app.codecov.io/gh/apache/groovy/pull/2501?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Ftransform%2FSealedCompletionASTTransformation.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3RyYW5zZm9ybS9TZWFsZWRDb21wbGV0aW9uQVNUVHJhbnNmb3JtYXRpb24uamF2YQ==)
 | `88.8889% <100.0000%> (ø)` | |
   | 
[...rol/customizers/ASTTransformationCustomizer.groovy](https://app.codecov.io/gh/apache/groovy/pull/2501?src=pr&el=tree&filepath=src%2Fmain%2Fgroovy%2Forg%2Fcodehaus%2Fgroovy%2Fcontrol%2Fcustomizers%2FASTTransformationCustomizer.groovy&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vZ3Jvb3Z5L29yZy9jb2RlaGF1cy9ncm9vdnkvY29udHJvbC9jdXN0b21pemVycy9BU1RUcmFuc2Zvcm1hdGlvbkN1c3RvbWl6ZXIuZ3Jvb3Z5)
 | `80.1887% <66.6667%> (+5.4760%)` | :arrow_up: |
   
   ... and [40 files with indirect coverage 
changes](https://app.codecov.io/gh/apache/groovy/pull/2501/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   </details>
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test 
Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, 
report on failures, and find test suite problems.
   - :package: [JS Bundle 
Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save 
yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>




> Allow ASTTransformationCustomizer to support annotations with multiple AST 
> transforms (e.g. @Sealed, @RecordBase) and @AnnotationCollector aliases (e.g. 
> @AutoExternalize) via a new forAnnotation factory method
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-11973
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11973
>             Project: Groovy
>          Issue Type: New Feature
>            Reporter: Paul King
>            Assignee: Paul King
>            Priority: Major
>
> ASTTransformationCustomizer currently throws "AST transformation customizer 
> doesn't support AST transforms with multiple classes" when given an 
> annotation whose @GroovyASTTransformationClass lists more than one transform 
> (e.g. @Sealed, @RecordBase). It also rejects @AnnotationCollector aliases 
> such as @AutoExternalize with "Provided class doesn't look like an AST 
> @interface", since those annotations carry @AnnotationCollector rather than 
> @GroovyASTTransformationClass.
> This enhancement adds a static factory method, 
> ASTTransformationCustomizer.forAnnotation(...), that returns a list of 
> customizer instances - one per resolved transform class - so each runs at its 
> own declared compile phase. The factory also recognises @AnnotationCollector 
> and recursively expands it to the underlying annotations, flattening nested 
> collectors.
> Typical usage:
> {code:groovy}
> config.addCompilationCustomizers(*ASTTransformationCustomizer.forAnnotation(Sealed))
> config.addCompilationCustomizers(*ASTTransformationCustomizer.forAnnotation(AutoExternalize))
> {code}
> Overloads accept an optional annotation-parameters map and a custom 
> ClassLoader, mirroring the existing constructors. The legacy single-class 
> constructors are unchanged for backward compatibility; their error message 
> now points users at forAnnotation.
> A small companion fix in SealedCompletionASTTransformation makes it usable 
> from the customizer: it now uses the AnnotationNode passed in via nodes[0] 
> rather than re-fetching it from the class node (which the customizer does not 
> attach), and skips emitting an empty permittedSubclasses member when no 
> subclasses are detected.



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

Reply via email to