You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/06/11 17:51:54 UTC

[groovy] branch groovy3-java16 updated (aa159192e3 -> 86cc8eada8)

This is an automated email from the ASF dual-hosted git repository.

emilles pushed a change to branch groovy3-java16
in repository https://gitbox.apache.org/repos/asf/groovy.git


    omit aa159192e3 Gradle 7.2 for Java 16+
     add 62e023e60f disable sonar for now - it times out at present
     add 60481f407e temp disable caches to try to fix Travis build failure for JDK17
     add fbfc947970 update jdk versions (temp test of jdk16)
     add 27d95bbf35 update jdk versions
     add 6e9b60aa33 GROOVY-8244: proxy for trait/interface only overrides abstract method(s)
     add 4e5b0b7b22 GROOVY-10552: `@AutoImplement`: set type parameters
     add 4a9624b87e checking generics of super used raw type instead of parameterized type
     add a8e89b2ae6 GROOVY-10556: "T" vs "C<T extends C<?>>" as bound of wildcard
     add ebd46c4368 GROOVY-9995: infer ctor call diamond type from closure target type
     add 2ab6c68520 GROOVY-10282: `GenericsUtils`: do not mix type parameter contexts
     add d37a593411 GROOVY-8409: STC: resolve generics contexts separately for return type
     add 07c4da7923 GROOVY-10558: no spread for one argument in inner class `methodMissing`
     add 1392fe5b75 add test case
     add 0e976a58ad GROOVY-9033: STC: resolve "def list = []" to List<Object> not List<E>
     add 2f0c277306 GROOVY-10576: "?" source and target "? extends Object"
     add 6fc5134c99 minor refactor
     add d268a96c77 GROOVY-10579: SC: write array component type for optimized for-each loop
     add 91e25f7f20 GROOVY-10583: do not print generics of type parameter
     add 122e94499f GROOVY-10570: `@AnnotationCollector`: better error for missing `value()`
     add 74e26955e2 GROOVY-10585: `@AutoFinal`: disabled via config and skip inner interface
     add 51393752ff GROOVY-10598: fix for NPE
     add ee9c8423ba GROOVY-10593: replace '.' by '/' in imports
     add f290a676c1 new test cases showing the problem with star imports and static imports
     add 52cc49ffe0 bugfix: (groovy-doc) add star imports in the list of imports used by SimpleGroovyClassDoc
     add dd0306d543 GROOVY-10593: add new test cases and bugfix for static imports
     add 35230116a6 use diamond operator
     add 0b572ec5e7 minor refactor (mostly formatting)
     add 5b9a0aa941 GROOVY-10535, GROOVY-10596: indy: cache [Bb]oolean cast for `null`, etc.
     add cc7af824a0 GROOVY-10201: JDK 17: class String1_groovyProxy cannot implement sealed interface java.lang.constant.ConstantDesc
     add 8e85ef4dfc GROOVY-10201: JDK 17: class String1_groovyProxy cannot implement sealed interface java.lang.constant.ConstantDesc (add test case)
     add 6550507b53 GROOVY-10180: STC: method lookup: try instanceof type(s) before declared
     add 7346cb8987 GROOVY-10626: --enable-preview doesn't show in CLI/help for groovysh
     add 28ac92b666 bump to latest branch
     add 1e3434dfe4 GROOVY-10230, GROOVY-10330: given type param `T`, LUB(`T`,`T`) is `T`
     add 44801fbde2 GROOVY-10363: STC: fix target type check for type parameter
     add e6016c634d GROOVY-7419, GROOVY-9948, GROOVY-9956: STC: infer <> from argument types
     add ec404abebb GROOVY-9963: resolve ctor call diamond for attribute/property expression
     add 7f3c77d73c GROOVY-10343: STC: resolve type parameter bounded by a type parameter
     add 39d8298ae7 GROOVY-10364: STC: keep type parameter from enclosing context
     add d9f6e9870a GROOVY-10365: type argument/parameter relationships: no type param bound
     add 751d1efbdc GROOVY-10603: LUB: include transitive interfaces
     add 634627981d GROOVY-10624: STC: don't apply context generics for diamond ctor call
     add df6b19b7ee GROOVY-10611: stubgen: static final field with integer or decimal value (port to 3_0_X)
     add 7bcf3cdca0 GROOVY-10628: STC: fix inference for elvis assignment with setter target
     add 2233ec71ef GROOVY-10634: Regular expressions cause groovysh 3.0.10, JDK 17 to crash
     add a79b3077e7 GROOVY-9853: SC: method reference to interface abstract / default method
     add e2ff2b900e GROOVY-10569: ASM 9.3
     add d29589d143 GROOVY-10143: super trait field access
     add 9061d335f2 GROOVY-10627: Bump jackson to 2.13.3
     add f1cdf31c5d GROOVY-10554: Bump javaparser to 3.24.2
     add 8843faf570 update headers (port to 3_0_X)
     add 070f3c2fb1 GROOVY-10538: Bump log4j2 version to 2.17.2 (test dependency)
     add 9dd29864bd GROOVY-10537: Bump logback to 1.2.11 (test dependency)
     add 5b6080e229 GROOVY-10642: Bump creadur-rat-gradle plugin to 0.7.1 (build dependency)
     add be8eb2fe41 Bump version on GROOVY_3_0_X branch
     add 55ba573d7e GROOVY-10049, GROOVY-10648: don't mix type param contexts when resolving
     add b4e3f756d8 GROOVY-10578: Groovydoc noscripts and nomainforscripts options no longer work
     add 2a641e4950 GROOVY-10654: `ASTTransformationCustomizer`: enum and array parameters
     add 33d9d64d99 fix spelling of "explicitly"
     add 5d875ed9a7 Fix missleading error message in GroovyScriptEngine
     add 46dbc56c6d whitespace fixes (port of b54d807114 to 3_0_X)
     add 6e341db096 remove `@Grab` usage
     add d8e1fbebaa try jdk 15 and 16
     new 86cc8eada8 Gradle 7.2 for Java 16+

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (aa159192e3)
            \
             N -- N -- N   refs/heads/groovy3-java16 (86cc8eada8)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/build-test.yml                   |    4 +-
 .github/workflows/micronaut-joint-validation.yml   |    2 +-
 .travis.yml                                        |   29 +-
 build.gradle                                       |   10 +-
 gradle.properties                                  |    4 +-
 .../customizers/ASTTransformationCustomizer.groovy |  104 +-
 src/main/java/groovy/ui/GroovyMain.java            |    2 +-
 src/main/java/groovy/util/GroovyScriptEngine.java  |    2 +-
 .../java/org/codehaus/groovy/ast/GenericsType.java |  202 +-
 .../codehaus/groovy/ast/tools/GenericsUtils.java   |  230 +--
 .../groovy/ast/tools/WideningCategories.java       |   59 +-
 .../groovy/classgen/InnerClassVisitorHelper.java   |   54 +-
 .../org/codehaus/groovy/classgen/Verifier.java     |  370 ++--
 .../asm/sc/AbstractFunctionalInterfaceWriter.java  |   36 +-
 ...StaticTypesMethodReferenceExpressionWriter.java |   13 +-
 .../asm/sc/StaticTypesStatementWriter.java         |   11 +-
 .../groovy/control/AnnotationConstantsVisitor.java |   48 +-
 .../groovy/reflection/ReflectionUtils.java         |    2 +
 .../groovy/runtime/ProxyGeneratorAdapter.java      |  127 +-
 .../codehaus/groovy/tools/FileSystemCompiler.java  |    2 +-
 .../groovy/tools/javac/JavaStubGenerator.java      |   56 +-
 .../transform/AnnotationCollectorTransform.java    |   39 +-
 .../transform/AutoFinalASTTransformation.java      |  195 +-
 .../transform/AutoImplementASTTransformation.java  |    3 +-
 .../groovy/transform/NewifyASTTransformation.java  |    2 +-
 .../transform/stc/StaticTypeCheckingSupport.java   |  143 +-
 .../transform/stc/StaticTypeCheckingVisitor.java   |  601 +++---
 .../transform/trait/TraitReceiverTransformer.java  |   19 +-
 .../codehaus/groovy/transform/trait/Traits.java    |   20 +-
 .../v8/IndyGuardsFiltersAndSignatures.java         |   52 +-
 .../org/codehaus/groovy/vmplugin/v8/Selector.java  |   79 +-
 src/spec/doc/core-syntax.adoc                      |   18 +-
 src/spec/doc/tools-groovy.adoc                     |    2 +-
 src/spec/doc/tools-groovyc.adoc                    |    2 +-
 src/spec/test/typing/TypeCheckingTest.groovy       |    2 +-
 src/test/gls/innerClass/InnerClassTest.groovy      |   21 +
 src/test/gls/syntax/Gep3OrderDslTest.groovy        |    4 +-
 src/test/groovy/bugs/Groovy10535.groovy            |   87 +
 .../{Groovy6932Bug.groovy => Groovy6932.groovy}    |   30 +-
 src/test/groovy/bugs/Groovy8409Bug.groovy          |   63 +-
 .../transform/AnnotationCollectorTest.groovy       |   31 +-
 .../transform/Groovy10570.java}                    |   10 +-
 .../test/groovy/transform/Groovy10570emu.java      |   21 +-
 .../stc/ClosureParamTypeInferenceSTCTest.groovy    |   20 +
 .../groovy/transform/stc/GenericsSTCTest.groovy    | 2046 +++++++++++++++-----
 src/test/groovy/transform/stc/LambdaTest.groovy    |  805 ++++----
 src/test/groovy/transform/stc/LoopsSTCTest.groovy  |   54 +-
 .../transform/stc/MethodReferenceTest.groovy       |   64 +
 .../groovy/transform/stc/STCAssignmentTest.groovy  |   25 +-
 .../transform/stc/TernaryOperatorSTCTest.groovy    |   75 +
 .../transform/stc/TypeInferenceSTCTest.groovy      |  188 +-
 src/test/groovy/util/ProxyGeneratorTest.groovy     |    6 +
 .../classgen/asm/sc/BugsStaticCompileTest.groovy   |    4 +-
 .../asm/sc/GenericsStaticCompileTest.groovy        |    4 +-
 .../classgen/asm/sc/LoopsStaticCompileTest.groovy  |    2 +-
 .../asm/sc/TypeInferenceStaticCompileTest.groovy   |   68 +-
 .../ASTTransformationCustomizerTest.groovy         |  170 +-
 .../{Groovy7482.groovy => Groovy10583.groovy}      |   20 +-
 .../{Groovy7482.groovy => Groovy10611.groovy}      |   22 +-
 .../groovy/transform/AutoFinalTransformTest.groovy |   40 +-
 .../transform/AutoImplementTransformTest.groovy    |   24 +
 .../traitx/TraitASTTransformationTest.groovy       |  105 +
 .../console/ui/AstNodeToScriptAdapter.groovy       |   35 +-
 .../inspect/swingui/AstNodeToScriptAdapter.groovy  |   19 +-
 .../resources/groovy/console/ui/Console.properties |    2 +-
 .../src/spec/doc/groovy-console.adoc               |    2 +-
 .../org/apache/groovy/antlr/GroovydocVisitor.java  |   18 +-
 .../tools/groovydoc/SimpleGroovyClassDoc.java      |   67 +-
 .../tools/groovydoc/antlr4/GroovyDocParser.java    |    2 +-
 .../groovydoc/antlr4/GroovydocJavaVisitor.java     |    1 +
 .../groovy/tools/groovydoc/GroovyDocToolTest.java  |  221 +++
 .../groovydoc/testfiles/groovy_10593/a/List.java   |    3 +-
 .../testfiles/groovy_10593/a/StaticList.java       |   13 +-
 .../groovydoc/testfiles/groovy_10593/b/Test.groovy |   10 +-
 .../groovydoc/testfiles/groovy_10593/b/Test.java   |   10 +-
 .../testfiles/groovy_10593/b/TestStar.groovy       |   10 +-
 .../testfiles/groovy_10593/b/TestStar.java         |   10 +-
 .../testfiles/groovy_10593/b/TestStatic.groovy     |   10 +-
 .../testfiles/groovy_10593/b/TestStatic.java       |   10 +-
 .../groovy_10593/b/TestStaticAlias.groovy          |   10 +-
 .../testfiles/groovy_10593/b/TestStaticStar.groovy |   10 +-
 .../testfiles/groovy_10593/b/TestStaticStar.java   |   10 +-
 .../org/apache/groovy/groovysh/Groovysh.groovy     |    7 +-
 .../groovy/org/apache/groovy/groovysh/Main.groovy  |    1 +
 .../org/apache/groovy/groovysh/Main.properties     |    2 +
 .../groovy-groovysh/src/spec/doc/groovysh.adoc     |    2 +-
 subprojects/groovy-json/build.gradle               |    7 +
 subprojects/groovy-yaml/build.gradle               |    2 +-
 .../groovy/parser/antlr4/util/AstDumper.groovy     |   19 +-
 89 files changed, 4374 insertions(+), 2692 deletions(-)
 create mode 100644 src/test/groovy/bugs/Groovy10535.groovy
 rename src/test/groovy/bugs/{Groovy6932Bug.groovy => Groovy6932.groovy} (65%)
 copy src/test/{gls/annotations/HasSourceRetention.java => groovy/transform/Groovy10570.java} (84%)
 copy subprojects/groovy-astbuilder/src/test/groovy/groovy/bugs/MyConstants4272.java => src/test/groovy/transform/Groovy10570emu.java (67%)
 copy src/test/org/codehaus/groovy/tools/stubgenerator/{Groovy7482.groovy => Groovy10583.groovy} (79%)
 copy src/test/org/codehaus/groovy/tools/stubgenerator/{Groovy7482.groovy => Groovy10611.groovy} (74%)
 copy buildSrc/build.gradle => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/a/List.java (89%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/a/StaticList.java (82%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/Test.groovy (82%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/Test.java (81%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStar.groovy (82%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStar.java (81%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStatic.groovy (80%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStatic.java (80%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStaticAlias.groovy (79%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStaticStar.groovy (81%)
 copy src/main/groovy/groovy/cli/UnparsedField.groovy => subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/groovy_10593/b/TestStaticStar.java (80%)


[groovy] 01/01: Gradle 7.2 for Java 16+

Posted by em...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

emilles pushed a commit to branch groovy3-java16
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 86cc8eada8e9ded0c69f69bf442ca402fde32c75
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Mar 3 15:54:58 2022 -0600

    Gradle 7.2 for Java 16+
---
 .travis.yml                                              |  8 ++++----
 build.gradle                                             |  3 +--
 .../groovy/org/codehaus/groovy/gradle/JarJarTask.groovy  | 16 ++++++----------
 .../groovy/gradle/WriteExtensionDescriptorTask.groovy    | 11 +++++++----
 gradle.properties                                        |  2 +-
 gradle/wrapper/gradle-wrapper.properties                 |  2 +-
 .../org/codehaus/groovy/reflection/ReflectionUtils.java  | 16 ++++++++--------
 .../codehaus/groovy/runtime/ProxyGeneratorAdapter.java   | 11 +++++------
 subprojects/groovy-servlet/build.gradle                  |  9 +++------
 9 files changed, 36 insertions(+), 42 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index f2a4448b2b..6be975882a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,8 +27,8 @@ matrix:
   include:
     - env: BC='legacy' FEATURE='17' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
       jdk: openjdk11
-    - env: BC='legacy' FEATURE='16' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
-      jdk: openjdk11
+    - env: BC='legacy'
+      jdk: openjdk16
     - env: BC='legacy'
       jdk: openjdk15
     - env: BC='legacy'
@@ -38,8 +38,8 @@ matrix:
 
     - env: BC='indy' FEATURE='17' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
       jdk: openjdk11
-    - env: BC='indy' FEATURE='16' TARGET_JAVA_HOME="/home/travis/openjdk$FEATURE" LICENSE='GPL'
-      jdk: openjdk11
+    - env: BC='indy'
+      jdk: openjdk16
     - env: BC='indy'
       jdk: openjdk15
     - env: BC='indy'
diff --git a/build.gradle b/build.gradle
index 5ef21fd1af..aff45b390a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -34,7 +34,6 @@ buildscript {
         // using the old "classpath" style of plugins because the new one doesn't play well with multi-modules
         classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.8'
         classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3'
-        //classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.11.0'
         classpath 'org.nosphere.apache:creadur-rat-gradle:0.7.1'
         classpath 'gradle.plugin.com.github.jk1:gradle-license-report:1.3'
     }
@@ -432,7 +431,7 @@ apply from: 'gradle/test.gradle'
 apply from: 'gradle/groovydoc.gradle'
 apply from: 'gradle/docs.gradle'
 apply from: 'gradle/assemble.gradle'
-apply from: 'gradle/upload.gradle'
+//apply from: 'gradle/upload.gradle' -- TODO: migrate to Gradle 7
 apply from: 'gradle/idea.gradle'
 apply from: 'gradle/eclipse.gradle'
 apply from: 'gradle/quality.gradle'
diff --git a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
index 0fdf771767..454eb73312 100644
--- a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
+++ b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/JarJarTask.groovy
@@ -28,6 +28,7 @@ import org.gradle.api.tasks.Input
 import org.gradle.api.tasks.InputFile
 import org.gradle.api.tasks.InputFiles
 import org.gradle.api.tasks.Internal
+import org.gradle.api.tasks.Optional
 import org.gradle.api.tasks.OutputFile
 import org.gradle.api.tasks.TaskAction
 
@@ -53,23 +54,19 @@ class JarJarTask extends DefaultTask {
     @org.gradle.api.tasks.Optional
     List<String> untouchedFiles = []
 
-    @Input
-    @org.gradle.api.tasks.Optional
+    @Optional @Input
     List<String> excludes = []
 
     @Input
     Map<String, String> patterns
 
-    @Input
-    @org.gradle.api.tasks.Optional
+    @Optional @Input
     Map<String, List<String>> excludesPerLibrary = [:]
 
-    @Input
-    @org.gradle.api.tasks.Optional
+    @Optional @Input
     Map<String, List<String>> includesPerLibrary = [:]
 
-    @Input
-    @org.gradle.api.tasks.Optional
+    @Optional @Input
     Map<String, String> includedResources = [:]
 
     @OutputFile
@@ -169,5 +166,4 @@ class JarJarTask extends DefaultTask {
     private static String baseName(File file) {
         file.name.substring(0, file.name.lastIndexOf('-'))
     }
-
-}
\ No newline at end of file
+}
diff --git a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
index dd582dcfc3..746235edbd 100644
--- a/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
+++ b/buildSrc/src/main/groovy/org/codehaus/groovy/gradle/WriteExtensionDescriptorTask.groovy
@@ -22,6 +22,7 @@ import org.gradle.api.DefaultTask
 import org.gradle.api.tasks.Internal
 import org.gradle.api.tasks.TaskAction
 import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.Internal
 import org.gradle.api.tasks.OutputFile
 
 /**
@@ -30,10 +31,12 @@ import org.gradle.api.tasks.OutputFile
 class WriteExtensionDescriptorTask extends DefaultTask {
     @Internal
     final String description = 'Generates the org.codehaus.groovy.runtime.ExtensionModule descriptor file of a module'
-    @Input String extensionClasses = ''
-    @Input String staticExtensionClasses = ''
-    @OutputFile File descriptor = computeDescriptorFile()
-
+    @OutputFile
+    File descriptor = computeDescriptorFile()
+    @Input
+    String staticExtensionClasses = ''
+    @Input
+    String extensionClasses = ''
 
     private File computeDescriptorFile() {
         def metaInfDir = new File("${project.buildDir}/resources/main/META-INF/groovy")
diff --git a/gradle.properties b/gradle.properties
index f4dd30f628..1345e9df33 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,7 +18,7 @@ groovyVersion = 3.0.12-SNAPSHOT
 groovyBundleVersion = 3.0.12.SNAPSHOT
 
 binaryCompatibilityBaseline = 3.0.5
-gradle_version=6.9.2
+gradle_version=7.2
 
 groovyJUnit_ms=512m
 groovyJUnit_mx=2g
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ec991f9aa1..ffed3a254e 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
index 1937ae0544..8a676b936e 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionUtils.java
@@ -135,6 +135,14 @@ public class ReflectionUtils {
         }
     }
 
+    private static boolean classShouldBeIgnored(final Class c, final Collection<String> extraIgnoredPackages) {
+        return (c != null
+                && (c.isSynthetic()
+                    || (c.getPackage() != null
+                        && (IGNORED_PACKAGES.contains(c.getPackage().getName())
+                          || extraIgnoredPackages.contains(c.getPackage().getName())))));
+    }
+
     public static List<Method> getDeclaredMethods(final Class<?> type, final String name, final Class<?>... parameterTypes) {
         return doGetMethods(type, name, parameterTypes, Class::getDeclaredMethods);
     }
@@ -235,14 +243,6 @@ public class ReflectionUtils {
         return false;
     }
 
-    private static boolean classShouldBeIgnored(final Class c, final Collection<String> extraIgnoredPackages) {
-        return (c != null
-                && (c.isSynthetic()
-                    || (c.getPackage() != null
-                        && (IGNORED_PACKAGES.contains(c.getPackage().getName())
-                          || extraIgnoredPackages.contains(c.getPackage().getName())))));
-    }
-
     private static class ClassContextHelper extends SecurityManager {
         @Override
         public Class[] getClassContext() {
diff --git a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
index 4d0cd800e5..95a4fba718 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
@@ -145,7 +145,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
             final ClassLoader proxyLoader,
             final boolean emptyBody,
             final Class<?> delegateClass) {
-        super(CompilerConfiguration.ASM_API_VERSION, new ClassWriter(0));
+        super(CompilerConfiguration.ASM_API_VERSION, new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS));
         this.loader = proxyLoader != null ? createInnerLoader(proxyLoader, interfaces) : findClassLoader(superClass, interfaces);
         this.visitedMethods = new LinkedHashSet<>();
         this.delegatedClosures = closureMap.isEmpty() ? EMPTY_DELEGATECLOSURE_MAP : new HashMap<>();
@@ -175,7 +175,7 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
         this.classList = new LinkedHashSet<>();
         this.classList.add(superClass);
         if (generateDelegateField) {
-            classList.add(delegateClass);
+            this.classList.add(delegateClass);
             for (Class<?> i : delegateClass.getInterfaces()) {
                 if (!isSealed(i)) this.classList.add(i);
             }
@@ -187,9 +187,9 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
         this.emptyBody = emptyBody;
 
         // generate bytecode
-        ClassWriter writer = (ClassWriter) cv;
-        this.visit(Opcodes.V1_5, ACC_PUBLIC, proxyName, null, null, null);
-        byte[] b = writer.toByteArray();
+        int bytecodeVersion = CompilerConfiguration.JDK_TO_BYTECODE_VERSION_MAP.get(CompilerConfiguration.DEFAULT.getTargetBytecode());
+        this.visit(bytecodeVersion, ACC_PUBLIC, proxyName, null, null, null);
+        byte[] b = ((ClassWriter) cv).toByteArray();
 //        CheckClassAdapter.verify(new ClassReader(b), true, new PrintWriter(System.err));
         cachedClass = loader.defineClass(proxyName.replace('/', '.'), b);
         // cache no-arg constructor
@@ -903,5 +903,4 @@ public class ProxyGeneratorAdapter extends ClassVisitor implements Opcodes {
             return value;
         }
     }
-
 }
diff --git a/subprojects/groovy-servlet/build.gradle b/subprojects/groovy-servlet/build.gradle
index 224693f60e..0b3a524860 100644
--- a/subprojects/groovy-servlet/build.gradle
+++ b/subprojects/groovy-servlet/build.gradle
@@ -17,15 +17,12 @@
  *  under the License.
  */
 dependencies {
-    api("javax.servlet:javax.servlet-api:$servletApiVersion") { dep ->
-        provided dep
-    }
-    api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") { dep ->
-        provided dep
+    api rootProject  // ServletBinding extends Binding...
+    api "javax.servlet:javax.servlet-api:$servletApiVersion"
+    api("javax.servlet.jsp:javax.servlet.jsp-api:$jspApiVersion") {
         exclude(group: 'javax.servlet', module: 'javax.servlet-api')
     }
 
-    api rootProject  // ServletBinding extends Binding...
     implementation project(':groovy-xml') // needed for MarkupBuilder
     implementation project(':groovy-templates') // needed by TemplateServlet