Upgrade to Groovy 3.0.7
See gh-24946
This commit is contained in:
committed by
Andy Wilkinson
parent
a4919a047e
commit
d4eccb7715
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Deque;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.ServiceLoader;
|
||||
@@ -216,16 +217,16 @@ public class GroovyCompiler {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private void addAstTransformations(CompilationUnit compilationUnit) {
|
||||
LinkedList[] phaseOperations = getPhaseOperations(compilationUnit);
|
||||
processConversionOperations(phaseOperations[Phases.CONVERSION]);
|
||||
Deque[] phaseOperations = getPhaseOperations(compilationUnit);
|
||||
processConversionOperations((LinkedList) phaseOperations[Phases.CONVERSION]);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private LinkedList[] getPhaseOperations(CompilationUnit compilationUnit) {
|
||||
private Deque[] getPhaseOperations(CompilationUnit compilationUnit) {
|
||||
try {
|
||||
Field field = CompilationUnit.class.getDeclaredField("phaseOperations");
|
||||
field.setAccessible(true);
|
||||
return (LinkedList[]) field.get(compilationUnit);
|
||||
return (Deque[]) field.get(compilationUnit);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
throw new IllegalStateException("Phase operations not available from compilation unit");
|
||||
@@ -235,7 +236,7 @@ public class GroovyCompiler {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
private void processConversionOperations(LinkedList conversionOperations) {
|
||||
int index = getIndexOfASTTransformationVisitor(conversionOperations);
|
||||
conversionOperations.add(index, new CompilationUnit.SourceUnitOperation() {
|
||||
conversionOperations.add(index, new CompilationUnit.ISourceUnitOperation() {
|
||||
@Override
|
||||
public void call(SourceUnit source) throws CompilationFailedException {
|
||||
ASTNode[] nodes = new ASTNode[] { source.getAST() };
|
||||
@@ -270,11 +271,12 @@ public class GroovyCompiler {
|
||||
throws CompilationFailedException {
|
||||
|
||||
ImportCustomizer importCustomizer = new SmartImportCustomizer(source);
|
||||
ClassNode mainClassNode = MainClass.get(source.getAST().getClasses());
|
||||
List<ClassNode> classNodes = source.getAST().getClasses();
|
||||
ClassNode mainClassNode = MainClass.get(classNodes);
|
||||
|
||||
// Additional auto configuration
|
||||
for (CompilerAutoConfiguration autoConfiguration : GroovyCompiler.this.compilerAutoConfigurations) {
|
||||
if (autoConfiguration.matches(classNode)) {
|
||||
if (classNodes.stream().anyMatch(autoConfiguration::matches)) {
|
||||
if (GroovyCompiler.this.configuration.isGuessImports()) {
|
||||
autoConfiguration.applyImports(importCustomizer);
|
||||
importCustomizer.call(source, context, classNode);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -87,7 +87,8 @@ final class ResolveDependencyCoordinatesTransformationTests {
|
||||
|
||||
@Test
|
||||
void transformationOfAnnotationOnImport() {
|
||||
this.moduleNode.addImport(null, null, Arrays.asList(this.grabAnnotation));
|
||||
ClassNode classNode = new ClassNode("Test", 0, new ClassNode(Object.class));
|
||||
this.moduleNode.addImport("alias", classNode, Arrays.asList(this.grabAnnotation));
|
||||
assertGrabAnnotationHasBeenTransformed();
|
||||
}
|
||||
|
||||
@@ -100,14 +101,16 @@ final class ResolveDependencyCoordinatesTransformationTests {
|
||||
|
||||
@Test
|
||||
void transformationOfAnnotationOnStaticImport() {
|
||||
this.moduleNode.addStaticImport(null, null, null, Arrays.asList(this.grabAnnotation));
|
||||
ClassNode classNode = new ClassNode("Test", 0, new ClassNode(Object.class));
|
||||
this.moduleNode.addStaticImport(classNode, "field", "alias", Arrays.asList(this.grabAnnotation));
|
||||
|
||||
assertGrabAnnotationHasBeenTransformed();
|
||||
}
|
||||
|
||||
@Test
|
||||
void transformationOfAnnotationOnStaticStarImport() {
|
||||
this.moduleNode.addStaticStarImport(null, null, Arrays.asList(this.grabAnnotation));
|
||||
ClassNode classNode = new ClassNode("Test", 0, new ClassNode(Object.class));
|
||||
this.moduleNode.addStaticStarImport("test", classNode, Arrays.asList(this.grabAnnotation));
|
||||
|
||||
assertGrabAnnotationHasBeenTransformed();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user