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

sunlan pushed a change to branch danielsun/indy-callsite
in repository https://gitbox.apache.org/repos/asf/groovy.git.


 discard d74bc2f  GROOVY-9513: Ensure enabling indy by default
     add ba9e78b  GROOVY-9382, GROOVY-10133: prefer isName() over getName() for 
boolean
     add 52586f8  GROOVY-10154: Bump asm to 9.2
     add 5524137  GROOVY-10155: Add JDK18 constant
     add 9b90016  GROOVY-10160: Highlight source code in the AST browser smartly
     add 1907fea  GROOVY-10159: Compilation failure: ClassCastException (closes 
#1604)
     add e7bf14f  GROOVY-10159: minor tweak for the test
     add 3e0c3e7  Tweak `hash` for the hash join of GINQ
     add ae92f9a  Tweak the initial capacity of singleton bucket
     add d865108  GROOVY-7867: collection conversion: attach exception of 
constructor as suppressed exception
     add b4298c7  GROOVY-9272: Support switch expression
     add 5c14853  GROOVY-10171: Bump slf4j to 1.7.31
     add 6a9f77a  GROOVY-10172: Bump Spotbugs version to 4.3.0
     add 88aa33b  GROOVY-10173: Bump checkstyle to 8.44
     add 04024b0  GROOVY-10170: Bump JUnit Jupiter/JUnit Platform to 5.7.2/1.7.2
     add 738231c  GROOVY-10167: Bump jackson version to 2.12.4
     add 6930c23  GROOVY-10168: Bump json-unit version to 2.27.0
     add 96616ac  GROOVY-10169: Bump Ant version to 1.10.11 (incorporates 
CVE-2021-36373 and CVE-2021-36374)
     add b1108b0  update dependency metadata
     add 45ae82b  GROOVY-10175: Bump Codenarc to 2.1.0
     add 685114b  GROOVY-10174: Bump gson to 2.8.7
     add bfb37f1  update dependency metadata
     add a027190  GROOVY-10164: make RootLoader(ClassLoader) public
     add 5372011  GROOVY-9272: Tweak switch expression
     add e60f28c  Conceal the non-standard aggregate function `agg` of GINQ
     add 68e274b  Add `serialVersionUID`
     add 92d6fff  Trivial refactoring: remove unused constructor
     add 427ff45  Tweak parallel querying of GINQ
     add e3eddaf  Tweak `shutdown` of GINQ
     add e7150d6  Tweak parallel querying of GINQ further
     add f70f119  Mark `QueryableHelper` as internal
     add aba530e  Tweak GINQ user guide
     add 5263a17  Tweak thread pool for GINQ
     add b8131c4  Support `distinct` in GINQ
     add e2611fc  Add a test for `distinct`
     add 6d999a7  Add tests for `distinct`
     add e958e31  GROOVY-9272: Switch expression (additional documentation)
     add 586defa  Trivial refactoring: remove unused code
     add 0556bba  Minor tweak: Eliminate redundant extracting in hash-join
     add 902493d  Revert "Conceal the non-standard aggregate function `agg` of 
GINQ"
     add b3e522d  Add `agg` window function for GINQ
     add 18445d4  Tweak parallel querying of GINQ
     add 2f8d9e0  Add reserved keywords of GINQ
     add 5d781cd  Add reserved keywords of GINQ
     add 02efab0  Add reserved keywords of GINQ
     add ebf559c  Tweak hash-join of GINQ
     add 546cdd6  Tweak hash-join of GINQ further
     add 10d02a8  Add more tests for GINQ
     add 7bca43a  GROOVY-10179: STC: for-in collection type: consider 
instanceof flow-type
     add 6d6d99c  trivial refactor
     add 39a3c74  GROOVY-10180: STC: method lookup: try instanceof type(s) 
before declared
     add 9bf3f55  Minor tweak: extract variable for switch-expression to 
deconstruct
     add a353850  GROOVY-9272: Tweak switch expression(basic support for JEP 
406)
     add 27328b8  GROOVY-9272: Tweak switch expression when STC enabled
     add f81eb5b  Add 1 more test for switch-expression
     add d7bd362  Minor refactoring for switch-expression
     add 8424d3a  GROOVY-9272: Switch expression (refine additional 
documentation)
     add fb502bd  Revert groovy deconstruction for switch-expression
     add dc020e0  Tweak printing switch statement
     add db888a0  tweak printing try-catch-finally statement
     add 4a4ce4f  tweak printing property expression
     add 88f9b2a  tweak printing binary expression
     add 5a34d13  tweak printing lambda expression
     add 145345e  tweak printing cast expression
     add ef8f3bd  tweak printing unary expression
     add 922f347  tweak printing binary expression
     add 4988329  tweak printing expressions
     add 4312685  Support macro method `GQL` with options
     add c7e9df4  Trivial refactoring for GINQ macro methods
     add 53db604  Support GINQ methods
     add b45d0e7  Add license header
     add 12e23c8  Tweak GINQ methods and add 1 more test
     add b7b26ee  Tweak GINQ user guide
     add 828b554  Trivial refactoring for GINQ transformation
     add f82e15e  Add 1 more test for GINQ
     add aef68f0  Tweak GINQ transformation
     add e11bd61  Tweak GINQ user guide
     add bb594bb  Fix typo
     add 2941596  Tweak coercing GINQ result
     add d36c54a  GROOVY-10182: Bump jansi to 2.3.4
     add 631a182  GROOVY-10181: Groovy 3 AST for annotated fields reports wrong 
lastLineNumber if field not initialized
     add 8d1a38b  Trivial refactoring for `PositionConfigureUtils.configureAST`
     add f06f1a8  Trivial tweak: adjust the initial capacity of join expression 
list
     add 0dc7ffe  Reset flags even if exception is thrown when run GINQ
     add 8a14769  tidy up error message
     add 69c398c  Fix the failing build
     add 6983e2e  Minor refactoring for `GinqASTTransformation`
     add ee68af5  Tweak `GinqASTTransformation` to align with GINQ macro 
methods(`GQ` and `GQL`)
     add 7fc99d6  Add 1 more test for GINQ
     add 7442bc8  Avoid nested parallel querying which results in deadlock 
sometimes
     add 2bf936a  Support creating hash-table concurrently
     add f9010d0  minor refactor: make test more resilient
     add f6b31db  Tweak verbatim text of `GStringExpression`
     add 23f7623  Add a test for verbatim text of `GStringExpression`
     add a9541b2  Add `offset` to keyword list of GINQ
     add 20b87e9  Add 1 more test for GINQ
     add 9e78800  Update JDK version to build
     add 5fd04e3  GROOVY-10148: Groovy should support sealed classes (GEP-13)
     add 5f90966  GROOVY-10121: @AnnotationCollector does not work with JUnit 5
     add 1dc57a8  Change retention policy of `GQ` annotation
     add 225a49e  Support Java17
     add f6b49fa  Trivial refactoring: remove redundant initializer
     add 90bea6c  Trivial refactoring: extract constant
     add 7349f79  Trivial refactoring: make field `final`
     add 9bb74fa  Trivial refactoring: extract `Sealed` type constant
     add 4c7b0dc  Trivial refactoring: extract `Override` type constant
     add 2123572  Trivial refactoring: extract `Deprecated` type constant
     add e534e47  GROOVY-10188: Different treatment of property expressions in 
closures from 2.4 to 2.5
     add 50b1dc0  Trivial refactoring: inline method call
     add 7244faf  Tweak the initialization of permitted subclasses
     add 14fc1b0  Tweak the test for permitted subclasses
     add 5cc7304  Fix the failing build
     add 4ff2f85  Update the ignored packages in the call stack
     add 3dcce32  GROOVY-10148: Groovy should support sealed classes (tweak 
error message and additional test cases)
     add 4248678  GROOVY-10193: Support sealed type grammar
     add 53c5681  GROOVY-10148: Groovy should support sealed classes 
(additional edge cases)
     add b69fafd  GROOVY-10193: Support sealed type grammar (minor tweaks)
     add e322cbf  GROOVY-10189: File.withWriter and Path.withWriter are 
inconsistent
     add a5c9e73  Trivial tweak for DGM `collate`
     add 981e6b9  GROOVY-10197: namedArgs.containsKey(propertyName) isn't 
implicit-this
     add b4b2134  Rewrite Groovy source code in core to Java(tailrec) (closes 
#1612)
     add 18c9ab9  GROOVY-10191: catch LinkageError during static inline
     add fd367dd  GROOVY-10199: ASTTest: evaluate with compliation unit's 
transform loader
     add 50bb5f9  GROOVY-10195: Groovy should have a @Final AST transform
     add c2e6865  Trivial refactoring: simplify the initializer of field
     add b657dfa  Enable STC for `ASTTransformationCustomizer` and 
`ASTTransformationCustomizerFactory`
     add 7800156  groovy-eclipse patches and updates
     add d654773  Tweak `GroovyObjectHelperTest`
     add 2dcb3d8  GROOVY-10196: add test case
     add 03b130d  GROOVY-10200: do not retain static for outer member checking 
of variable (closes #1613)
     add 73c3e0f  Format code
     add c7445cd  Trivial tweak: set the initial capacity of statement lists
     add 278f27d  Trivial refactoring: output bytecode with simple API
     add d8e1a80  Add openjdk18 build to Travis CI
     add 52c9ae9  formatting: remove trailing whitespace on ends of lines of 
source files
     add 963186c  formatting: remove trailing whitespace on ends of lines of 
source files (benchmark files)
     add 7a09218  formatting: remove trailing whitespace on ends of lines of 
source files (fix test)
     add 5e030c4  remove unused import
     add 57809b8  GROOVY-10202: Bump Gradle to 6.9.1
     add 3b39322  GROOVY-10159: Compilation failure: ClassCastException (only 
simplify the simple cases at compile time)
     add 7762a9f  GROOVY-10203: Bump xstream to 1.4.18
     add 7adf933  Update verification metadata
     add d58eba2  GROOVY-10204: Bump javaparser to 3.23.0
     add 336a619  GROOVY-10205: Bump jackson version to 2.12.5
     add 803a372  GROOVY-10206: Bump Spotbugs version to 4.4.0
     add 8a0a391  update dep verification metadata
     add be40582  Add option `groovy.antlr4.sll.threshold` for better parsing 
performance
     add e4a14c7  Allow disabling SLL mode by setting 
`groovy.antlr4.sll.threshold` to `0`
     add 166df38  Trivial tweak for parrot parser
     add c9fe58c  Trivial tweak: simplify type casting
     add a6f60a4  fix snapshot url
     add 75acd5a  Trivial tweak: avoid redundant access permission checking
     add aeba9f8  Add the doco for tuning performance of parrot parser
     add 7768639  add perf guide to single page doco
     add 6178149  Tweak doco
     add a1a441d  Tweak doco
     add 564f5c7  Tweak doco
     add 8752c06  Tweak lexer frame: show token count in the token stream label
     add d423fdb  Tweak lexer frame: use monospaced font
     add 8236334  Trivial tweak for `JavaAwareCompilationUnit`: use `Set` to 
keep java sources
     add 66596d2  Trivial refactoring for 
`JavaStubCompilationUnit.hasAcceptedFileExtension`
     add 2314e5e  Tweak build script to ensure 
`GeneratedMetaMethod.DgmMethodRecord.loadDgmInfo` could find "dgminfo" file
     add 0cdaf2b  GROOVY-10210: Provide XML factory helper factory classes to 
assist with porting
     add 69cde35  GROOVY-10211: Bump Codenarc to 2.2.0 (albeit not working for 
Groovy 4)
     add 01c2c0a  GROOVY-9632: Java 8 Type Param Annotation Not Generated in 
Byte Code (additional refactoring to reduce potential impact of earlier changes)
     add 2502cda  GROOVY-9632: Java 8 Type Param Annotation Not Generated in 
Byte Code (add test)
     add bcd2680  GROOVY-9632: Java 8 Type Param Annotation Not Generated in 
Byte Code (add test)
     add d9d664c  groovyc ant task missing from single page doco
     new d43bc68  GROOVY-9513: Ensure enabling indy by default

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   (d74bc2f)
            \
             N -- N -- N   refs/heads/danielsun/indy-callsite (d43bc68)

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:
 .gitignore                                         |   1 +
 .travis.yml                                        |   4 +
 CONTRIBUTING.md                                    |   2 +-
 DOAP.rdf                                           |   8 +-
 README.adoc                                        |   4 +-
 benchmark/bench.groovy                             |   6 +-
 benchmark/bench/ackermann.java                     |   2 +-
 benchmark/bench/fannkuch.groovy                    |   8 +-
 benchmark/bench/fannkuch.java                      |  24 +-
 benchmark/bench/fasta.java                         |   6 +-
 benchmark/bench/harmonic.java                      |   6 +-
 benchmark/bench/magicsquares.java                  |  24 +-
 benchmark/bench/meteor.java                        | 130 ++--
 benchmark/bench/moments.java                       |   4 +-
 benchmark/bench/pidigits.java                      |  32 +-
 benchmark/bench/process.java                       |   8 +-
 benchmark/bench/regexdna.groovy                    |   2 +-
 benchmark/bench/regexdna.java                      |  16 +-
 benchmark/bench/revcomp.groovy                     |   2 +-
 benchmark/bench/sumcol.java                        |   2 +-
 benchmark/bench/wordfreq.java                      |   4 +-
 ...rg.apache.groovy-bad-practices-detection.gradle |   2 +-
 .../src/main/groovy/org.apache.groovy-core.gradle  |   2 +-
 .../groovy/org.apache.groovy-stresstest.gradle     |   1 -
 .../gradle/WriteExtensionDescriptorTask.groovy     |   2 -
 config/codenarc/codenarc.groovy                    |  66 +-
 gradle.properties                                  |   2 +-
 gradle/build-scans.gradle                          |  12 +-
 gradle/verification-metadata.xml                   |  77 ++-
 gradle/wrapper/gradle-wrapper.properties           |   2 +-
 security/groovy.policy                             |   8 +-
 src/antlr/GroovyLexer.g4                           |   6 +
 src/antlr/GroovyParser.g4                          |  41 +-
 src/bin/java2groovy.bat                            |   4 +-
 src/bin/startGroovy                                |   4 +-
 src/main/groovy/groovy/beans/ListenerList.groovy   |   4 +-
 .../beans/ListenerListASTTransformation.groovy     |   4 +-
 src/main/groovy/groovy/transform/Canonical.groovy  |   8 +-
 src/main/groovy/groovy/transform/Immutable.groovy  |   2 +
 .../codehaus/groovy/ast/builder/AstBuilder.groovy  |  13 +-
 .../ast/builder/AstSpecificationCompiler.groovy    |   1 -
 .../customizers/ASTTransformationCustomizer.groovy |   7 +-
 .../ASTTransformationCustomizerFactory.groovy      |  13 +-
 .../groovy/tools/ast/TransformTestHelper.groovy    |   2 +-
 .../groovy/transform/ASTTestTransformation.groovy  |   3 +-
 .../groovy/transform/tailrec/AstHelper.groovy      |  75 --
 .../transform/tailrec/CollectRecursiveCalls.groovy |  60 --
 .../transform/tailrec/HasRecursiveCalls.groovy     |  61 --
 .../transform/tailrec/InWhileLoopWrapper.groovy    |  83 ---
 .../transform/tailrec/RecursivenessTester.groovy   | 101 ---
 .../ReturnStatementToIterationConverter.groovy     | 147 ----
 .../transform/tailrec/StatementReplacer.groovy     | 106 ---
 .../tailrec/TailRecursiveASTTransformation.groovy  | 263 -------
 .../tailrec/VariableAccessReplacer.groovy          |  69 --
 .../tailrec/VariableExpressionReplacer.groovy      | 163 -----
 .../tailrec/VariableExpressionTransformer.groovy   |  46 --
 src/main/java/groovy/beans/Bindable.java           |  34 +-
 src/main/java/groovy/beans/Vetoable.java           |  34 +-
 .../java/groovy/lang/BenchmarkInterceptor.java     |  16 +-
 src/main/java/groovy/lang/Binding.java             |   6 +-
 src/main/java/groovy/lang/ClosureException.java    |   2 +-
 src/main/java/groovy/lang/GroovySystem.java        |  10 +-
 .../lang/IllegalPropertyAccessException.java       |   6 +-
 src/main/java/groovy/lang/MetaClass.java           |   6 +-
 src/main/java/groovy/lang/MetaClassImpl.java       |  83 ++-
 src/main/java/groovy/lang/MetaClassRegistry.java   |  16 +-
 .../lang/MetaClassRegistryChangeEventListener.java |   2 +-
 src/main/java/groovy/lang/MetaMethod.java          |   8 +-
 src/main/java/groovy/lang/MetaObjectProtocol.java  |   5 +-
 src/main/java/groovy/lang/MetaProperty.java        |  13 +-
 .../java/groovy/lang/MissingClassException.java    |   2 +-
 .../java/groovy/lang/MissingFieldException.java    |   1 -
 src/main/java/groovy/lang/MutableMetaClass.java    |   2 +-
 src/main/java/groovy/lang/PropertyValue.java       |   1 -
 .../groovy/lang/ReadOnlyPropertyException.java     |   1 -
 src/main/java/groovy/lang/SpreadMap.java           |   2 +-
 src/main/java/groovy/lang/Tuple10.java             |   1 -
 src/main/java/groovy/lang/Tuple11.java             |   1 -
 src/main/java/groovy/lang/Tuple12.java             |   2 -
 src/main/java/groovy/lang/Tuple13.java             |   2 -
 src/main/java/groovy/lang/Tuple14.java             |   1 -
 src/main/java/groovy/lang/Tuple15.java             |   1 -
 src/main/java/groovy/lang/Tuple16.java             |   1 -
 src/main/java/groovy/lang/Writable.java            |   2 +-
 src/main/java/groovy/namespace/QName.java          |   2 +-
 src/main/java/groovy/time/Duration.java            |  20 +-
 .../groovy/time/TimeDatumDependentDuration.java    |  12 +-
 src/main/java/groovy/time/TimeDuration.java        |  16 +-
 src/main/java/groovy/time/package.html             |   4 +-
 .../java/groovy/transform/AnnotationCollector.java |  34 +-
 src/main/java/groovy/transform/BaseScript.java     |   4 +-
 src/main/java/groovy/transform/Final.java          |  71 ++
 .../java/groovy/transform/InheritConstructors.java |   2 +-
 src/main/java/groovy/transform/Memoized.java       |   4 +-
 .../main/java/groovy/transform/NonSealed.java      |  19 +-
 .../main/java/groovy/transform/Sealed.java         |  25 +-
 src/main/java/groovy/transform/Synchronized.java   |   4 +-
 .../groovy/transform/TailRecursive.java}           |  26 +-
 src/main/java/groovy/transform/ToString.java       |  10 +-
 src/main/java/groovy/transform/WithWriteLock.java  |   6 +-
 .../groovy/transform/stc/MapEntryOrKeyValue.java   |   6 +-
 src/main/java/groovy/ui/GroovySocketServer.java    |  28 +-
 src/main/java/groovy/util/Eval.java                |  22 +-
 .../java/groovy/util/FactoryBuilderSupport.java    |   2 +-
 src/main/java/groovy/util/NodeBuilder.java         |   2 +-
 src/main/java/groovy/util/ObjectGraphBuilder.java  |   2 +-
 src/main/java/groovy/util/Proxy.java               |   2 +-
 .../java/org/apache/groovy/antlr/LexerFrame.java   |  14 +-
 .../apache/groovy/ast/tools/ExpressionUtils.java   |  10 +-
 .../apache/groovy/parser/antlr4/AstBuilder.java    | 513 ++++++++++++--
 .../groovy/parser/antlr4/SemanticPredicates.java   |   3 +-
 .../antlr4/TryWithResourcesASTTransformation.java  |   1 -
 .../antlr4/internal/DescriptiveErrorStrategy.java  |   1 -
 .../antlr4/internal/atnmanager/AtnManager.java     |   1 -
 .../internal/atnmanager/LexerAtnManager.java       |   2 +-
 .../parser/antlr4/util/PositionConfigureUtils.java |   3 +-
 .../concurrentlinkedhashmap/LinkedDeque.java       |   1 -
 .../codehaus/groovy/GroovyExceptionInterface.java  |   2 +-
 .../java/org/codehaus/groovy/antlr/EnumHelper.java |   6 +-
 .../groovy/ast/ClassCodeVisitorSupport.java        |  10 +-
 .../java/org/codehaus/groovy/ast/ClassHelper.java  |  31 +-
 .../java/org/codehaus/groovy/ast/ClassNode.java    |  51 +-
 .../org/codehaus/groovy/ast/DynamicVariable.java   |   2 +-
 .../groovy/ast/GroovyCodeVisitorAdapter.java       |   1 +
 .../org/codehaus/groovy/ast/InnerClassNode.java    |   6 +-
 .../groovy/ast/InterfaceHelperClassNode.java       |   6 +-
 .../java/org/codehaus/groovy/ast/MixinNode.java    |   2 +-
 .../java/org/codehaus/groovy/ast/ModifierNode.java |   4 +
 .../java/org/codehaus/groovy/ast/Variable.java     |  12 +-
 .../groovy/ast/decompiled/AsmDecompiler.java       |   5 +
 .../ast/decompiled/ClassSignatureParser.java       |   6 +
 .../codehaus/groovy/ast/decompiled/ClassStub.java  |   1 +
 .../groovy/ast/decompiled/DecompiledClassNode.java |  22 +
 .../groovy/ast/expr/ArgumentListExpression.java    |   6 +-
 .../groovy/ast/expr/BooleanExpression.java         |   4 +-
 .../codehaus/groovy/ast/expr/ClassExpression.java  |   4 +-
 .../groovy/ast/expr/ClosureListExpression.java     |  20 +-
 .../groovy/ast/expr/ElvisOperatorExpression.java   |   4 +-
 .../org/codehaus/groovy/ast/expr/Expression.java   |   8 +-
 .../groovy/ast/expr/ExpressionTransformer.java     |   2 +-
 .../groovy/ast/expr/GStringExpression.java         |   2 +-
 .../ast/expr/NamedArgumentListExpression.java      |   4 +-
 .../groovy/ast/expr/PostfixExpression.java         |   2 +-
 .../codehaus/groovy/ast/expr/RangeExpression.java  |  27 +-
 .../groovy/ast/expr/TernaryExpression.java         |   2 +-
 .../groovy/ast/expr/VariableExpression.java        |   6 +-
 .../codehaus/groovy/ast/stmt/BlockStatement.java   |   8 +-
 .../codehaus/groovy/ast/stmt/BreakStatement.java   |   6 +-
 .../codehaus/groovy/ast/stmt/CaseStatement.java    |   8 +-
 .../codehaus/groovy/ast/stmt/CatchStatement.java   |   6 +-
 .../groovy/ast/stmt/ContinueStatement.java         |   6 +-
 .../codehaus/groovy/ast/stmt/DoWhileStatement.java |   6 +-
 .../org/codehaus/groovy/ast/stmt/ForStatement.java |  14 +-
 .../org/codehaus/groovy/ast/stmt/IfStatement.java  |   8 +-
 .../codehaus/groovy/ast/stmt/LoopingStatement.java |   8 +-
 .../codehaus/groovy/ast/stmt/SwitchStatement.java  |   6 +-
 .../groovy/ast/stmt/SynchronizedStatement.java     |   6 +-
 .../codehaus/groovy/ast/stmt/ThrowStatement.java   |   4 +-
 .../groovy/ast/stmt/TryCatchStatement.java         |   8 +-
 .../groovy/classgen/ClassCompletionVerifier.java   |  84 ++-
 .../codehaus/groovy/classgen/GeneratorContext.java |   2 +-
 .../groovy/classgen/VariableScopeVisitor.java      |  24 +-
 .../org/codehaus/groovy/classgen/Verifier.java     |  64 +-
 .../groovy/classgen/asm/AssertionWriter.java       |  34 +-
 .../asm/BinaryBooleanExpressionHelper.java         |  20 +-
 .../classgen/asm/BinaryDoubleExpressionHelper.java |  14 +-
 .../classgen/asm/BinaryExpressionWriter.java       |  58 +-
 .../classgen/asm/BinaryFloatExpressionHelper.java  |  32 +-
 .../classgen/asm/BinaryIntExpressionHelper.java    |  34 +-
 .../classgen/asm/BinaryLongExpressionHelper.java   |   4 +-
 .../classgen/asm/BinaryObjectExpressionHelper.java |  20 +-
 .../groovy/classgen/asm/BytecodeVariable.java      |  10 +-
 .../groovy/classgen/asm/CallSiteWriter.java        |  26 +-
 .../codehaus/groovy/classgen/asm/CompileStack.java |   2 +-
 .../classgen/asm/ExpressionAsVariableSlot.java     |   2 +-
 .../groovy/classgen/asm/VariableSlotLoader.java    |   6 +-
 .../classgen/asm/indy/IndyCallSiteWriter.java      |   6 +-
 .../classgen/asm/indy/InvokeDynamicWriter.java     |  16 +-
 .../org/codehaus/groovy/classgen/asm/package.html  |   2 +-
 .../classgen/asm/sc/StaticInvocationWriter.java    |   2 +-
 .../classgen/asm/sc/StaticTypesCallSiteWriter.java |  44 +-
 .../asm/sc/StaticTypesWriterController.java        |   6 +-
 .../codehaus/groovy/control/ClassNodeResolver.java |  40 +-
 .../codehaus/groovy/control/CompilationUnit.java   |  15 +-
 .../org/codehaus/groovy/control/CompilePhase.java  |  46 +-
 .../groovy/control/CompilerConfiguration.java      |   5 +-
 .../codehaus/groovy/control/ErrorCollector.java    |   8 +-
 .../MultipleCompilationErrorsException.java        |   4 +-
 .../codehaus/groovy/control/ResolveVisitor.java    |  44 +-
 .../org/codehaus/groovy/control/SourceUnit.java    |  72 +-
 .../groovy/control/StaticImportVisitor.java        | 129 ++--
 .../groovy/control/io/FileReaderSource.java        |   4 +-
 .../org/codehaus/groovy/control/io/NullWriter.java |   6 +-
 .../codehaus/groovy/control/io/ReaderSource.java   |   6 +-
 .../groovy/control/io/StringReaderSource.java      |   4 +-
 .../groovy/control/io/URLReaderSource.java         |   4 +-
 .../groovy/reflection/CachedConstructor.java       |   9 +-
 .../codehaus/groovy/reflection/CachedMethod.java   |  33 +-
 .../groovy/reflection/ReflectionCache.java         |   4 +-
 .../groovy/reflection/ReflectionUtils.java         |  30 +-
 .../reflection/stdclasses/BooleanCachedClass.java  |   2 +-
 .../reflection/stdclasses/CachedSAMClass.java      |   4 +-
 .../reflection/stdclasses/LongCachedClass.java     |   1 -
 .../org/codehaus/groovy/runtime/ArrayUtil.java     |   6 +-
 .../groovy/runtime/BytecodeInterface8.java         |  96 +--
 .../codehaus/groovy/runtime/ConvertedClosure.java  |   2 +-
 .../groovy/runtime/DefaultGroovyMethods.java       |  21 +-
 .../groovy/runtime/IteratorClosureAdapter.java     |   4 +-
 .../org/codehaus/groovy/runtime/MethodKey.java     |   4 +-
 .../codehaus/groovy/runtime/MethodRankHelper.java  |  30 +-
 .../org/codehaus/groovy/runtime/NullObject.java    |   4 +-
 .../groovy/runtime/StreamGroovyMethods.java        |   2 +-
 .../runtime/callsite/BooleanClosureWrapper.java    |   4 +-
 .../callsite/BooleanReturningMethodInvoker.java    |   8 +-
 .../groovy/runtime/callsite/ConstructorSite.java   |   2 +-
 .../groovy/runtime/callsite/NullCallSite.java      |   2 +-
 .../groovy/runtime/dgmimpl/NumberNumberMinus.java  |   1 -
 .../runtime/memoize/LRUProtectionStorage.java      |   2 +-
 .../codehaus/groovy/runtime/memoize/Memoize.java   |   8 +-
 .../runtime/metaclass/ClosureStaticMetaMethod.java |   2 +-
 .../runtime/metaclass/ConcurrentReaderHashMap.java |  52 +-
 .../runtime/metaclass/DefaultMetaClassInfo.java    |  82 +--
 .../groovy/runtime/metaclass/MethodHelper.java     |   2 +-
 .../runtime/metaclass/MethodMetaProperty.java      |   8 +-
 .../metaclass/MethodSelectionException.java        |   8 +-
 .../groovy/runtime/metaclass/ReflectorLoader.java  |  10 +-
 .../metaclass/ThreadManagedMetaBeanProperty.java   |   2 +-
 .../runtime/typehandling/BigIntegerMath.java       |  12 +-
 .../typehandling/DefaultTypeTransformation.java    |   6 +
 .../runtime/typehandling/FloatingPointMath.java    |  10 +-
 .../groovy/runtime/typehandling/IntegerMath.java   |   8 +-
 .../groovy/runtime/typehandling/LongMath.java      |  16 +-
 .../java/org/codehaus/groovy/syntax/ASTHelper.java |   2 +-
 .../org/codehaus/groovy/tools/GroovyStarter.java   |  14 +-
 .../java/org/codehaus/groovy/tools/RootLoader.java |   4 +-
 .../java/org/codehaus/groovy/tools/Utilities.java  |   2 +-
 .../groovy/tools/gse/DependencyTracker.java        |   4 +-
 .../codehaus/groovy/tools/gse/StringSetMap.java    |   6 +-
 .../tools/javac/JavaAwareCompilationUnit.java      |  16 +-
 .../tools/javac/JavaStubCompilationUnit.java       |   7 +-
 .../codehaus/groovy/tools/shell/util/Logger.java   |  12 +-
 .../groovy/tools/shell/util/MessageSource.java     |  50 +-
 .../groovy/tools/shell/util/Preferences.java       |   2 +-
 .../ASTTransformationCollectorCodeVisitor.java     |   2 +-
 .../groovy/transform/ASTTransformationVisitor.java |   2 +-
 .../transform/AbstractASTTransformation.java       |  20 +-
 .../transform/AnnotationCollectorTransform.java    |   2 +-
 .../transform/DelegateASTTransformation.java       |   8 +-
 .../groovy/transform/FieldASTTransformation.java   |  16 +-
 .../groovy/transform/FinalASTTransformation.java   |  74 ++
 .../transform/ImmutableASTTransformation.java      |  12 -
 .../transform/MemoizedASTTransformation.java       |   2 +-
 .../transform/NonSealedASTTransformation.java      |  57 ++
 .../groovy/transform/SealedASTTransformation.java  |  67 ++
 .../TupleConstructorASTTransformation.java         |  10 +-
 .../transformers/BooleanExpressionTransformer.java |   2 +-
 .../MethodCallExpressionTransformer.java           |   5 +-
 .../groovy/transform/stc/ExtensionMethodNode.java  |   2 +-
 .../transform/stc/StaticTypeCheckingSupport.java   |  11 +-
 .../transform/stc/StaticTypeCheckingVisitor.java   |  90 +--
 .../groovy/transform/tailrec/AstHelper.java        |  78 +++
 .../transform/tailrec/CollectRecursiveCalls.java   |  64 ++
 .../tailrec/GotoRecurHereException.java}           |  13 +-
 .../transform/tailrec/HasRecursiveCalls.java       |  63 ++
 .../transform/tailrec/InWhileLoopWrapper.java      |  60 ++
 .../transform/tailrec/RecursivenessTester.java     | 121 ++++
 .../transform/tailrec/ReturnAdderForClosures.java} |  31 +-
 .../ReturnStatementToIterationConverter.java       | 170 +++++
 .../transform/tailrec/StatementReplacer.java       | 174 +++++
 .../tailrec/TailRecursiveASTTransformation.java    | 313 +++++++++
 .../tailrec/TernaryToIfStatementConverter.java}    |  28 +-
 .../tailrec/UsedVariableTracker.java}              |  33 +-
 .../transform/tailrec/VariableAccessReplacer.java  |  66 ++
 .../tailrec/VariableExpressionReplacer.java        | 219 ++++++
 .../tailrec/VariableExpressionTransformer.java     |  66 ++
 .../tailrec/VariableReplacedListener.java}         |  18 +-
 .../transform/trait/NAryOperationRewriter.java     |   2 +-
 .../transform/trait/TraitASTTransformation.java    |   6 +-
 .../groovy/transform/trait/TraitComposer.java      |   2 +-
 .../codehaus/groovy/transform/trait/Traits.java    |   2 +-
 .../org/codehaus/groovy/util/LazyReference.java    |   4 +-
 .../groovy/util/ManagedConcurrentValueMap.java     |   4 +-
 .../org/codehaus/groovy/util/ManagedReference.java |  12 +-
 .../org/codehaus/groovy/util/ReferenceBundle.java  |   2 +-
 .../org/codehaus/groovy/util/ReferenceManager.java |  12 +-
 .../org/codehaus/groovy/util/ReferenceType.java    |  10 +-
 .../java/org/codehaus/groovy/util/ReleaseInfo.java |   6 +-
 .../org/codehaus/groovy/vmplugin/v8/Java8.java     | 254 ++++---
 src/spec/doc/_design-pattern-flyweight.adoc        |   1 -
 src/spec/doc/_design-pattern-loan-my-resource.adoc |   1 -
 src/spec/doc/_design-pattern-proxy.adoc            |   1 -
 src/spec/doc/_design-pattern-state.adoc            |   1 -
 src/spec/doc/_design-pattern-visitor.adoc          |   1 -
 src/spec/doc/_sealed.adoc                          |  98 +++
 src/spec/doc/_traits.adoc                          |  38 +
 src/spec/doc/core-domain-specific-languages.adoc   |   2 +-
 src/spec/doc/core-getting-started.adoc             |   5 +-
 src/spec/doc/core-metaprogramming.adoc             |  14 +
 src/spec/doc/core-object-orientation.adoc          |   1 +
 src/spec/doc/core-semantics.adoc                   |   7 +
 src/spec/doc/design-patterns-in-groovy.adoc        |   3 +-
 src/spec/doc/performance-guide.adoc                |  33 +
 src/spec/test/ClassTest.groovy                     |   2 +-
 .../CompilerDirectivesASTTransformsTest.groovy     |  21 +-
 .../DeclarativeConcurrencyASTTransformsTest.groovy |   2 +-
 src/spec/test/DesignPatternsTest.groovy            |  42 +-
 src/spec/test/PackageTest.groovy                   |  54 +-
 src/spec/test/SealedSpecificationTest.groovy       | 107 +++
 src/spec/test/SemanticsTest.groovy                 |  15 +-
 src/spec/test/SyntaxTest.groovy                    |  16 +-
 src/spec/test/TraitsSpecificationTest.groovy       |  35 +-
 src/spec/test/builder/FileTreeBuilderTest.groovy   |   6 +-
 src/spec/test/builder/NodeBuilderTest.groovy       |   2 +-
 .../test/gdk/WorkingWithCollectionsTest.groovy     |   2 +-
 .../test/metaprogramming/GroovyObjectTest.groovy   |  18 +-
 .../InterceptionThroughMetaClassTest.groovy        |   4 +-
 .../MethodPropertyMissingTest.groovy               |   2 +-
 src/spec/test/semantics/OptionalityTest.groovy     |  12 +-
 src/spec/test/semantics/TheGroovyTruthTest.groovy  |  18 +-
 .../typing/TypeCheckingExtensionSpecTest.groovy    |   8 +-
 src/tck/test/gls/ch03/s01/Unicode1.groovy          |   4 +-
 src/tck/test/gls/ch03/s01/Unicode2.groovy          |   2 +-
 src/tck/test/gls/ch03/s02/Longest1.groovy          |   8 +-
 src/tck/test/gls/ch03/s03/UnicodeEscapes1.groovy   |   8 +-
 src/tck/test/gls/ch03/s03/UnicodeEscapes2.groovy   |  16 +-
 .../bugs/BUG-GROOVY-10181.groovy}                  |  12 +-
 src/test-resources/bugs/BUG-GROOVY-8426.groovy     |   2 +-
 src/test-resources/core/Command_04.groovy          |   1 -
 src/test-resources/core/List_01.groovy             |   2 +-
 .../core/SealedTypeDeclaration_01x.groovy}         |  25 +-
 .../core/SwitchExpression_01x.groovy}              |  11 +-
 .../core/SwitchExpression_02x.groovy}              |  16 +-
 .../core/SwitchExpression_03x.groovy}              |  11 +-
 .../core/SwitchExpression_04x.groovy}              |  12 +-
 .../core/SwitchExpression_05x.groovy}              |  10 +-
 .../core/SwitchExpression_06x.groovy}              |  16 +-
 .../core/SwitchExpression_07x.groovy               |  23 +-
 .../core/SwitchExpression_08x.groovy}              |  27 +-
 .../core/SwitchExpression_09x.groovy}              |  15 +-
 .../core/SwitchExpression_10x.groovy}              |  56 +-
 .../core/SwitchExpression_11x.groovy               | 111 +++
 .../core/SwitchExpression_12x.groovy               |  16 +-
 .../core/SwitchExpression_13x.groovy}              |  13 +-
 .../core/SwitchExpression_14x.groovy               |  79 +++
 .../core/SwitchExpression_15x.groovy               |  16 +-
 .../core/SwitchExpression_16x.groovy}              |  25 +-
 .../core/SwitchExpression_17x.groovy}              |  18 +-
 .../core/SwitchExpression_18x.groovy}              |  12 +-
 .../core/SwitchExpression_19x.groovy}              |  12 +-
 .../core/SwitchExpression_20x.groovy}              |  33 +-
 .../core/SwitchExpression_21x.groovy}              |  30 +-
 .../core/SwitchExpression_22x.groovy}              |  22 +-
 .../core/SwitchExpression_23x.groovy}              |  32 +-
 .../core/SwitchExpression_24x.groovy}              |  38 +-
 ...{List_01.groovy => SwitchExpression_25x.groovy} |  26 +-
 .../core/SwitchExpression_26x.groovy}              |  24 +-
 .../fail/SealedTypeDeclaration_01x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_02x.groovy}         |   8 +-
 .../fail/SealedTypeDeclaration_03x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_04x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_05x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_06x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_07x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_08x.groovy}         |   9 +-
 .../fail/SealedTypeDeclaration_09x.groovy}         |   9 +-
 .../fail/SwitchExpression_01x.groovy}              |  10 +-
 .../fail/SwitchExpression_02x.groovy}              |  10 +-
 .../fail/SwitchExpression_03x.groovy}              |  11 +-
 .../fail/SwitchExpression_04x.groovy}              |  11 +-
 .../fail/SwitchExpression_05x.groovy}              |  10 +-
 .../fail/SwitchExpression_06x.groovy}              |  10 +-
 .../fail/SwitchExpression_07x.groovy}              |  10 +-
 .../fail/SwitchExpression_08x.groovy}              |  10 +-
 .../fail/SwitchExpression_09x.groovy}              |  10 +-
 src/test/gls/annotations/AnnotationTest.groovy     |  14 +-
 .../gls/annotations/AnnotationsInfoTest.groovy     |   6 +-
 .../closures/AnnotationClosureTest.groovy          |   4 +-
 .../AnnotationClosureWithNonLocalVariable.groovy   |   6 +-
 src/test/gls/ch06/s05/GName1Test.groovy            |  76 +-
 src/test/gls/generics/GenericsBytecodeTest.groovy  |   2 +-
 .../gls/invocation/ClosureDelegationTest.groovy    |   4 +-
 src/test/gls/invocation/CovariantReturnTest.groovy |   6 +-
 .../invocation/GroovyObjectInheritanceTest.groovy  |  20 +-
 src/test/gls/invocation/MethodSelectionTest.groovy |  72 +-
 .../invocation/StaticMethodInvocationTest.groovy   |   8 +-
 src/test/gls/scope/NameResolvingTest.groovy        |   4 +-
 src/test/gls/scope/StaticScopeTest.groovy          |   8 +-
 src/test/gls/sizelimits/StringSizeTest.groovy      |  10 +-
 .../MultipleAssignmentDeclarationTest.groovy       |  18 +-
 src/test/gls/statements/ReturnTest.groovy          |   2 +-
 src/test/gls/syntax/AssertTest.groovy              |   2 +-
 src/test/gls/syntax/Gep3Test.groovy                |  22 +-
 src/test/gls/syntax/ParsingTest.groovy             |   6 +-
 .../types/BooleanExpressionConversionTest.groovy   |  14 +-
 src/test/gls/types/GroovyCastTest.groovy           |   6 +-
 .../groovy/AbstractClassAndInterfaceTest.groovy    |  56 +-
 src/test/groovy/ActorTest.groovy                   |   2 +-
 src/test/groovy/ArrayAutoboxingTest.groovy         |   8 +-
 src/test/groovy/ArrayParamMethodTest.groovy        |   8 +-
 src/test/groovy/AsTest.groovy                      |   8 +-
 src/test/groovy/Bar.groovy                         |   2 +-
 src/test/groovy/BindingTest.groovy                 |  16 +-
 src/test/groovy/CastTest.groovy                    |  48 +-
 src/test/groovy/CategoryTest.groovy                |  15 +-
 src/test/groovy/ClassExpressionTest.groovy         |  18 +-
 src/test/groovy/ClassLoaderBug.groovy              |   2 +-
 src/test/groovy/ClassTest.groovy                   |   4 +-
 src/test/groovy/ClosureDefaultParameterTest.groovy |   2 +-
 src/test/groovy/ClosureMethodCallTest.groovy       |   2 +-
 .../ClosureReturnWithoutReturnStatementTest.groovy |   4 +-
 src/test/groovy/CompareToTest.groovy               |  12 +-
 src/test/groovy/CompareTypesTest.groovy            |  64 +-
 src/test/groovy/DefaultParamClosureTest.groovy     |   8 +-
 src/test/groovy/DoWhileLoopTest.groovy             |   2 +-
 src/test/groovy/DollarEscapingTest.groovy          |   6 +-
 src/test/groovy/DynamicMemberTest.groovy           |  10 +-
 src/test/groovy/Foo.groovy                         |   8 +-
 src/test/groovy/ForLoopTest.groovy                 |   2 +-
 src/test/groovy/GStringTest.groovy                 |   2 +-
 src/test/groovy/GlobalPrintlnTest.groovy           |   2 +-
 src/test/groovy/GroovyMethodsTest.groovy           |  18 +-
 src/test/groovy/GroovyTruthTest.groovy             |   4 +-
 src/test/groovy/HeredocsTest.groovy                |   4 +-
 src/test/groovy/IdentityClosureTest.groovy         |   8 +-
 src/test/groovy/InstanceofTest.groovy              |  16 +-
 src/test/groovy/ListIteratingTest.groovy           |   8 +-
 src/test/groovy/LocalPropertyTest.groovy           |   8 +-
 src/test/groovy/LocalVariableTest.groovy           |   4 +-
 src/test/groovy/LogicTest.groovy                   |  16 +-
 src/test/groovy/LoopBreakTest.groovy               |   2 +-
 src/test/groovy/MapTest.groovy                     |  10 +-
 .../groovy/MethodCallWithoutParenthesisTest.groovy |  18 +-
 src/test/groovy/MethodInBadPositionTest.groovy     |   2 +-
 src/test/groovy/MinusEqualsTest.groovy             |  24 +-
 src/test/groovy/MultilineStringTest.groovy         |   2 +-
 src/test/groovy/MultiplyDivideEqualsTest.groovy    |  42 +-
 src/test/groovy/NewExpressionTest.groovy           |   6 +-
 src/test/groovy/NullPropertyTest.groovy            |   4 +-
 src/test/groovy/OverloadInvokeMethodTest.groovy    |   4 +-
 src/test/groovy/OverridePropertyGetterTest.groovy  |   2 +-
 src/test/groovy/PlusEqualsTest.groovy              |  28 +-
 src/test/groovy/PostfixTest.groovy                 |  20 +-
 src/test/groovy/PrefixTest.groovy                  |  26 +-
 src/test/groovy/PrimitiveArraysTest.groovy         |  30 +-
 src/test/groovy/PrimitiveTypesTest.groovy          |  22 +-
 src/test/groovy/PrintTest.groovy                   |  10 +-
 ...ateVariableAccessFromAnotherInstanceTest.groovy |   4 +-
 src/test/groovy/ProcessTest.groovy                 |   2 +-
 src/test/groovy/PropertyTest.groovy                |   8 +-
 src/test/groovy/PropertyWithoutDotTest.groovy      |   4 +-
 src/test/groovy/SafeNavigationTest.groovy          |   2 +-
 src/test/groovy/SerializeTest.groovy               |   4 +-
 src/test/groovy/ShellTest.groovy                   |  16 +-
 src/test/groovy/SingletonBugTest.groovy            |   8 +-
 src/test/groovy/SqlDateTest.groovy                 |  10 +-
 src/test/groovy/StaticImportTest.groovy            |  31 +-
 src/test/groovy/SubscriptTest.groovy               | 104 +--
 src/test/groovy/ToArrayBugTest.groovy              |  14 +-
 src/test/groovy/UnsafeNavigationTest.groovy        |   2 +-
 src/test/groovy/VArgsTest.groovy                   |  52 +-
 src/test/groovy/VerbatimGStringTest.groovy         |  14 +-
 src/test/groovy/bugs/ArrayMethodCallBug.groovy     |   4 +-
 .../bugs/AssignmentInsideExpressionBug.groovy      |   6 +-
 .../bugs/BadLineNumberOnExceptionBugTest.groovy    |   2 +-
 src/test/groovy/bugs/BenchmarkBug.groovy           |   4 +-
 src/test/groovy/bugs/BooleanBug.groovy             |   8 +-
 src/test/groovy/bugs/Bytecode2Bug.groovy           |  21 +-
 src/test/groovy/bugs/Bytecode3Bug.groovy           |   6 +-
 src/test/groovy/bugs/Bytecode4Bug.groovy           |   8 +-
 src/test/groovy/bugs/Bytecode5Bug.groovy           |   2 +-
 src/test/groovy/bugs/Bytecode6Bug.groovy           |   6 +-
 src/test/groovy/bugs/BytecodeBug.groovy            |   6 +-
 .../bugs/CallingClosuresWithClosuresBug.groovy     |   4 +-
 .../groovy/bugs/ClassGeneratorFixesTest.groovy     |   2 +-
 src/test/groovy/bugs/ClassInNamedParamsBug.groovy  |  10 +-
 .../groovy/bugs/ClosureParameterPassingBug.groovy  |  10 +-
 .../groovy/bugs/ClosureTypedVariableBug.groovy     |  15 +-
 src/test/groovy/bugs/ClosureVariableBug.groovy     |  16 +-
 .../bugs/ClosureWithStaticVariablesBug.groovy      |   4 +-
 src/test/groovy/bugs/ConstructorBug.groovy         |   6 +-
 src/test/groovy/bugs/DefVariableBug.groovy         |   6 +-
 .../bugs/DirectMethodCallWithVargsTest.groovy      |  18 +-
 src/test/groovy/bugs/ForLoopBug.groovy             |   1 -
 src/test/groovy/bugs/FullyQualifiedClassBug.groovy |   2 +-
 src/test/groovy/bugs/GetterBug.groovy              |  32 +-
 src/test/groovy/bugs/Groovy10133.groovy            | 275 ++++++++
 src/test/groovy/bugs/Groovy1018_Bug.groovy         |   4 +-
 .../{Groovy3389Bug.groovy => Groovy10191.groovy}   |  31 +-
 .../bugs/{Groovy9329.groovy => Groovy10199.groovy} |  24 +-
 src/test/groovy/bugs/Groovy1081_Bug.groovy         |   6 +-
 src/test/groovy/bugs/Groovy1462_Bug.groovy         |   4 +-
 src/test/groovy/bugs/Groovy239_Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy252_Bug.groovy          |  16 +-
 src/test/groovy/bugs/Groovy2773Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy278_Bug.groovy          |  20 +-
 src/test/groovy/bugs/Groovy308_Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy3135Bug.groovy          |  14 +-
 src/test/groovy/bugs/Groovy3139Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy3156And2621Bug.groovy   |   2 +-
 src/test/groovy/bugs/Groovy3163Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy3208Bug.groovy          |  18 +-
 src/test/groovy/bugs/Groovy3235Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3238Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3305Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy3383Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3389Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3410Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3422.groovy             |   2 +-
 src/test/groovy/bugs/Groovy3446Bug.groovy          |   1 -
 src/test/groovy/bugs/Groovy3465Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy3511Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3519Bug.groovy          |   4 -
 src/test/groovy/bugs/Groovy3574Bug.groovy          |  14 +-
 src/test/groovy/bugs/Groovy3679Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy3718Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy3720Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3723Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy3749Bug.groovy          |  12 +-
 src/test/groovy/bugs/Groovy3768Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy3770Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy3776Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3827Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3831Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3834Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy3868Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy389_Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4035Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4038Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4043Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4046Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4069Bug.groovy          |  44 +-
 src/test/groovy/bugs/Groovy4075Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy4080Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy4081Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4107Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4111Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4116Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy4121Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4133Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4169Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4188Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4190Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy4191Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4202Bug.groovy          |   2 +-
 .../bugs/{Groovy3422.groovy => Groovy4206.groovy}  |  27 +-
 src/test/groovy/bugs/Groovy4206Bug.groovy          |  36 -
 src/test/groovy/bugs/Groovy4241Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4243Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4246Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4264Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4273Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy4293Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4410Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy4414Bug.groovy          |  12 +-
 src/test/groovy/bugs/Groovy4415Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4416Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy4449Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy4497Bug.groovy          |  12 +-
 src/test/groovy/bugs/Groovy4958Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy4999Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy5030Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy513_Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy5212Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy5260Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy5267Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy5272Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy6271Bug.groovy          |  16 +-
 src/test/groovy/bugs/Groovy6804Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy6932Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy7031Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy7204Bug.groovy          | 172 ++---
 src/test/groovy/bugs/Groovy770_Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy7867.groovy             | 114 +++
 src/test/groovy/bugs/Groovy7995Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy8055Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy8059Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy8060Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy8084Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy8085Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy8090Bug.groovy          |  10 +-
 src/test/groovy/bugs/Groovy8138Bug.groovy          |   4 +-
 src/test/groovy/bugs/Groovy8140Bug.groovy          |   1 -
 src/test/groovy/bugs/Groovy8212Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy831_Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy8389Bug.groovy          |  32 +-
 src/test/groovy/bugs/Groovy8405Bug.groovy          |   2 +-
 src/test/groovy/bugs/Groovy8444.groovy             |   8 +-
 src/test/groovy/bugs/Groovy8474Bug.groovy          |  92 +--
 src/test/groovy/bugs/Groovy8595Bug.groovy          |   8 +-
 src/test/groovy/bugs/Groovy8629Bug.groovy          |  22 +-
 src/test/groovy/bugs/Groovy8819Bug.groovy          |   6 +-
 src/test/groovy/bugs/Groovy8947.groovy             |   2 +-
 src/test/groovy/bugs/Groovy9329.groovy             |   4 +-
 src/test/groovy/bugs/Groovy9589.groovy             |   1 -
 src/test/groovy/bugs/Groovy9601.groovy             |  10 +-
 src/test/groovy/bugs/GroovyInnerEnumBug.groovy     |   2 +-
 src/test/groovy/bugs/GuillaumesBug.groovy          |   2 +-
 src/test/groovy/bugs/GuillaumesMapBug.groovy       |  30 +-
 ...vokeNormalMethodFromBuilder_Groovy657Bug.groovy |   2 +-
 .../groovy/bugs/IterateOverCustomTypeBug.groovy    |   6 +-
 src/test/groovy/bugs/MarkupAndMethodBug.groovy     |  12 +-
 ...MethodCallWithoutParensInStaticMethodBug.groovy |   2 +-
 src/test/groovy/bugs/MethodClosureTest.groovy      |   4 +-
 src/test/groovy/bugs/MethodDispatchBug.groovy      |   4 +-
 src/test/groovy/bugs/NestedClosure2Bug.groovy      |  12 +-
 src/test/groovy/bugs/NestedClosureBug.groovy       |   4 +-
 src/test/groovy/bugs/NullCompareBug.groovy         |   2 +-
 .../groovy/bugs/OverloadInvokeMethodBug.groovy     |   6 +-
 src/test/groovy/bugs/PrimitivePropertyBug.groovy   |   4 +-
 src/test/groovy/bugs/PrintlnWithNewBug.groovy      |   2 +-
 src/test/groovy/bugs/RodsBooleanBug.groovy         |   6 +-
 .../groovy/bugs/StaticClosurePropertyBug.groovy    |   4 +-
 src/test/groovy/bugs/StaticMethodCallBug.groovy    |   2 +-
 .../groovy/bugs/SubscriptAndExpressionBug.groovy   |  36 +-
 .../bugs/SubscriptOnPrimitiveTypeArrayBug.groovy   |  10 +-
 .../groovy/bugs/SubscriptOnStringArrayBug.groovy   |  10 +-
 src/test/groovy/bugs/SuperMethod2Bug.groovy        |  46 +-
 .../groovy/bugs/SynchronizedBytecodeBug.groovy     | 168 ++---
 src/test/groovy/bugs/TestBase.groovy               |   6 +-
 src/test/groovy/bugs/TestDerived.groovy            |   3 +-
 src/test/groovy/bugs/TryCatch2Bug.groovy           |   6 +-
 src/test/groovy/bugs/TryCatchBug.groovy            |   2 +-
 src/test/groovy/bugs/VariablePrecedence.groovy     |   4 +-
 src/test/groovy/bugs/VariableScopingBug.groovy     |   2 +-
 src/test/groovy/bugs/ZoharsBug.groovy              |   4 +-
 .../AnnotationCollectorReflectionTest.groovy}      |  18 +-
 .../groovy10121/SomeCollectedAnnotations.groovy}   |  12 +-
 .../bugs/groovy5912/otherpkg/Groovy5912Bug.groovy  |   6 +-
 src/test/groovy/bugs/groovy8966/Groovy8966.groovy  |   2 +-
 src/test/groovy/bugs/groovy9204/Groovy9204.groovy  |   2 +-
 .../groovy/bugs/groovy9236/Groovy9236Bug.groovy    |   4 +-
 .../groovy/generated/DelegateGeneratedTest.groovy  |   6 +-
 src/test/groovy/lang/CategoryAnnotationTest.groovy |  30 +-
 src/test/groovy/lang/ExceptionTest.groovy          |  12 +-
 .../lang/ExpandoMetaClassConstructorTest.groovy    |   2 +-
 src/test/groovy/lang/ExpandoMetaClassTest.groovy   |   2 +-
 src/test/groovy/lang/GroovyClassLoaderTest.groovy  |   6 +-
 src/test/groovy/lang/GroovyShellTest.java          |   6 +-
 src/test/groovy/lang/MixinAnnotationTest.groovy    | 152 ++--
 src/test/groovy/lang/MixinTest.groovy              |   4 +-
 src/test/groovy/lang/PropertyMissingTest.groovy    |  11 +
 src/test/groovy/lang/SpreadMapTest.java            |   4 +-
 src/test/groovy/lang/StripMarginTest.groovy        |   2 +-
 .../groovy/mock/example/SandwichMakerTest.groovy   |   2 +-
 .../mock/interceptor/MockSingleCallTest.groovy     |   2 +-
 .../groovy/operator/BigDecimalOperatorsTest.groovy |  16 +-
 .../operator/BigIntegerOperationsTest.groovy       |   6 +-
 .../groovy/operator/IntegerOperatorsTest.groovy    |  44 +-
 src/test/groovy/operator/NegateListsTest.groovy    |   2 +-
 .../groovy/operator/StringOperatorsTest.groovy     |   2 +-
 .../groovy/operator/TernaryOperatorsTest.groovy    |  10 +-
 .../groovy/operator/UnaryMinusOperatorTest.groovy  |  16 +-
 src/test/groovy/transform/ReadWriteLockTest.groovy |   2 +-
 src/test/groovy/transform/stc/BugsSTCTest.groovy   |   2 +-
 .../stc/ClosureParamTypeInferenceSTCTest.groovy    |  79 ++-
 .../stc/FieldsAndPropertiesSTCTest.groovy          |   3 +-
 .../groovy/transform/stc/GenericsSTCTest.groovy    |  21 +
 src/test/groovy/transform/stc/LoopsSTCTest.groovy  |  66 +-
 src/test/groovy/transform/stc/MiscSTCTest.groovy   |  24 +-
 src/test/groovy/transform/stc/WithSTCTest.groovy   |   2 +-
 src/test/groovy/tree/ClosureClassLoaderBug.groovy  |   4 +-
 src/test/groovy/tree/NestedClosureBugTest.groovy   |   2 +-
 src/test/groovy/tree/SmallTreeTest.groovy          |   6 +-
 src/test/groovy/tree/TreeTest.groovy               |  28 +-
 src/test/groovy/tree/VerboseTreeTest.groovy        |  28 +-
 src/test/groovy/util/BuilderSupportTest.groovy     |   4 +-
 src/test/groovy/util/ConfigObjectTest.groovy       |  18 +-
 src/test/groovy/util/ConfigSlurperTest.groovy      |   2 +-
 .../groovy/util/FactoryBuilderSupportTest.groovy   |   2 +-
 src/test/groovy/util/ObjectGraphBuilderTest.groovy |   2 +-
 .../groovy/util/ProxyGeneratorAdapterTest.groovy   |  10 +-
 src/test/groovy/util/ProxyGeneratorTest.groovy     |   6 +-
 src/test/groovy/util/ProxyTest.groovy              |  12 +-
 .../groovy/ast/tools/ExpressionUtilsTest.groovy    |  97 +++
 .../groovy/lang/GroovyObjectHelperTest.groovy      |   4 +-
 .../groovy/parser/antlr4/GroovyParserTest.groovy   |  57 +-
 .../groovy/parser/antlr4/SyntaxErrorTest.groovy    |  26 +-
 .../apache/groovy/parser/antlr4/TestUtils.groovy   |   5 +-
 .../org/apache/groovy/util/JavaShellTest.groovy    |   4 +-
 src/test/org/codehaus/groovy/ast/ASTNodeTest.java  |   2 +-
 .../org/codehaus/groovy/ast/ClassNodeTest.java     |  20 +
 .../org/codehaus/groovy/ast/MethodNodeTest.groovy  |  10 +-
 .../groovy/ast/VariableExpressionTest.java         |   2 +-
 .../groovy/ast/source/Groovy3049Test.groovy        |  34 +-
 .../groovy/ast/source/Groovy3050Test.groovy        |  25 +-
 .../groovy/ast/source/Groovy3051Test.groovy        |  72 +-
 .../classgen/CallClosureFieldAsMethodTest.groovy   |   2 +-
 .../codehaus/groovy/classgen/CallSiteTest.groovy   |   2 +-
 .../groovy/classgen/ConstructorIssueTest.groovy    |   8 +-
 src/test/org/codehaus/groovy/classgen/Main.groovy  |   2 +-
 .../codehaus/groovy/classgen/MetaClassTest.groovy  |   2 +-
 .../codehaus/groovy/classgen/TupleListTest.java    |   2 +-
 .../codehaus/groovy/classgen/VerifierTest.groovy   |   8 +-
 .../classgen/asm/BinaryOperationsTest.groovy       |   8 +-
 .../classgen/asm/DirectMethodCallTest.groovy       |   6 +-
 .../groovy/classgen/asm/HotSwapTest.groovy         |   4 +-
 .../asm/InstructionSequenceHelperClassTest.groovy  |   4 +-
 .../groovy/classgen/asm/MethodPatternsTest.groovy  |   4 +-
 .../classgen/asm/sc/MiscStaticCompileTest.groovy   |   8 -
 .../asm/sc/StaticCompileConstructorsTest.groovy    |   2 +-
 .../asm/sc/StaticCompileFlowTypingTest.groovy      |   2 +-
 .../classgen/asm/sc/StaticCompileMathTest.groovy   |   2 +-
 .../TupleConstructorStaticCompilationTest.groovy   |   2 +-
 .../classgen/asm/sc/bugs/Groovy6240Bug.groovy      |  69 --
 .../classgen/asm/sc/bugs/Groovy6657Bug.groovy      |   1 -
 .../classgen/asm/sc/bugs/Groovy6693Bug.groovy      |  26 +-
 .../classgen/asm/sc/bugs/Groovy7042Bug.groovy      |   5 -
 .../classgen/asm/sc/bugs/Groovy7883Bug.groovy      |  30 +-
 .../classgen/asm/sc/bugs/Groovy8240Bug.groovy      |  12 +-
 .../asm/sc/bugs/ReproducibleBytecodeBugs.groovy    |   6 +-
 .../ASTTransformationCustomizerTest.groovy         |   2 +-
 .../groovy/control/io/FileReaderTest.groovy        |   4 +-
 .../runtime/InvokerHelperFormattingTest.groovy     |   4 +-
 .../codehaus/groovy/runtime/NullObjectTest.groovy  |  12 +-
 .../groovy/runtime/PerInstanceMetaClassTest.groovy |   4 +-
 .../groovy/runtime/memoize/CacheCleanupTest.groovy |   2 +-
 .../groovy/runtime/memoize/MemoizeTest.groovy      |  18 +-
 .../runtime/trampoline/TrampolineTest.groovy       |   2 +-
 src/test/org/codehaus/groovy/syntax/TokenTest.java |   2 +-
 ...otationMemberValuesResolutionV1StubsTest.groovy |   8 +-
 ...otationMemberValuesResolutionV2StubsTest.groovy |   8 +-
 ...otationMemberValuesResolutionV3StubsTest.groovy |   8 +-
 ...otationMemberValuesResolutionV4StubsTest.groovy |   2 +-
 .../DuplicateMethodAdditionInStubsTest.groovy      |   6 +-
 .../stubgenerator/RedundantCastInStubTest.groovy   |   2 +-
 .../stubgenerator/StringSourcesStubTestCase.groovy |   4 +-
 .../StubGenerationForAnAnnotationStubsTest.groovy  |   2 +-
 ...nForConstructorWithOptionalArgsStubsTest.groovy |   2 +-
 .../UnAmbigousSuperConstructorCallStubsTest.groovy |   6 +-
 .../AutoFinalTransformBlackBoxTest.groovy          |   6 +-
 .../transform/BaseScriptTransformTest.groovy       |  10 +-
 .../groovy/transform/CanonicalTransformTest.groovy |  26 +-
 .../groovy/transform/DelegateTransformTest.groovy  |  15 +
 .../groovy/transform/FinalTransformTest.groovy     |  81 +++
 .../transform/MemoizedASTTransformationTest.groovy |   2 +-
 .../groovy/transform/NewifyTransformTest.groovy    |   2 +-
 .../groovy/transform/SealedTransformTest.groovy    | 206 ++++++
 .../groovy/transform/ToStringTransformTest.groovy  |   6 +-
 .../groovy/transform/stc/SignatureCodecTest.groovy |   8 +-
 .../ReturnStatementToIterationConverterTest.groovy |  10 +-
 .../transform/tailrec/StatementReplacerTest.groovy |  22 +-
 .../tailrec/VariableExpressionReplacerTest.groovy  |   2 +-
 .../traitx/TraitASTTransformationTest.groovy       |   2 +-
 .../groovy/util/ManagedLinkedlistTest.groovy       |  12 +-
 .../v8/PluginDefaultGroovyMethodsTest.groovy       |   6 +-
 .../org/codehaus/groovy/classgen/TestSupport.java  |   2 +-
 .../src/main/java/groovy/ant/AntBuilder.java       |   4 +-
 .../codehaus/groovy/ant/CompileTaskSupport.java    |   6 +-
 .../java/org/codehaus/groovy/ant/FileScanner.java  |   6 +-
 .../java/org/codehaus/groovy/ant/GroovycTask.java  |   2 +-
 .../org/codehaus/groovy/ant/RootLoaderRef.java     |   2 +-
 .../org/codehaus/groovy/ant/UberCompileTask.java   |  12 +-
 .../groovy-ant/src/spec/doc/groovy-ant-task.adoc   |   6 +-
 .../groovy-ant/src/spec/doc/groovyc-ant-task.adoc  |   1 -
 .../src/test-resources/groovy/ant/AntTest.xml      |   2 +-
 .../test-resources/groovy/ant/AntTest_import.xml   |   2 +-
 .../test/groovy/groovy/ant/Groovy8496Test.groovy   |   2 +-
 .../groovy/org/codehaus/groovy/ant/GroovyTest.java |   6 +-
 .../ast/builder/AstBuilderTransformation.java      |   4 +-
 .../test/groovy/groovy/bugs/MyConstants4272.java   |   2 +-
 .../bugs/MyConstantsASTTransformation4272.groovy   |  14 +-
 .../groovy/ast/CodeVisitorSupportTest.groovy       |  13 +-
 .../ast/builder/AstBuilderFromCodeTest.groovy      |  20 +-
 .../builder/AstBuilderFromSpecificationTest.groovy |  83 ++-
 .../ast/builder/AstBuilderFromStringTest.groovy    |   6 +-
 subprojects/groovy-binary/src/spec/doc/index.adoc  |   4 +
 .../groovy/cli/picocli/CliBuilderTest.groovy       |   2 +-
 .../src/main/groovy/groovy/console/TextNode.groovy |  12 +-
 .../groovy/groovy/console/TextTreeNodeMaker.groovy |   2 +-
 .../groovy/groovy/console/ui/AstBrowser.groovy     |   8 +-
 .../console/ui/AstNodeToScriptAdapter.groovy       | 184 +++--
 .../groovy/console/ui/ConsoleTextEditor.java       |   5 +-
 .../console/ui/text/SmartDocumentFilter.java       |   8 +-
 .../ui/text/StructuredSyntaxDocumentFilter.java    | 156 ++---
 .../console/ui/text/StructuredSyntaxResources.java |   8 +-
 .../groovy/console/ui/view/GTKDefaults.groovy      |   2 +-
 .../console/ui/AstNodeToScriptAdapterTest.groovy   |  71 +-
 .../ui/HistoryRecordGetTextToRunTests.groovy       |   8 +-
 .../console/ui/ScriptToTreeNodeAdapterTest.groovy  |   2 +-
 .../tests/doc/DocumentationExampleTests.groovy     |   6 +-
 .../tests/doc/RootClassExampleTests.groovy         |  18 +-
 .../contracts/tests/inv/InheritanceTests.groovy    |   6 +-
 .../contracts/tests/post/InheritanceTests.groovy   |   2 +-
 .../src/main/groovy/groovy/ginq/transform/GQ.java} |  42 +-
 .../apache/groovy/ginq/GinqGroovyMethods.groovy    |  27 +-
 .../org/apache/groovy/ginq/dsl/GinqAstBuilder.java |  46 +-
 .../groovy/ginq/dsl/expression/GinqExpression.java |   2 +-
 .../ginq/provider/collection/GinqAstWalker.groovy  |  56 +-
 .../collection/runtime/ConcurrentObjectHolder.java |  40 +-
 .../provider/collection/runtime/GroupImpl.java     |   4 +-
 .../collection/runtime/QueryableCollection.java    | 184 +++--
 .../collection/runtime/QueryableHelper.groovy      |  38 +-
 .../ginq/transform/GinqASTTransformation.java      | 133 ++++
 .../groovy-ginq/src/spec/doc/ginq-userguide.adoc   |  68 +-
 .../test/org/apache/groovy/ginq/GinqTest.groovy    | 762 +++++++++++++++++++--
 .../org/apache/groovy/ginq/GinqErrorTest.groovy    |  21 +-
 .../tools/groovydoc/ClasspathResourceManager.java  |   2 +-
 .../groovy/tools/groovydoc/MockOutputTool.java     |   6 +-
 .../groovydoc/SimpleGroovyExecutableMemberDoc.java |   4 +-
 .../gstringTemplates/classLevel/classDocName.html  |  18 +-
 .../testfiles/ClassWithAnonymousInnerClass.java    |   2 +-
 .../apache/groovy/groovysh/BufferManager.groovy    |  26 +-
 .../org/apache/groovy/groovysh/Groovysh.groovy     |   2 +-
 .../groovy/groovysh/commands/ShadowCommand.groovy  |   6 +-
 .../antlr4/VariableSyntaxCompleter.groovy          |   1 -
 .../groovy-groovysh/src/spec/doc/groovysh.adoc     |   2 +-
 .../groovysh/commands/HelpCommandTest.groovy       |   4 +-
 .../groovy-jmx/src/spec/test/JmxTest.groovy        |  18 +-
 .../java/groovy/jmx/builder/MockManagedObject.java |   8 +-
 subprojects/groovy-json/build.gradle               |   4 +-
 .../test/groovy/groovy/json/JsonBuilderTest.groovy |   2 +-
 .../groovy/json/StreamingJsonBuilderTest.groovy    |   8 +-
 .../groovy/jsr223/GroovyScriptEngineImpl.java      |   8 +-
 .../org/codehaus/groovy/jsr223/JSR223Test.groovy   |   2 +-
 .../groovy/macro/MacroTransformationTest.groovy    |   2 +-
 .../groovy/macro/matcher/ASTMatcherTest.groovy     |   2 +-
 .../groovy/nio/extensions/NioExtensions.java       |  12 +-
 .../java/groovy/servlet/AbstractHttpServlet.java   |   8 +-
 .../main/java/groovy/servlet/ServletBinding.java   |  28 +-
 .../main/java/groovy/servlet/TemplateServlet.java  |   4 +-
 .../src/spec/test/servlet/GroovyServletTest.groovy |   2 +-
 .../src/main/java/groovy/sql/GroovyRowResult.java  |   2 +-
 .../test/groovy/groovy/sql/SqlCompleteTest.groovy  |   2 +-
 .../main/groovy/groovy/swing/SwingBuilder.groovy   |   2 +-
 .../groovy/swing/factory/ActionFactory.groovy      |   2 +-
 .../groovy/groovy/swing/factory/BoxFactory.groovy  |   2 +-
 .../groovy/swing/factory/CollectionFactory.groovy  |   2 +-
 .../groovy/swing/factory/ComboBoxFactory.groovy    |   2 +-
 .../swing/factory/FormattedTextFactory.groovy      |   2 +-
 .../groovy/swing/factory/LineBorderFactory.groovy  |   2 +-
 .../groovy/groovy/swing/factory/MapFactory.groovy  |   2 +-
 .../groovy/swing/factory/MatteBorderFactory.groovy |   2 +-
 .../groovy/swing/factory/SeparatorFactory.groovy   |   2 +-
 .../groovy/swing/factory/SplitPaneFactory.groovy   |   2 +-
 .../groovy/swing/factory/TableLayoutFactory.groovy |   4 +-
 .../groovy/swing/factory/TableModelFactory.groovy  |   2 +-
 .../swing/factory/TitledBorderFactory.groovy       |   2 +-
 .../groovy/swing/factory/WindowFactory.groovy      |   2 +-
 .../groovy/groovy/swing/impl/DefaultAction.java    |   2 +-
 .../main/groovy/groovy/swing/impl/TableLayout.java |   4 +-
 .../groovy/groovy/swing/impl/TableLayoutCell.java  |  24 +-
 .../groovy/groovy/swing/impl/TableLayoutRow.java   |   8 +-
 .../groovy/swing/model/DefaultTableColumn.java     |   4 +-
 .../java/groovy/swing/model/DefaultTableModel.java |  22 +-
 .../main/java/groovy/swing/model/FormModel.java    |   4 +-
 .../java/groovy/swing/model/PropertyModel.java     |   2 +-
 .../main/java/groovy/swing/model/ValueHolder.java  |  12 +-
 .../groovy/swing/binding/BindingUpdatable.java     |   4 +-
 .../src/spec/test/SwingBuilderTest.groovy          |   4 +-
 .../groovy/groovy/swing/StrangeEventListener.java  |   4 +-
 .../TitledBorderFactoryJustificationTest.groovy    |   4 +-
 .../groovy/swing/beans/BindableSwingTest.groovy    |   4 +-
 .../groovy/swing/model/TableModelTest.groovy       |  16 +-
 .../src/spec/test/TemplateEnginesTest.groovy       |  18 +-
 subprojects/groovy-test-junit5/build.gradle        |   1 +
 .../src/test/groovy/JQwikTest.groovy               |  19 +-
 .../groovy/test/JavadocAssertionTestBuilder.groovy |  26 +-
 .../groovy/test/JavadocAssertionTestSuite.groovy   |  16 +-
 .../test/JavadocAssertionTestBuilderTest.groovy    |  24 +-
 .../src/main/groovy/groovy/xml/Entity.groovy       |  24 +-
 .../groovy/xml/StreamingMarkupBuilder.groovy       |   6 +-
 .../main/groovy/groovy/xml/XmlParserFactory.groovy |  34 +-
 .../groovy/groovy/xml/XmlSlurperFactory.groovy     |  34 +-
 .../src/main/java/groovy/xml/DOMBuilder.java       |   4 +-
 .../src/main/java/groovy/xml/MarkupBuilder.java    |   2 +-
 .../src/main/java/groovy/xml/NamespaceBuilder.java |   2 +-
 .../java/groovy/xml/NamespaceBuilderSupport.java   |   2 +-
 .../src/main/java/groovy/xml/XmlSlurper.java       |   4 +-
 .../groovy/xml/slurpersupport/GPathResult.java     |   2 +-
 .../java/groovy/xml/slurpersupport/NodeChild.java  |   2 +-
 .../groovy/xml/slurpersupport/NodeParents.java     |   8 +-
 .../groovy/xml/slurpersupport/ReplacementNode.java |   2 +-
 .../groovy/xml/streamingmarkupsupport/Builder.java |  16 +-
 .../groovy-xml/src/spec/test/DOMBuilderTest.groovy |   4 +-
 .../groovy-xml/src/spec/test/SaxBuilderTest.groovy |  10 +-
 .../src/spec/test/StaxBuilderTest.groovy           |  10 +-
 .../src/test/groovy/groovy/xml/DOMTest.groovy      |  26 +-
 .../groovy/xml/GpathSyntaxTestSupport.groovy       |   2 +-
 .../groovy/groovy/xml/NamespaceNodeTest.groovy     |   4 +-
 .../src/test/groovy/groovy/xml/SAXTest.groovy      |  10 +-
 .../test/groovy/groovy/xml/VerboseDOMTest.groovy   |  24 +-
 .../groovy/groovy/xml/XmlParserFactoryTest.groovy  |  20 +-
 .../groovy/groovy/xml/XmlSlurperFactoryTest.groovy |  27 +-
 .../groovy/groovy/xml/bugs/Groovy249_Bug.groovy    |  18 +-
 .../groovy/groovy/xml/bugs/Groovy4285Bug.groovy    |   2 +-
 .../groovy/groovy/xml/bugs/StaticMarkupBug.groovy  |   2 +-
 .../groovy/groovy/xml/script/AtomTestScript.groovy |   2 +-
 .../resources/org/apache/groovy/xml/tools/po.xsd   |   2 +-
 .../org/apache/groovy/xml/tools/swing.xml          |   1 -
 .../org/apache/groovy/xml/tools/swing2.xml         |   1 -
 versions.properties                                |  26 +-
 891 files changed, 10064 insertions(+), 6321 deletions(-)
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/AstHelper.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/CollectRecursiveCalls.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/HasRecursiveCalls.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/InWhileLoopWrapper.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/RecursivenessTester.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/ReturnStatementToIterationConverter.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/StatementReplacer.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/TailRecursiveASTTransformation.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/VariableAccessReplacer.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/VariableExpressionReplacer.groovy
 delete mode 100644 
src/main/groovy/org/codehaus/groovy/transform/tailrec/VariableExpressionTransformer.groovy
 create mode 100644 src/main/java/groovy/transform/Final.java
 copy 
subprojects/groovy-astbuilder/src/test/groovy/groovy/bugs/MyConstants4272.java 
=> src/main/java/groovy/transform/NonSealed.java (77%)
 copy 
subprojects/groovy-astbuilder/src/test/groovy/groovy/bugs/MyConstants4272.java 
=> src/main/java/groovy/transform/Sealed.java (69%)
 rename src/main/{groovy/groovy/transform/TailRecursive.groovy => 
java/groovy/transform/TailRecursive.java} (87%)
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/FinalASTTransformation.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/NonSealedASTTransformation.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/AstHelper.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/CollectRecursiveCalls.java
 copy src/main/java/org/codehaus/groovy/{ast/expr/ExpressionTransformer.java => 
transform/tailrec/GotoRecurHereException.java} (74%)
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/HasRecursiveCalls.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/InWhileLoopWrapper.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/RecursivenessTester.java
 rename 
src/main/{groovy/org/codehaus/groovy/transform/tailrec/ReturnAdderForClosures.groovy
 => java/org/codehaus/groovy/transform/tailrec/ReturnAdderForClosures.java} 
(63%)
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/ReturnStatementToIterationConverter.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/StatementReplacer.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/TailRecursiveASTTransformation.java
 rename 
src/main/{groovy/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.groovy
 => 
java/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.java} 
(60%)
 copy src/main/java/org/codehaus/groovy/{ast/stmt/BreakStatement.java => 
transform/tailrec/UsedVariableTracker.java} (61%)
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/VariableAccessReplacer.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/VariableExpressionReplacer.java
 create mode 100644 
src/main/java/org/codehaus/groovy/transform/tailrec/VariableExpressionTransformer.java
 copy src/{test/groovy/ClassLoaderBug.groovy => 
main/java/org/codehaus/groovy/transform/tailrec/VariableReplacedListener.java} 
(72%)
 create mode 100644 src/spec/doc/_sealed.adoc
 create mode 100644 src/spec/doc/performance-guide.adoc
 create mode 100644 src/spec/test/SealedSpecificationTest.groovy
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/bugs/BUG-GROOVY-10181.groovy} (88%)
 copy src/{main/java/org/codehaus/groovy/GroovyExceptionInterface.java => 
test-resources/core/SealedTypeDeclaration_01x.groovy} (57%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_01x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_02x.groovy} (85%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_03x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_04x.groovy} (87%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_05x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_06x.groovy} (84%)
 copy 
subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/ClassWithAnonymousInnerClass.java
 => src/test-resources/core/SwitchExpression_07x.groovy (73%)
 copy src/{main/java/org/codehaus/groovy/GroovyExceptionInterface.java => 
test-resources/core/SwitchExpression_08x.groovy} (72%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_09x.groovy} (87%)
 copy src/{main/java/org/codehaus/groovy/ast/stmt/ContinueStatement.java => 
test-resources/core/SwitchExpression_10x.groovy} (60%)
 create mode 100644 src/test-resources/core/SwitchExpression_11x.groovy
 copy 
subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/ClassWithAnonymousInnerClass.java
 => src/test-resources/core/SwitchExpression_12x.groovy (81%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_13x.groovy} (86%)
 create mode 100644 src/test-resources/core/SwitchExpression_14x.groovy
 copy 
subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/ClassWithAnonymousInnerClass.java
 => src/test-resources/core/SwitchExpression_15x.groovy (82%)
 copy src/{test/groovy/ClassLoaderBug.groovy => 
test-resources/core/SwitchExpression_16x.groovy} (74%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_17x.groovy} (83%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_18x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/core/SwitchExpression_19x.groovy} (88%)
 copy src/{test/groovy/bugs/NestedClosureBug.groovy => 
test-resources/core/SwitchExpression_20x.groovy} (73%)
 copy src/{test/groovy/bugs/groovy8966/Groovy8966.groovy => 
test-resources/core/SwitchExpression_21x.groovy} (73%)
 copy src/{test/groovy/ClassLoaderBug.groovy => 
test-resources/core/SwitchExpression_22x.groovy} (68%)
 copy src/{test/groovy/bugs/Groovy4043Bug.groovy => 
test-resources/core/SwitchExpression_23x.groovy} (65%)
 copy src/{main/java/org/codehaus/groovy/ast/stmt/LoopingStatement.java => 
test-resources/core/SwitchExpression_24x.groovy} (61%)
 copy src/test-resources/core/{List_01.groovy => SwitchExpression_25x.groovy} 
(79%)
 copy src/{test/groovy/bugs/TryCatch2Bug.groovy => 
test-resources/core/SwitchExpression_26x.groovy} (74%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_01x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_02x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_03x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_04x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_05x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_06x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_07x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_08x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SealedTypeDeclaration_09x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_01x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_02x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_03x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_04x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_05x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_06x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_07x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_08x.groovy} (88%)
 copy src/{test/org/codehaus/groovy/classgen/Main.groovy => 
test-resources/fail/SwitchExpression_09x.groovy} (88%)
 create mode 100644 src/test/groovy/bugs/Groovy10133.groovy
 copy src/test/groovy/bugs/{Groovy3389Bug.groovy => Groovy10191.groovy} (67%)
 copy src/test/groovy/bugs/{Groovy9329.groovy => Groovy10199.groovy} (67%)
 copy src/test/groovy/bugs/{Groovy3422.groovy => Groovy4206.groovy} (69%)
 delete mode 100644 src/test/groovy/bugs/Groovy4206Bug.groovy
 create mode 100644 src/test/groovy/bugs/Groovy7867.groovy
 copy src/test/groovy/{ClassLoaderBug.groovy => 
bugs/groovy10121/AnnotationCollectorReflectionTest.groovy} (71%)
 copy src/test/{org/codehaus/groovy/classgen/Main.groovy => 
groovy/bugs/groovy10121/SomeCollectedAnnotations.groovy} (85%)
 create mode 100644 
src/test/org/apache/groovy/ast/tools/ExpressionUtilsTest.groovy
 delete mode 100644 
src/test/org/codehaus/groovy/classgen/asm/sc/bugs/Groovy6240Bug.groovy
 create mode 100644 
src/test/org/codehaus/groovy/transform/FinalTransformTest.groovy
 create mode 100644 
src/test/org/codehaus/groovy/transform/SealedTransformTest.groovy
 copy 
subprojects/{groovy-astbuilder/src/test/groovy/groovy/bugs/MyConstants4272.java 
=> groovy-ginq/src/main/groovy/groovy/ginq/transform/GQ.java} (54%)
 create mode 100644 
subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/transform/GinqASTTransformation.java
 copy src/test/groovy/ClassLoaderBug.groovy => 
subprojects/groovy-test-junit5/src/test/groovy/JQwikTest.groovy (72%)
 copy src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java => 
subprojects/groovy-xml/src/main/groovy/groovy/xml/XmlParserFactory.groovy (55%)
 copy src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java => 
subprojects/groovy-xml/src/main/groovy/groovy/xml/XmlSlurperFactory.groovy (55%)
 copy src/test/groovy/ClassLoaderBug.groovy => 
subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlParserFactoryTest.groovy 
(74%)
 copy src/test/groovy/bugs/Groovy278_Bug.groovy => 
subprojects/groovy-xml/src/test/groovy/groovy/xml/XmlSlurperFactoryTest.groovy 
(74%)

Reply via email to