You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2026/01/11 12:49:33 UTC
(groovy) branch master updated: Trivial refactor: replace with pattern variable to simplify code
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 1fc5a31dfd Trivial refactor: replace with pattern variable to simplify code
1fc5a31dfd is described below
commit 1fc5a31dfda50c3851be654d5f65d412adfd1eaa
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Jan 11 21:35:13 2026 +0900
Trivial refactor: replace with pattern variable to simplify code
---
.../groovy/beans/BindableASTTransformation.java | 4 +-
.../groovy/beans/VetoableASTTransformation.java | 3 +-
.../groovy/grape/GrabAnnotationTransformation.java | 9 +--
src/main/java/groovy/lang/ExpandoMetaClass.java | 9 +--
src/main/java/groovy/lang/IntRange.java | 6 +-
src/main/java/groovy/lang/MetaClassImpl.java | 51 ++++++----------
src/main/java/groovy/lang/ObjectRange.java | 3 +-
src/main/java/groovy/lang/ProxyMetaClass.java | 6 +-
src/main/java/groovy/lang/Tuple.java | 3 +-
src/main/java/groovy/namespace/QName.java | 12 ++--
.../groovy/transform/builder/ExternalStrategy.java | 3 +-
.../groovy/transform/builder/SimpleStrategy.java | 3 +-
src/main/java/groovy/ui/GroovyMain.java | 3 +-
src/main/java/groovy/util/ConfigObject.java | 3 +-
src/main/java/groovy/util/Expando.java | 12 ++--
src/main/java/groovy/util/Node.java | 30 +++------
src/main/java/groovy/util/NodeList.java | 9 +--
src/main/java/groovy/util/ObjectGraphBuilder.java | 21 +++----
.../groovy/ast/tools/ConstructorNodeUtils.java | 6 +-
.../apache/groovy/ast/tools/ExpressionUtils.java | 30 +++------
.../groovy/ast/tools/ImmutablePropertyUtils.java | 6 +-
.../apache/groovy/ast/tools/VisibilityUtils.java | 3 +-
.../apache/groovy/parser/antlr4/AstBuilder.java | 36 ++++-------
.../groovy/parser/antlr4/GroovydocManager.java | 3 +-
.../antlr4/TryWithResourcesASTTransformation.java | 3 +-
.../antlr4/internal/atnmanager/AtnManager.java | 3 +-
.../ConcurrentLinkedHashMap.java | 10 ++-
.../java/org/codehaus/groovy/ast/ClassNode.java | 9 +--
.../org/codehaus/groovy/ast/ConstructorNode.java | 3 +-
.../java/org/codehaus/groovy/ast/ImportNode.java | 3 +-
.../groovy/ast/MixinASTTransformation.java | 6 +-
.../java/org/codehaus/groovy/ast/ModuleNode.java | 6 +-
.../codehaus/groovy/ast/RecordComponentNode.java | 3 +-
.../groovy/ast/decompiled/Annotations.java | 3 +-
.../groovy/ast/expr/DeclarationExpression.java | 6 +-
.../codehaus/groovy/ast/tools/GeneralUtils.java | 18 ++----
.../groovy/ast/tools/WideningCategories.java | 3 +-
.../groovy/classgen/AnnotationVisitor.java | 12 ++--
.../groovy/classgen/AsmClassGenerator.java | 9 +--
.../groovy/classgen/ClassCompletionVerifier.java | 24 +++-----
.../org/codehaus/groovy/classgen/EnumVisitor.java | 3 +-
.../codehaus/groovy/classgen/ExtendedVerifier.java | 12 ++--
.../groovy/classgen/FinalVariableAnalyzer.java | 15 ++---
.../classgen/InnerClassCompletionVisitor.java | 3 +-
.../groovy/classgen/InnerClassVisitor.java | 3 +-
.../org/codehaus/groovy/classgen/ReturnAdder.java | 18 ++----
.../groovy/classgen/VariableScopeVisitor.java | 6 +-
.../org/codehaus/groovy/classgen/Verifier.java | 24 +++-----
.../groovy/classgen/asm/AssertionWriter.java | 9 +--
.../classgen/asm/BinaryExpressionHelper.java | 9 +--
.../asm/BinaryExpressionMultiTypeDispatcher.java | 6 +-
.../groovy/classgen/asm/CallSiteWriter.java | 3 +-
.../groovy/classgen/asm/ClosureWriter.java | 3 +-
.../groovy/classgen/asm/InvocationWriter.java | 21 +++----
.../codehaus/groovy/classgen/asm/MopWriter.java | 3 +-
.../codehaus/groovy/classgen/asm/OperandStack.java | 3 +-
.../classgen/asm/OptimizingStatementWriter.java | 21 +++----
.../classgen/asm/StatementMetaTypeChooser.java | 3 +-
.../classgen/asm/indy/InvokeDynamicWriter.java | 3 +-
.../classgen/asm/sc/StaticInvocationWriter.java | 9 +--
...icTypesBinaryExpressionMultiTypeDispatcher.java | 6 +-
.../groovy/control/AnnotationConstantsVisitor.java | 6 +-
.../codehaus/groovy/control/CompilationUnit.java | 3 +-
.../codehaus/groovy/control/ResolveVisitor.java | 24 +++-----
.../groovy/control/StaticImportVisitor.java | 15 ++---
.../control/customizers/SecureASTCustomizer.java | 9 +--
.../control/customizers/SourceAwareCustomizer.java | 3 +-
.../builder/InlinedASTCustomizerFactory.java | 3 +-
.../groovy/control/messages/LocatedMessage.java | 3 +-
.../codehaus/groovy/reflection/CachedClass.java | 6 +-
.../reflection/stdclasses/ArrayCachedClass.java | 3 +-
.../groovy/runtime/DefaultGroovyMethods.java | 45 +++++---------
.../runtime/DefaultGroovyMethodsSupport.java | 3 +-
.../org/codehaus/groovy/runtime/FormatHelper.java | 9 +--
.../org/codehaus/groovy/runtime/GStringUtil.java | 3 +-
.../codehaus/groovy/runtime/HandleMetaClass.java | 3 +-
.../codehaus/groovy/runtime/IOGroovyMethods.java | 3 +-
.../org/codehaus/groovy/runtime/InvokerHelper.java | 45 +++++---------
.../codehaus/groovy/runtime/MetaClassHelper.java | 3 +-
.../groovy/runtime/ScriptBytecodeAdapter.java | 6 +-
.../groovy/runtime/callsite/CallSiteArray.java | 3 +-
.../arrays/BooleanArrayGetAtMetaMethod.java | 3 +-
.../arrays/BooleanArrayPutAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/ByteArrayGetAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/ByteArrayPutAtMetaMethod.java | 3 +-
.../arrays/CharacterArrayGetAtMetaMethod.java | 3 +-
.../arrays/CharacterArrayPutAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/FloatArrayGetAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/FloatArrayPutAtMetaMethod.java | 3 +-
.../arrays/IntegerArrayGetAtMetaMethod.java | 3 +-
.../arrays/IntegerArrayPutAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/LongArrayGetAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/LongArrayPutAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/ShortArrayGetAtMetaMethod.java | 3 +-
.../dgmimpl/arrays/ShortArrayPutAtMetaMethod.java | 3 +-
.../groovy/runtime/metaclass/ClosureMetaClass.java | 4 +-
.../runtime/metaclass/ConcurrentReaderHashMap.java | 14 ++---
.../groovy/runtime/metaclass/MetaMethodIndex.java | 12 ++--
.../metaclass/MethodSelectionException.java | 9 ++-
.../typehandling/DefaultTypeTransformation.java | 15 ++---
.../runtime/typehandling/ShortTypeHandling.java | 5 +-
.../groovy/tools/javac/JavaStubGenerator.java | 15 ++---
.../groovy/tools/javac/MemJavaFileObject.java | 3 +-
.../groovy/tools/javac/RawJavaFileObject.java | 3 +-
.../transform/AbstractASTTransformation.java | 6 +-
.../transform/AnnotationCollectorTransform.java | 15 ++---
.../transform/AutoCloneASTTransformation.java | 9 +--
.../transform/AutoImplementASTTransformation.java | 3 +-
.../groovy/transform/BuilderASTTransformation.java | 3 +-
.../transform/CategoryASTTransformation.java | 9 +--
.../transform/DelegateASTTransformation.java | 6 +-
.../EqualsAndHashCodeASTTransformation.java | 3 +-
.../ExternalizeMethodsASTTransformation.java | 3 +-
.../ExternalizeVerifierASTTransformation.java | 3 +-
.../groovy/transform/FieldASTTransformation.java | 12 ++--
.../groovy/transform/FinalASTTransformation.java | 9 +--
.../transform/ImmutableASTTransformation.java | 2 +-
.../IndexedPropertyASTTransformation.java | 3 +-
.../groovy/transform/LazyASTTransformation.java | 3 +-
.../transform/MapConstructorASTTransformation.java | 9 +--
.../transform/MemoizedASTTransformation.java | 3 +-
.../groovy/transform/NewifyASTTransformation.java | 24 +++-----
.../transform/NonSealedASTTransformation.java | 3 +-
.../transform/NullCheckASTTransformation.java | 3 +-
.../transform/OperatorRenameASTTransformation.java | 10 +--
.../transform/PackageScopeASTTransformation.java | 6 +-
.../transform/ReadWriteLockASTTransformation.java | 3 +-
.../RecordCompletionASTTransformation.java | 6 +-
.../transform/RecordTypeASTTransformation.java | 6 +-
.../groovy/transform/SealedASTTransformation.java | 9 +--
.../transform/SingletonASTTransformation.java | 5 +-
.../transform/StaticTypesTransformation.java | 9 +--
.../transform/SynchronizedASTTransformation.java | 3 +-
.../transform/ToStringASTTransformation.java | 3 +-
.../TupleConstructorASTTransformation.java | 12 ++--
.../transform/sc/StaticCompileTransformation.java | 6 +-
.../transformers/BinaryExpressionTransformer.java | 6 +-
.../sc/transformers/CastExpressionOptimizer.java | 3 +-
.../transformers/ConstructorCallTransformer.java | 6 +-
.../stc/GroovyTypeCheckingExtensionSupport.java | 3 +-
.../transform/stc/SignatureCodecVersion1.java | 6 +-
.../transform/stc/StaticTypeCheckingSupport.java | 3 +-
.../transform/stc/StaticTypeCheckingVisitor.java | 71 ++++++++--------------
.../transform/stc/TraitTypeCheckingExtension.java | 3 +-
.../tailrec/TernaryToIfStatementConverter.java | 3 +-
.../transform/trait/SuperCallTraitTransformer.java | 9 +--
.../transform/trait/TraitASTTransformation.java | 3 +-
.../transform/trait/TraitReceiverTransformer.java | 12 ++--
.../org/codehaus/groovy/util/ReferenceManager.java | 16 +++--
.../codehaus/groovy/vmplugin/v8/IndyInterface.java | 3 +-
.../org/codehaus/groovy/vmplugin/v8/Java8.java | 12 ++--
.../org/codehaus/groovy/vmplugin/v8/Selector.java | 15 ++---
.../org/codehaus/groovy/vmplugin/v9/Java9.java | 6 +-
.../src/main/java/groovy/ant/AntBuilder.java | 6 +-
.../main/java/org/codehaus/groovy/ant/Groovy.java | 3 +-
.../main/java/org/codehaus/groovy/ant/Groovyc.java | 3 +-
.../groovy/console/ui/ConsoleTextEditor.java | 3 +-
.../groovy/groovy/console/ui/text/TextEditor.java | 3 +-
.../ast/visitor/AnnotationClosureVisitor.java | 21 +++----
.../generation/ClassInvariantGenerator.java | 6 +-
.../generation/PreconditionGenerator.java | 3 +-
.../org/apache/groovy/ginq/dsl/GinqAstBuilder.java | 6 +-
.../provider/collection/runtime/Queryable.java | 3 +-
.../collection/runtime/QueryableCollection.java | 9 +--
.../collection/runtime/WindowDefinitionImpl.java | 3 +-
.../ginq/transform/GinqASTTransformation.java | 3 +-
.../tools/groovydoc/SimpleGroovyClassDoc.java | 15 ++---
.../apache/groovy/groovysh/jline/GroovyEngine.java | 12 ++--
.../groovy/groovysh/jline/SystemRegistryImpl.java | 3 +-
.../groovy/jmx/builder/JmxBuilderModelMBean.java | 3 +-
.../java/groovy/jmx/builder/JmxEventListener.java | 3 +-
.../java/groovy/json/DefaultJsonGenerator.java | 3 +-
.../src/main/java/groovy/json/JsonBuilder.java | 3 +-
.../java/groovy/json/StreamingJsonBuilder.java | 6 +-
.../apache/groovy/json/internal/LazyValueMap.java | 21 +++----
.../org/apache/groovy/json/internal/ValueList.java | 15 ++---
.../groovy/macro/methods/MacroGroovyMethods.java | 4 +-
.../groovy/macro/runtime/MacroBuilder.java | 4 +-
.../groovy-sql/src/main/java/groovy/sql/Sql.java | 9 +--
.../groovy/swing/model/DefaultTableColumn.java | 14 ++---
.../main/groovy/groovy/text/XmlTemplateEngine.java | 3 +-
.../text/markup/MarkupBuilderCodeTransformer.java | 18 ++----
.../src/main/java/groovy/xml/DOMBuilder.java | 8 +--
.../src/main/java/groovy/xml/SAXBuilder.java | 3 +-
.../src/main/java/groovy/xml/XmlNodePrinter.java | 6 +-
.../src/main/java/groovy/xml/dom/DOMCategory.java | 3 +-
.../streamingmarkupsupport/BaseMarkupBuilder.java | 3 +-
.../org/apache/groovy/xml/tools/DomToGroovy.java | 3 +-
190 files changed, 516 insertions(+), 1011 deletions(-)
diff --git a/src/main/java/groovy/beans/BindableASTTransformation.java b/src/main/java/groovy/beans/BindableASTTransformation.java
index d362e37c71..bba3a28d20 100644
--- a/src/main/java/groovy/beans/BindableASTTransformation.java
+++ b/src/main/java/groovy/beans/BindableASTTransformation.java
@@ -99,11 +99,9 @@ public class BindableASTTransformation implements ASTTransformation, Opcodes {
*/
@Override
public void visit(ASTNode[] nodes, SourceUnit source) {
- if (!(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) {
+ if (!(nodes[0] instanceof AnnotationNode node) || !(nodes[1] instanceof AnnotatedNode parent)) {
throw new RuntimeException("Internal error: wrong types: $node.class / $parent.class");
}
- AnnotationNode node = (AnnotationNode) nodes[0];
- AnnotatedNode parent = (AnnotatedNode) nodes[1];
if (VetoableASTTransformation.hasVetoableAnnotation(parent)) {
// VetoableASTTransformation will handle both @Bindable and @Vetoable
diff --git a/src/main/java/groovy/beans/VetoableASTTransformation.java b/src/main/java/groovy/beans/VetoableASTTransformation.java
index 24774f283a..afd94a2681 100644
--- a/src/main/java/groovy/beans/VetoableASTTransformation.java
+++ b/src/main/java/groovy/beans/VetoableASTTransformation.java
@@ -99,10 +99,9 @@ public class VetoableASTTransformation extends BindableASTTransformation {
*/
@Override
public void visit(ASTNode[] nodes, SourceUnit source) {
- if (!(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) {
+ if (!(nodes[0] instanceof AnnotationNode node) || !(nodes[1] instanceof AnnotatedNode)) {
throw new RuntimeException("Internal error: wrong types: $node.class / $parent.class");
}
- AnnotationNode node = (AnnotationNode) nodes[0];
if (nodes[1] instanceof ClassNode) {
addListenerToClass(source, (ClassNode) nodes[1]);
diff --git a/src/main/java/groovy/grape/GrabAnnotationTransformation.java b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
index 887b0a3591..05e8a717ba 100644
--- a/src/main/java/groovy/grape/GrabAnnotationTransformation.java
+++ b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
@@ -474,8 +474,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
Object val = node.getMember("systemClassLoader");
if (!(val instanceof ConstantExpression)) return;
Object systemClassLoaderObject = ((ConstantExpression)val).getValue();
- if (!(systemClassLoaderObject instanceof Boolean)) return;
- Boolean systemClassLoader = (Boolean) systemClassLoaderObject;
+ if (!(systemClassLoaderObject instanceof Boolean systemClassLoader)) return;
if (systemClassLoader) loader = ClassLoader.getSystemClassLoader();
}
@@ -520,8 +519,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
Object val = node.getMember("value");
if (!(val instanceof ConstantExpression)) return;
Object allParts = ((ConstantExpression)val).getValue();
- if (!(allParts instanceof String)) return;
- String allstr = (String) allParts;
+ if (!(allParts instanceof String allstr)) return;
// strip off trailing attributes
boolean done = false;
@@ -575,8 +573,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
}
private void extractGrab(final Expression init, final ConstantExpression ce) {
- if (ce.getValue() instanceof AnnotationNode) {
- AnnotationNode annotation = (AnnotationNode) ce.getValue();
+ if (ce.getValue() instanceof AnnotationNode annotation) {
if ((init != null) && (annotation.getMember("initClass") != null)) {
annotation.setMember("initClass", init);
}
diff --git a/src/main/java/groovy/lang/ExpandoMetaClass.java b/src/main/java/groovy/lang/ExpandoMetaClass.java
index 51e4c322a0..d60b5d12d7 100644
--- a/src/main/java/groovy/lang/ExpandoMetaClass.java
+++ b/src/main/java/groovy/lang/ExpandoMetaClass.java
@@ -1345,8 +1345,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
@Override
public Object invokeMethod(String name, Object obj) {
- if (obj instanceof Object[]) {
- Object[] args = (Object[]) obj;
+ if (obj instanceof Object[] args) {
if (args.length == 1 && args[0] instanceof Closure closure) {
registerSubclassInstanceMethod(name, klazz, closure);
return null;
@@ -1385,7 +1384,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
return getMetaClass().invokeMethod(this, name, obj);
}
catch (MissingMethodException mme) {
- if (obj instanceof Object[]) {
+ if (obj instanceof Object[] args) {
if (STATIC_QUALIFIER.equals(name)) {
final StaticDefiningClosure staticDef = new StaticDefiningClosure();
var c = (Closure<?>) ((Object[]) obj)[0];
@@ -1394,7 +1393,6 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
c.call((Object)null);
return null;
}
- Object[] args = (Object[]) obj;
if (args.length == 1 && args[0] instanceof Closure) {
registerInstanceMethod(name, (Closure<?>) args[0]);
} else if (args.length == 2 && args[0] instanceof Class clazz && args[1] instanceof Closure closure)
@@ -1433,8 +1431,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
@Override
public Object invokeMethod(String name, Object obj) {
- if (obj instanceof Object[]) {
- final Object[] args = (Object[]) obj;
+ if (obj instanceof Object[] args) {
if (args.length == 1 && args[0] instanceof Closure closure) {
registerStaticMethod(name, closure);
return null;
diff --git a/src/main/java/groovy/lang/IntRange.java b/src/main/java/groovy/lang/IntRange.java
index 189786419b..ada98bac0d 100644
--- a/src/main/java/groovy/lang/IntRange.java
+++ b/src/main/java/groovy/lang/IntRange.java
@@ -429,8 +429,7 @@ public class IntRange extends AbstractList<Integer> implements Range<Integer>, S
if (value instanceof Integer) {
return (Integer) value >= getFrom() && (Integer) value <= getTo();
}
- if (value instanceof BigInteger) {
- final BigInteger bigint = (BigInteger) value;
+ if (value instanceof BigInteger bigint) {
return bigint.compareTo(BigInteger.valueOf(getFrom())) >= 0 &&
bigint.compareTo(BigInteger.valueOf(getTo())) <= 0;
}
@@ -439,8 +438,7 @@ public class IntRange extends AbstractList<Integer> implements Range<Integer>, S
@Override
public boolean containsAll(Collection other) {
- if (other instanceof IntRange) {
- final IntRange range = (IntRange) other;
+ if (other instanceof IntRange range) {
return getFrom() <= range.getFrom() && range.getTo() <= getTo();
}
return super.containsAll(other);
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index c2e1d5138e..3995facfe9 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -479,8 +479,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
private boolean hasPrivateInMethods(final Class<?> clazz, final MetaMethodIndex.Cache entry) {
- if (entry.methods instanceof FastArray) {
- FastArray methods = (FastArray) entry.methods;
+ if (entry.methods instanceof FastArray methods) {
int size = methods.size();
var data = methods.getArray();
for (int i = 0; i != size; ++i) {
@@ -489,8 +488,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
return true;
}
}
- } else if (entry.methods instanceof MetaMethod) {
- MetaMethod method = (MetaMethod) entry.methods;
+ } else if (entry.methods instanceof MetaMethod method) {
if (method.isPrivate() && method.getDeclaringClass().getTheClass() == clazz) {
return true;
}
@@ -508,8 +506,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
@Override
public void methodNameAction(final Class<?> c, final MetaMethodIndex.Cache e) {
Object arrayOrMethod = (useThis ? e.methods : e.methodsForSuper);
- if (arrayOrMethod instanceof FastArray) {
- FastArray methods = (FastArray) arrayOrMethod;
+ if (arrayOrMethod instanceof FastArray methods) {
Object[] data = methods.getArray();
for (int i = 0; i < methods.size(); i += 1) {
MetaMethod method = (MetaMethod) data[i];
@@ -934,8 +931,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
try {
return methodMissing.invoke(instance, new Object[]{methodName, arguments});
} catch (InvokerInvocationException iie) {
- if (methodMissing instanceof ClosureMetaMethod && iie.getCause() instanceof MissingMethodException) {
- MissingMethodException mme = (MissingMethodException) iie.getCause();
+ if (methodMissing instanceof ClosureMetaMethod && iie.getCause() instanceof MissingMethodException mme) {
throw new MissingMethodExecutionFailed(mme.getMethod(), mme.getClass(), mme.getArguments(), mme.isStatic(), mme);
}
throw iie;
@@ -1105,8 +1101,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
MetaMethod method = getMetaMethod(sender, object, methodName, isCallToSuper, arguments);
- if (object instanceof Closure) {
- final Closure closure = (Closure)object;
+ if (object instanceof Closure closure) {
final Object owner = closure.getOwner();
if (CALL_METHOD.equals(methodName) || DO_CALL_METHOD.equals(methodName)) {
@@ -1201,8 +1196,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
throw mme;
}
} catch (InvokerInvocationException iie) {
- if (iie.getCause() instanceof MissingMethodException) {
- MissingMethodException mme = (MissingMethodException) iie.getCause();
+ if (iie.getCause() instanceof MissingMethodException mme) {
if (methodName.equals(mme.getMethod())) {
if (last == null) last = mme;
} else {
@@ -1320,8 +1314,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
private MetaClass lookupObjectMetaClass(Object object) {
- if (object instanceof GroovyObject) {
- GroovyObject go = (GroovyObject) object;
+ if (object instanceof GroovyObject go) {
return go.getMetaClass();
}
Class ownerClass = object.getClass();
@@ -2206,8 +2199,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
|| (!permissivePropertyAccess && !checkAccessible(getClass(), ((CachedField) mp).getDeclaringClass(), mp.getModifiers(), false))) {
continue;
}
- } else if (mp instanceof MetaBeanProperty) {
- MetaBeanProperty mbp = (MetaBeanProperty) mp;
+ } else if (mp instanceof MetaBeanProperty mbp) {
// filter out extrinsic properties (DGM, ...)
boolean getter = true, setter = true;
MetaMethod getterMetaMethod = mbp.getGetter();
@@ -2247,8 +2239,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
// Method has been optimized to reach a target of 325 bytecode size, making it JIT'able
Object ret = null;
- if (methodOrList instanceof MetaMethod) {
- MetaMethod method = (MetaMethod) methodOrList;
+ if (methodOrList instanceof MetaMethod method) {
int parameterCount = method.getParameterTypes().length;
Class<?> returnType = method.getReturnType();
if (!isGetter && parameterCount == 1
@@ -2260,8 +2251,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
: returnType != Void.TYPE && returnType != Void.class)) {
ret = method;
}
- } else if (methodOrList instanceof FastArray) {
- FastArray methods = (FastArray) methodOrList;
+ } else if (methodOrList instanceof FastArray methods) {
final int n = methods.size();
final Object[] data = methods.getArray();
for (int i = 0; i < n; i += 1) {
@@ -2366,8 +2356,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
private void fillStaticPropertyIndex() {
BiConsumer<String, MetaProperty> indexStaticProperty = (name, prop) -> {
- if (prop instanceof CachedField) {
- CachedField field = (CachedField) prop;
+ if (prop instanceof CachedField field) {
if (!field.isStatic()) { prop = null; }
} else if (prop instanceof MetaBeanProperty) {
prop = establishStaticMetaProperty(prop);
@@ -2557,15 +2546,13 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
}
- if (mp instanceof CachedField) {
- CachedField mfp = (CachedField) mp;
+ if (mp instanceof CachedField mfp) {
MetaBeanProperty mbp = new MetaBeanProperty(propName, mfp.getType(),
isGetter ? propertyMethod : null,
isGetter ? null : propertyMethod);
mbp.setField(mfp);
return mbp;
- } else if (mp instanceof MultipleSetterProperty) {
- MultipleSetterProperty msp = (MultipleSetterProperty) mp;
+ } else if (mp instanceof MultipleSetterProperty msp) {
if (isGetter) {
// GROOVY-10133: do not replace "isPropName()" with "getPropName()" or ...
if (msp.getGetter() == null || !msp.getGetter().getName().startsWith("is")) {
@@ -2573,8 +2560,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
}
return msp;
- } else if (mp instanceof MetaBeanProperty) {
- MetaBeanProperty mbp = (MetaBeanProperty) mp;
+ } else if (mp instanceof MetaBeanProperty mbp) {
if (isGetter) {
// GROOVY-10133: do not replace "isPropName()" with "getPropName()" or ...
if (mbp.getGetter() == null || !mbp.getGetter().getName().startsWith("is")) {
@@ -2879,8 +2865,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
MetaProperty mp = getMetaProperty(sender, attribute, useSuper, isStatic);
if (mp != null) {
- if (mp instanceof MetaBeanProperty) {
- MetaBeanProperty mbp = (MetaBeanProperty) mp;
+ if (mp instanceof MetaBeanProperty mbp) {
mp = mbp.getField();
}
try {
@@ -2921,8 +2906,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
MetaProperty mp = getMetaProperty(sender, attribute, useSuper, isStatic);
if (mp != null) {
- if (mp instanceof MetaBeanProperty) {
- MetaBeanProperty mbp = (MetaBeanProperty) mp;
+ if (mp instanceof MetaBeanProperty mbp) {
mp = mbp.getField();
}
if (mp != null) {
@@ -3158,8 +3142,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
*/
private MetaMethod findMethod(CachedMethod aMethod) {
Object methods = getMethods(theClass, aMethod.getName(), false);
- if (methods instanceof FastArray) {
- FastArray m = (FastArray) methods;
+ if (methods instanceof FastArray m) {
final int len = m.size();
final Object[] data = m.getArray();
for (int i = 0; i != len; ++i) {
diff --git a/src/main/java/groovy/lang/ObjectRange.java b/src/main/java/groovy/lang/ObjectRange.java
index f6ec04d694..bedffb56c5 100644
--- a/src/main/java/groovy/lang/ObjectRange.java
+++ b/src/main/java/groovy/lang/ObjectRange.java
@@ -530,8 +530,7 @@ public class ObjectRange extends AbstractList<Comparable> implements Range<Compa
if (operand instanceof Character) {
return (int) (Character) operand;
}
- if (operand instanceof String) {
- final String string = (String) operand;
+ if (operand instanceof String string) {
if (string.length() == 1) {
return (int) string.charAt(0);
diff --git a/src/main/java/groovy/lang/ProxyMetaClass.java b/src/main/java/groovy/lang/ProxyMetaClass.java
index fbf1b8e68a..ecd44a1f57 100644
--- a/src/main/java/groovy/lang/ProxyMetaClass.java
+++ b/src/main/java/groovy/lang/ProxyMetaClass.java
@@ -177,8 +177,7 @@ public class ProxyMetaClass extends MetaClassImpl implements AdaptingMetaClass {
if (null == interceptor) {
return super.getProperty(aClass, object, property, useSuper, fromInsideClass);
}
- if (interceptor instanceof PropertyAccessInterceptor) {
- PropertyAccessInterceptor pae = (PropertyAccessInterceptor) interceptor;
+ if (interceptor instanceof PropertyAccessInterceptor pae) {
Object result = pae.beforeGet(object, property);
if (interceptor.doInvoke()) {
@@ -202,8 +201,7 @@ public class ProxyMetaClass extends MetaClassImpl implements AdaptingMetaClass {
if (null == interceptor) {
super.setProperty(aClass, object, property, newValue, useSuper, fromInsideClass);
}
- if (interceptor instanceof PropertyAccessInterceptor) {
- PropertyAccessInterceptor pae = (PropertyAccessInterceptor) interceptor;
+ if (interceptor instanceof PropertyAccessInterceptor pae) {
pae.beforeSet(object, property, newValue);
if (interceptor.doInvoke()) {
diff --git a/src/main/java/groovy/lang/Tuple.java b/src/main/java/groovy/lang/Tuple.java
index ffa490cfb3..c2e05e1ff3 100644
--- a/src/main/java/groovy/lang/Tuple.java
+++ b/src/main/java/groovy/lang/Tuple.java
@@ -91,9 +91,8 @@ public class Tuple<E> extends AbstractList<E> implements Serializable, Cloneable
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof Tuple)) return false;
+ if (!(o instanceof Tuple that)) return false;
- Tuple that = (Tuple) o;
int size = size();
if (size != that.size()) return false;
for (int i = 0; i < size; i++) {
diff --git a/src/main/java/groovy/namespace/QName.java b/src/main/java/groovy/namespace/QName.java
index d6c6613122..177662dc06 100644
--- a/src/main/java/groovy/namespace/QName.java
+++ b/src/main/java/groovy/namespace/QName.java
@@ -172,13 +172,11 @@ public class QName implements Serializable {
public boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
- if (o instanceof QName) {
- final QName qName = (QName) o;
+ if (o instanceof QName qName) {
if (!namespaceURI.equals(qName.namespaceURI)) return false;
return localPart.equals(qName.localPart);
- } else if (o instanceof String) {
- final String string = (String)o;
+ } else if (o instanceof String string) {
if (string.isEmpty()) return false;
int lastColonIndex = string.lastIndexOf(':');
if (lastColonIndex < 0 || lastColonIndex == string.length() - 1) return false;
@@ -213,12 +211,10 @@ public class QName implements Serializable {
public boolean matches(Object o) {
if (this == o) return true;
if (o == null) return false;
- if (o instanceof QName) {
- final QName qName = (QName) o;
+ if (o instanceof QName qName) {
if (!namespaceURI.equals(qName.namespaceURI) && !"*".equals(namespaceURI) && !"*".equals(qName.namespaceURI)) return false;
return localPart.equals(qName.localPart) || "*".equals(localPart) || "*".equals(qName.localPart);
- } else if (o instanceof String) {
- final String string = (String)o;
+ } else if (o instanceof String string) {
if (string.isEmpty()) return false;
// try matching against 'prefix:localname'
int lastColonIndex = string.lastIndexOf(':');
diff --git a/src/main/java/groovy/transform/builder/ExternalStrategy.java b/src/main/java/groovy/transform/builder/ExternalStrategy.java
index f5076e93f9..ba68893463 100644
--- a/src/main/java/groovy/transform/builder/ExternalStrategy.java
+++ b/src/main/java/groovy/transform/builder/ExternalStrategy.java
@@ -93,12 +93,11 @@ public class ExternalStrategy extends BuilderASTTransformation.AbstractBuilderSt
@Override
public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
- if (!(annotatedNode instanceof ClassNode)) {
+ if (!(annotatedNode instanceof ClassNode builder)) {
transform.addError("Error during " + BuilderASTTransformation.MY_TYPE_NAME + " processing: building for " +
annotatedNode.getClass().getSimpleName() + " not supported by " + getClass().getSimpleName(), annotatedNode);
return;
}
- ClassNode builder = (ClassNode) annotatedNode;
String prefix = transform.getMemberStringValue(anno, "prefix", "");
ClassNode buildee = transform.getMemberClassValue(anno, "forClass");
if (buildee == null) {
diff --git a/src/main/java/groovy/transform/builder/SimpleStrategy.java b/src/main/java/groovy/transform/builder/SimpleStrategy.java
index 56f344b246..c109d4b850 100644
--- a/src/main/java/groovy/transform/builder/SimpleStrategy.java
+++ b/src/main/java/groovy/transform/builder/SimpleStrategy.java
@@ -82,13 +82,12 @@ import static org.codehaus.groovy.transform.BuilderASTTransformation.NO_EXCEPTIO
public class SimpleStrategy extends BuilderASTTransformation.AbstractBuilderStrategy {
@Override
public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
- if (!(annotatedNode instanceof ClassNode)) {
+ if (!(annotatedNode instanceof ClassNode buildee)) {
String target = annotatedNode.getDeclaringClass().isRecord() ? "records" : annotatedNode.getClass().getSimpleName();
transform.addError("Error during " + BuilderASTTransformation.MY_TYPE_NAME + " processing: building for " +
target + " not supported by " + getClass().getSimpleName(), annotatedNode);
return;
}
- ClassNode buildee = (ClassNode) annotatedNode;
if (unsupportedAttribute(transform, anno, "builderClassName")) return;
if (unsupportedAttribute(transform, anno, "buildMethodName")) return;
if (unsupportedAttribute(transform, anno, "builderMethodName")) return;
diff --git a/src/main/java/groovy/ui/GroovyMain.java b/src/main/java/groovy/ui/GroovyMain.java
index fa291a7287..d042a12ada 100644
--- a/src/main/java/groovy/ui/GroovyMain.java
+++ b/src/main/java/groovy/ui/GroovyMain.java
@@ -393,8 +393,7 @@ public class GroovyMain {
System.err.println(e);
return false;
} catch (Throwable e) {
- if (e instanceof InvokerInvocationException) {
- InvokerInvocationException iie = (InvokerInvocationException) e;
+ if (e instanceof InvokerInvocationException iie) {
e = iie.getCause();
}
System.err.println("Caught: " + e);
diff --git a/src/main/java/groovy/util/ConfigObject.java b/src/main/java/groovy/util/ConfigObject.java
index 4946b548a3..e13a30efac 100644
--- a/src/main/java/groovy/util/ConfigObject.java
+++ b/src/main/java/groovy/util/ConfigObject.java
@@ -204,8 +204,7 @@ public class ConfigObject extends GroovyObjectSupport implements Writable, Map,
String key = (String) o1;
Object v = map.get(key);
- if (v instanceof ConfigObject) {
- ConfigObject value = (ConfigObject) v;
+ if (v instanceof ConfigObject value) {
if (!value.isEmpty()) {
diff --git a/src/main/java/groovy/util/Expando.java b/src/main/java/groovy/util/Expando.java
index d95b5904d7..484c6eaf99 100644
--- a/src/main/java/groovy/util/Expando.java
+++ b/src/main/java/groovy/util/Expando.java
@@ -94,8 +94,7 @@ public class Expando extends GroovyObjectSupport {
catch (GroovyRuntimeException e) {
// br should get a "native" property match first. getProperty includes such fall-back logic
Object value = this.getProperty(name);
- if (value instanceof Closure) {
- Closure closure = (Closure) value;
+ if (value instanceof Closure closure) {
closure = (Closure) closure.clone();
closure.setDelegate(this);
return closure.call((Object[]) args);
@@ -115,9 +114,8 @@ public class Expando extends GroovyObjectSupport {
@Override
public String toString() {
Object method = getProperties().get("toString");
- if (method instanceof Closure) {
+ if (method instanceof Closure closure) {
// invoke overridden toString closure method
- Closure closure = (Closure) method;
closure.setDelegate(this);
return closure.call().toString();
} else {
@@ -134,9 +132,8 @@ public class Expando extends GroovyObjectSupport {
@Override
public boolean equals(Object obj) {
Object method = getProperties().get("equals");
- if (method instanceof Closure) {
+ if (method instanceof Closure closure) {
// invoke overridden equals closure method
- Closure closure = (Closure) method;
closure.setDelegate(this);
Boolean ret = (Boolean) closure.call(obj);
return ret;
@@ -154,9 +151,8 @@ public class Expando extends GroovyObjectSupport {
@Override
public int hashCode() {
Object method = getProperties().get("hashCode");
- if (method instanceof Closure) {
+ if (method instanceof Closure closure) {
// invoke overridden hashCode closure method
- Closure closure = (Closure) method;
closure.setDelegate(this);
Integer ret = (Integer) closure.call();
return ret;
diff --git a/src/main/java/groovy/util/Node.java b/src/main/java/groovy/util/Node.java
index c164b9502d..e22103f456 100644
--- a/src/main/java/groovy/util/Node.java
+++ b/src/main/java/groovy/util/Node.java
@@ -77,8 +77,7 @@ public class Node implements Serializable, Cloneable {
@Override
public Object clone() {
Object newValue = value;
- if (value instanceof NodeList) {
- NodeList nodes = (NodeList) value;
+ if (value instanceof NodeList nodes) {
newValue = nodes.clone();
}
return new Node(null, name, new HashMap(attributes), newValue);
@@ -368,8 +367,7 @@ public class Node implements Serializable, Cloneable {
if (value instanceof NodeList) {
return ((NodeList) value).text();
}
- if (value instanceof Collection) {
- Collection coll = (Collection) value;
+ if (value instanceof Collection coll) {
String previousText = null;
StringBuilder sb = null;
for (Object child : coll) {
@@ -524,8 +522,7 @@ public class Node implements Serializable, Cloneable {
public NodeList getAt(QName name) {
NodeList answer = new NodeList();
for (Object child : children()) {
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
Object childNodeName = childNode.name();
if (name.matches(childNodeName)) {
answer.add(childNode);
@@ -544,11 +541,9 @@ public class Node implements Serializable, Cloneable {
private NodeList getByName(String name) {
NodeList answer = new NodeList();
for (Object child : children()) {
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
Object childNodeName = childNode.name();
- if (childNodeName instanceof QName) {
- QName qn = (QName) childNodeName;
+ if (childNodeName instanceof QName qn) {
if (qn.matches(name)) {
answer.add(childNode);
}
@@ -590,8 +585,7 @@ public class Node implements Serializable, Cloneable {
List answer = new NodeList();
for (Iterator iter = InvokerHelper.asIterator(value); iter.hasNext(); ) {
Object child = iter.next();
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
List children = childNode.depthFirstRest(preorder);
if (preorder) answer.add(childNode);
if (children.size() > 1 || (children.size() == 1 && !(children.get(0) instanceof String))) answer.addAll(children);
@@ -644,8 +638,7 @@ public class Node implements Serializable, Cloneable {
private void depthFirstRest(boolean preorder, int level, Closure c) {
for (Iterator iter = InvokerHelper.asIterator(value); iter.hasNext(); ) {
Object child = iter.next();
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
if (preorder) callClosureForNode(c, childNode, level);
childNode.depthFirstRest(preorder, level + 1, c);
if (!preorder) callClosureForNode(c, childNode, level);
@@ -692,8 +685,7 @@ public class Node implements Serializable, Cloneable {
} else {
stack.push(child);
}
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
List children = childNode.getDirectChildren();
if (children.size() > 1 || (children.size() == 1 && !(children.get(0) instanceof String))) nextLevelChildren.addAll(preorder ? children : DefaultGroovyMethods.reverse(children));
}
@@ -748,8 +740,7 @@ public class Node implements Serializable, Cloneable {
} else {
stack.push(new Tuple2<Object, Integer>(child, level));
}
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
List children = childNode.getDirectChildren();
if (children.size() > 1 || (children.size() == 1 && !(children.get(0) instanceof String))) nextLevelChildren.addAll(preorder ? children : DefaultGroovyMethods.reverse(children));
}
@@ -783,8 +774,7 @@ public class Node implements Serializable, Cloneable {
List answer = new NodeList();
for (Iterator iter = InvokerHelper.asIterator(value); iter.hasNext(); ) {
Object child = iter.next();
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
answer.add(childNode);
} else if (child instanceof String) {
answer.add(child);
diff --git a/src/main/java/groovy/util/NodeList.java b/src/main/java/groovy/util/NodeList.java
index 24e0b91457..bfbf0912d8 100644
--- a/src/main/java/groovy/util/NodeList.java
+++ b/src/main/java/groovy/util/NodeList.java
@@ -62,8 +62,7 @@ public class NodeList extends ArrayList {
NodeList result = new NodeList(size());
for (int i = 0; i < size(); i++) {
Object next = get(i);
- if (next instanceof Node) {
- Node n = (Node) next;
+ if (next instanceof Node n) {
result.add(n.clone());
} else {
result.add(next);
@@ -130,8 +129,7 @@ public class NodeList extends ArrayList {
public NodeList getAt(String name) {
NodeList answer = new NodeList();
for (Object child : this) {
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
Object temp = childNode.get(name);
if (temp instanceof Collection) {
answer.addAll((Collection) temp);
@@ -152,8 +150,7 @@ public class NodeList extends ArrayList {
public NodeList getAt(QName name) {
NodeList answer = new NodeList();
for (Object child : this) {
- if (child instanceof Node) {
- Node childNode = (Node) child;
+ if (child instanceof Node childNode) {
NodeList temp = childNode.getAt(name);
answer.addAll(temp);
}
diff --git a/src/main/java/groovy/util/ObjectGraphBuilder.java b/src/main/java/groovy/util/ObjectGraphBuilder.java
index 2e82132265..dd6de47858 100644
--- a/src/main/java/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/java/groovy/util/ObjectGraphBuilder.java
@@ -152,10 +152,9 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
public void setChildPropertySetter(final Object childPropertySetter) {
if (childPropertySetter instanceof ChildPropertySetter) {
this.childPropertySetter = (ChildPropertySetter) childPropertySetter;
- } else if (childPropertySetter instanceof Closure) {
+ } else if (childPropertySetter instanceof Closure cls) {
final ObjectGraphBuilder self = this;
this.childPropertySetter = (parent, child, parentName, propertyName) -> {
- Closure cls = (Closure) childPropertySetter;
cls.setDelegate(self);
cls.call(parent, child, parentName, propertyName);
};
@@ -181,15 +180,13 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
this.classNameResolver = (ClassNameResolver) classNameResolver;
} else if (classNameResolver instanceof String) {
this.classNameResolver = classname -> makeClassName((String) classNameResolver, classname);
- } else if (classNameResolver instanceof Closure) {
+ } else if (classNameResolver instanceof Closure cls) {
final ObjectGraphBuilder self = this;
this.classNameResolver = classname -> {
- Closure cls = (Closure) classNameResolver;
cls.setDelegate(self);
return (String) cls.call(new Object[]{classname});
};
- } else if (classNameResolver instanceof Map) {
- Map classNameResolverOptions = (Map) classNameResolver;
+ } else if (classNameResolver instanceof Map classNameResolverOptions) {
String resolverName = (String) classNameResolverOptions.get(CLASSNAME_RESOLVER_KEY);
@@ -223,10 +220,9 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
this.identifierResolver = (IdentifierResolver) identifierResolver;
} else if (identifierResolver instanceof String) {
this.identifierResolver = nodeName -> (String) identifierResolver;
- } else if (identifierResolver instanceof Closure) {
+ } else if (identifierResolver instanceof Closure cls) {
final ObjectGraphBuilder self = this;
this.identifierResolver = nodeName -> {
- Closure cls = (Closure) identifierResolver;
cls.setDelegate(self);
return (String) cls.call(new Object[]{nodeName});
};
@@ -250,10 +246,9 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
public void setNewInstanceResolver(final Object newInstanceResolver) {
if (newInstanceResolver instanceof NewInstanceResolver) {
this.newInstanceResolver = (NewInstanceResolver) newInstanceResolver;
- } else if (newInstanceResolver instanceof Closure) {
+ } else if (newInstanceResolver instanceof Closure cls) {
final ObjectGraphBuilder self = this;
this.newInstanceResolver = (klass, attributes) -> {
- Closure cls = (Closure) newInstanceResolver;
cls.setDelegate(self);
return cls.call(klass, attributes);
};
@@ -272,10 +267,9 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
this.referenceResolver = (ReferenceResolver) referenceResolver;
} else if (referenceResolver instanceof String) {
this.referenceResolver = nodeName -> (String) referenceResolver;
- } else if (referenceResolver instanceof Closure) {
+ } else if (referenceResolver instanceof Closure cls) {
final ObjectGraphBuilder self = this;
this.referenceResolver = nodeName -> {
- Closure cls = (Closure) referenceResolver;
cls.setDelegate(self);
return (String) cls.call(new Object[]{nodeName});
};
@@ -411,8 +405,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
if (Collection.class.isAssignableFrom(klass)) {
Type type = currentNode.getClass().getDeclaredField(classname).getGenericType();
- if (type instanceof ParameterizedType) {
- ParameterizedType ptype = (ParameterizedType) type;
+ if (type instanceof ParameterizedType ptype) {
Type[] actualTypeArguments = ptype.getActualTypeArguments();
if (actualTypeArguments.length != 1) {
throw new RuntimeException("can't determine class name for collection field " + classname + " with multiple generics");
diff --git a/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java
index 4c5aed3165..dd263c974c 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ConstructorNodeUtils.java
@@ -74,8 +74,7 @@ public class ConstructorNodeUtils {
public static ConstructorCallExpression getFirstIfSpecialConstructorCall(final Statement code) {
if (code == null) return null;
- if (code instanceof BlockStatement) {
- final BlockStatement block = (BlockStatement) code;
+ if (code instanceof BlockStatement block) {
final List<Statement> statementList = block.getStatements();
if (statementList.isEmpty()) return null;
// handle blocks of blocks
@@ -85,8 +84,7 @@ public class ConstructorNodeUtils {
if (!(code instanceof ExpressionStatement)) return null;
Expression expression = ((ExpressionStatement) code).getExpression();
- if (!(expression instanceof ConstructorCallExpression)) return null;
- ConstructorCallExpression cce = (ConstructorCallExpression) expression;
+ if (!(expression instanceof ConstructorCallExpression cce)) return null;
if (cce.isSpecialCall()) return cce;
return null;
}
diff --git a/src/main/java/org/apache/groovy/ast/tools/ExpressionUtils.java b/src/main/java/org/apache/groovy/ast/tools/ExpressionUtils.java
index 803dc7b842..b6f29a893b 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ExpressionUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ExpressionUtils.java
@@ -200,8 +200,7 @@ public final class ExpressionUtils {
* @return original or transformed expression
*/
public static Expression transformInlineConstants(final Expression exp) {
- if (exp instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) exp;
+ if (exp instanceof PropertyExpression pe) {
if (pe.getObjectExpression() instanceof ClassExpression) {
ClassNode clazz = pe.getObjectExpression().getType();
FieldNode field = ClassNodeUtils.getField(clazz, pe.getPropertyAsString());
@@ -212,10 +211,8 @@ public final class ExpressionUtils {
}
}
}
- } else if (exp instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) exp;
- if (ve.getAccessedVariable() instanceof FieldNode) {
- FieldNode field = (FieldNode) ve.getAccessedVariable();
+ } else if (exp instanceof VariableExpression ve) {
+ if (ve.getAccessedVariable() instanceof FieldNode field) {
if (!field.isEnum() && field.isFinal() && field.isStatic()) {
Expression value = transformInlineConstants(field.getInitialValueExpression(), field.getType()); // GROOVY-11207, GROOVY-10068
if (value instanceof ConstantExpression) {
@@ -223,8 +220,7 @@ public final class ExpressionUtils {
}
}
}
- } else if (exp instanceof BinaryExpression) {
- BinaryExpression be = (BinaryExpression) exp;
+ } else if (exp instanceof BinaryExpression be) {
Expression lhs = transformInlineConstants(be.getLeftExpression());
Expression rhs = transformInlineConstants(be.getRightExpression());
if (be.getOperation().getType() == PLUS // GROOVY-9855: inline string concat
@@ -262,8 +258,7 @@ public final class ExpressionUtils {
* @return the transformed type or the original if no transformation was possible
*/
public static Expression transformInlineConstants(final Expression exp, final ClassNode attrType) {
- if (exp instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) exp;
+ if (exp instanceof PropertyExpression pe) {
Expression e = pe.getObjectExpression();
ClassNode cn;
FieldNode fn;
@@ -289,10 +284,8 @@ public final class ExpressionUtils {
}
}*/
}
- } else if (exp instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) exp;
- if (ve.getAccessedVariable() instanceof FieldNode) {
- FieldNode fn = (FieldNode) ve.getAccessedVariable();
+ } else if (exp instanceof VariableExpression ve) {
+ if (ve.getAccessedVariable() instanceof FieldNode fn) {
if (fn.isStatic() && fn.isFinal()) {
Expression e = transformInlineConstants(fn.getInitialValueExpression(), attrType);
if (e != null) {
@@ -303,20 +296,17 @@ public final class ExpressionUtils {
} else if (exp instanceof ConstantExpression) {
Object value = ((ConstantExpression) exp).getValue();
ClassNode targetType = ClassHelper.getWrapper(attrType);
- if (value instanceof Integer) {
- Integer integer = (Integer) value;
+ if (value instanceof Integer integer) {
ConstantExpression constantExpression = transformNumberConstantExpression(exp, targetType, integer);
if (constantExpression != null) return constantExpression;
- } else if (value instanceof BigDecimal) {
- BigDecimal decimal = (BigDecimal) value;
+ } else if (value instanceof BigDecimal decimal) {
if (ClassHelper.isWrapperFloat(targetType)) {
return configure(exp, new ConstantExpression(decimal.floatValue(), true));
}
if (ClassHelper.isWrapperDouble(targetType)) {
return configure(exp, new ConstantExpression(decimal.doubleValue(), true));
}
- } else if (value instanceof String) {
- String string = (String) value;
+ } else if (value instanceof String string) {
if (ClassHelper.isWrapperCharacter(targetType) && string.length() == 1) {
return configure(exp, new ConstantExpression(string.charAt(0), true));
}
diff --git a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
index ddb16c06d8..4ace6fe377 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
@@ -269,12 +269,11 @@ public class ImmutablePropertyUtils {
final Expression expression = anno.getMember(MEMBER_KNOWN_IMMUTABLES);
if (expression == null) return immutables;
- if (!(expression instanceof ListExpression)) {
+ if (!(expression instanceof ListExpression listExpression)) {
xform.addError("Use the Groovy list notation [el1, el2] to specify known immutable property names via \"" + MEMBER_KNOWN_IMMUTABLES + "\"", anno);
return immutables;
}
- final ListExpression listExpression = (ListExpression) expression;
for (Expression listItemExpression : listExpression.getExpressions()) {
if (listItemExpression instanceof ConstantExpression) {
immutables.add((String) ((ConstantExpression) listItemExpression).getValue());
@@ -294,12 +293,11 @@ public class ImmutablePropertyUtils {
final Expression expression = anno.getMember(MEMBER_KNOWN_IMMUTABLE_CLASSES);
if (expression == null) return immutableClasses;
- if (!(expression instanceof ListExpression)) {
+ if (!(expression instanceof ListExpression listExpression)) {
xform.addError("Use the Groovy list notation [el1, el2] to specify known immutable classes via \"" + MEMBER_KNOWN_IMMUTABLE_CLASSES + "\"", anno);
return immutableClasses;
}
- final ListExpression listExpression = (ListExpression) expression;
for (Expression listItemExpression : listExpression.getExpressions()) {
if (listItemExpression instanceof ClassExpression) {
immutableClasses.add(listItemExpression.getType().getName());
diff --git a/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java b/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java
index 24006689ae..fd4aa56362 100644
--- a/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java
@@ -94,8 +94,7 @@ public class VisibilityUtils {
}
private static Visibility getVisibility(final Expression e) {
- if (e instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) e;
+ if (e instanceof PropertyExpression pe) {
if (pe.getObjectExpression() instanceof ClassExpression && "groovy.transform.options.Visibility".equals(pe.getObjectExpression().getText())) {
return Visibility.valueOf(pe.getPropertyAsString());
}
diff --git a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index adc2647881..72f04a3810 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -408,8 +408,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
Expression conditionExpression = (Expression) this.visit(ctx.ce);
- if (conditionExpression instanceof BinaryExpression) {
- BinaryExpression binaryExpression = (BinaryExpression) conditionExpression;
+ if (conditionExpression instanceof BinaryExpression binaryExpression) {
if (binaryExpression.getOperation().getType() == Types.ASSIGN) {
throw createParsingFailedException("Assignment expression is not allowed in the assert statement", conditionExpression);
@@ -1032,8 +1031,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
}
Statement exprOrBlockStatement = statements.get(0);
- if (exprOrBlockStatement instanceof BlockStatement) {
- BlockStatement blockStatement = (BlockStatement) exprOrBlockStatement;
+ if (exprOrBlockStatement instanceof BlockStatement blockStatement) {
List<Statement> branchStatementList = blockStatement.getStatements();
if (1 == branchStatementList.size()) {
exprOrBlockStatement = branchStatementList.get(0);
@@ -1605,11 +1603,10 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
}
private ConstructorCallExpression checkThisAndSuperConstructorCall(final Statement statement) {
- if (!(statement instanceof BlockStatement)) { // method code must be a BlockStatement
+ if (!(statement instanceof BlockStatement blockStatement)) { // method code must be a BlockStatement
return null;
}
- BlockStatement blockStatement = (BlockStatement) statement;
List<Statement> statementList = blockStatement.getStatements();
for (int i = 0, n = statementList.size(); i < n; i += 1) {
@@ -2268,8 +2265,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
List<Expression> expressionList = ((ArgumentListExpression) arguments).getExpressions();
if (1 == expressionList.size()) {
final Expression expression = expressionList.get(0);
- if (expression instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) expression;
+ if (expression instanceof MethodCallExpression mce) {
final Expression methodCallArguments = mce.getArguments();
// check the method call tails with a closure
@@ -2498,8 +2494,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
return configureAST(createCallMethodCallExpression(baseExpr, argumentsExpr), ctx);
}
- if (baseExpr instanceof AttributeExpression) { // e.g. obj.@a(1, 2)
- AttributeExpression attributeExpression = (AttributeExpression) baseExpr;
+ if (baseExpr instanceof AttributeExpression attributeExpression) { // e.g. obj.@a(1, 2)
attributeExpression.setSpreadSafe(false); // whether attributeExpression is spread safe or not, we must reset it as false
return configureAST(createCallMethodCallExpression(attributeExpression, argumentsExpr, true), ctx);
}
@@ -2557,18 +2552,15 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
} else if (asBoolean(ctx.closureOrLambdaExpression())) {
ClosureExpression closureExpression = this.visitClosureOrLambdaExpression(ctx.closureOrLambdaExpression());
- if (baseExpr instanceof MethodCallExpression) {
- MethodCallExpression methodCallExpression = (MethodCallExpression) baseExpr;
+ if (baseExpr instanceof MethodCallExpression methodCallExpression) {
Expression argumentsExpression = methodCallExpression.getArguments();
- if (argumentsExpression instanceof ArgumentListExpression) { // normal arguments, e.g. 1, 2
- ArgumentListExpression argumentListExpression = (ArgumentListExpression) argumentsExpression;
+ if (argumentsExpression instanceof ArgumentListExpression argumentListExpression) { // normal arguments, e.g. 1, 2
argumentListExpression.getExpressions().add(closureExpression);
return configureAST(methodCallExpression, ctx);
}
- if (argumentsExpression instanceof TupleExpression) { // named arguments, e.g. x: 1, y: 2
- TupleExpression tupleExpression = (TupleExpression) argumentsExpression;
+ if (argumentsExpression instanceof TupleExpression tupleExpression) { // named arguments, e.g. x: 1, y: 2
NamedArgumentListExpression namedArgumentListExpression = (NamedArgumentListExpression) tupleExpression.getExpression(0);
if (asBoolean(tupleExpression.getExpressions())) {
@@ -2709,8 +2701,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
.map(this::visitEnhancedArgumentListElement)
.forEach(e -> {
- if (e instanceof MapEntryExpression) {
- MapEntryExpression mapEntryExpression = (MapEntryExpression) e;
+ if (e instanceof MapEntryExpression mapEntryExpression) {
validateDuplicatedNamedParameter(mapEntryExpressionList, mapEntryExpression);
mapEntryExpressionList.add(mapEntryExpression);
@@ -3382,8 +3373,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
var initExpressions = new ArrayList<Expression>();
for (int i = 0; i < ctx.getChildCount(); i += 1) {
var c = ctx.getChild(i);
- if (c instanceof ArrayInitializerContext) {
- var arrayInitializer = (ArrayInitializerContext) c;
+ if (c instanceof ArrayInitializerContext arrayInitializer) {
ClassNode subType = elementType.getComponentType();
//if (subType == null) produce closure or throw exception
arrayInitializer.putNodeMetaData("elementType", subType);
@@ -3536,9 +3526,8 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
}
private void validateExpressionListElement(final ExpressionListElementContext ctx, final Expression expression) {
- if (expression instanceof MethodCallExpression && isTrue(expression, IS_COMMAND_EXPRESSION)) {
+ if (expression instanceof MethodCallExpression methodCallExpression && isTrue(expression, IS_COMMAND_EXPRESSION)) {
// statements like `foo(String a)` is invalid
- MethodCallExpression methodCallExpression = (MethodCallExpression) expression;
String methodName = methodCallExpression.getMethodAsString();
if (methodCallExpression.isImplicitThis() && Character.isUpperCase(methodName.codePointAt(0)) || isPrimitiveType(methodName)) {
throw createParsingFailedException("Invalid method declaration", ctx);
@@ -4667,8 +4656,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
private CompilationFailedException createParsingFailedException(final Throwable t) {
if (t instanceof SyntaxException) {
this.collectSyntaxError((SyntaxException) t);
- } else if (t instanceof GroovySyntaxError) {
- GroovySyntaxError groovySyntaxError = (GroovySyntaxError) t;
+ } else if (t instanceof GroovySyntaxError groovySyntaxError) {
this.collectSyntaxError(
new SyntaxException(
diff --git a/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java b/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
index ea94b2222c..57f0a49bdf 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
@@ -101,7 +101,7 @@ public class GroovydocManager {
return;
}
- if (!(node instanceof AnnotatedNode)) {
+ if (!(node instanceof AnnotatedNode annotatedNode)) {
return;
}
@@ -109,7 +109,6 @@ public class GroovydocManager {
return;
}
- AnnotatedNode annotatedNode = (AnnotatedNode) node;
AnnotationNode annotationNode = new AnnotationNode(ClassHelper.make(Groovydoc.class));
annotationNode.addMember(VALUE, new ConstantExpression(docCommentNodeText));
annotatedNode.addAnnotation(annotationNode);
diff --git a/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java b/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
index 624666c8d8..958a5681eb 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/TryWithResourcesASTTransformation.java
@@ -113,11 +113,10 @@ public class TryWithResourcesASTTransformation {
}
Expression targetExpression = ((DeclarationExpression) variableDeclaration.getExpression()).getLeftExpression();
- if (!(targetExpression instanceof VariableExpression)) {
+ if (!(targetExpression instanceof VariableExpression variableExpression)) {
throw astBuilder.createParsingFailedException("The expression statement is not a variable delcaration statement", variableDeclaration);
}
- VariableExpression variableExpression = (VariableExpression) targetExpression;
variableExpression.setModifiers(variableExpression.getModifiers() | Opcodes.ACC_FINAL);
return variableDeclaration;
diff --git a/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java b/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
index 642090ca14..ff24c15cb5 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/internal/atnmanager/AtnManager.java
@@ -57,8 +57,7 @@ public abstract class AtnManager {
while (true) {
try {
Reference<? extends AtnWrapper> reference = atnWrapperReferenceQueue.remove();
- if (reference instanceof AtnWrapperSoftReference && shouldClearDfaCache() && isSmartCleanupEnabled()) {
- AtnWrapperSoftReference atnWrapperSoftReference = (AtnWrapperSoftReference) reference;
+ if (reference instanceof AtnWrapperSoftReference atnWrapperSoftReference && shouldClearDfaCache() && isSmartCleanupEnabled()) {
atnWrapperSoftReference.getAtnManager().getAtnWrapper(false).clearDFA();
}
} catch (Throwable t) {
diff --git a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index 4a50984590..313e841451 100644
--- a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -1411,11 +1411,10 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
@Override
public boolean contains(Object obj) {
- if (!(obj instanceof Entry<?, ?>)) {
+ if (!(obj instanceof Entry<?, ?> entry)) {
return false;
}
- Entry<?, ?> entry = (Entry<?, ?>) obj;
- Node<K, V> node = map.data.get(entry.getKey());
+ Node<K, V> node = map.data.get(entry.getKey());
return (node != null) && (node.getValue().equals(entry.getValue()));
}
@@ -1426,11 +1425,10 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
@Override
public boolean remove(Object obj) {
- if (!(obj instanceof Entry<?, ?>)) {
+ if (!(obj instanceof Entry<?, ?> entry)) {
return false;
}
- Entry<?, ?> entry = (Entry<?, ?>) obj;
- return map.remove(entry.getKey(), entry.getValue());
+ return map.remove(entry.getKey(), entry.getValue());
}
}
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 96511c4b52..f5b7fe5255 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -702,18 +702,15 @@ public class ClassNode extends AnnotatedNode {
public void positionStmtsAfterEnumInitStmts(List<Statement> staticFieldInitializerStatements) {
MethodNode constructor = getOrAddStaticInitializer();
Statement statement = constructor.getCode();
- if (statement instanceof BlockStatement) {
- BlockStatement block = (BlockStatement) statement;
+ if (statement instanceof BlockStatement block) {
// add given statements for explicitly declared static fields just after enum-special fields
// are found - the $VALUES binary expression marks the end of such fields.
List<Statement> blockStatements = block.getStatements();
for (ListIterator<Statement> it = blockStatements.listIterator(); it.hasNext(); ) {
Statement stmt = it.next();
if (stmt instanceof ExpressionStatement &&
- ((ExpressionStatement) stmt).getExpression() instanceof BinaryExpression) {
- BinaryExpression bExp = (BinaryExpression) ((ExpressionStatement) stmt).getExpression();
- if (bExp.getLeftExpression() instanceof FieldExpression) {
- FieldExpression fExp = (FieldExpression) bExp.getLeftExpression();
+ ((ExpressionStatement) stmt).getExpression() instanceof BinaryExpression bExp) {
+ if (bExp.getLeftExpression() instanceof FieldExpression fExp) {
if ("$VALUES".equals(fExp.getFieldName())) {
for (Statement initStmt : staticFieldInitializerStatements) {
it.add(initStmt);
diff --git a/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java b/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
index af1eef9daf..1e1a4002aa 100644
--- a/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
@@ -42,8 +42,7 @@ public class ConstructorNode extends MethodNode {
if (!(code instanceof ExpressionStatement)) return false;
Expression expression = ((ExpressionStatement) code).getExpression();
- if (!(expression instanceof ConstructorCallExpression)) return false;
- ConstructorCallExpression cce = (ConstructorCallExpression) expression;
+ if (!(expression instanceof ConstructorCallExpression cce)) return false;
return cce.isSpecialCall();
}
diff --git a/src/main/java/org/codehaus/groovy/ast/ImportNode.java b/src/main/java/org/codehaus/groovy/ast/ImportNode.java
index bb07ad096c..02b341e795 100644
--- a/src/main/java/org/codehaus/groovy/ast/ImportNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ImportNode.java
@@ -156,9 +156,8 @@ public class ImportNode extends AnnotatedNode {
@Override
public boolean equals(Object that) {
if (that == this) return true;
- if (!(that instanceof ImportNode)) return false;
+ if (!(that instanceof ImportNode node)) return false;
- ImportNode node = (ImportNode) that;
if (!Objects.equals(type, node.type))
return false;
if (!Objects.equals(alias, node.alias))
diff --git a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
index a98e53ba45..6740854173 100644
--- a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
@@ -54,8 +54,7 @@ public class MixinASTTransformation extends AbstractASTTransformation {
Expression useClasses = null;
if (value instanceof ClassExpression) {
useClasses = value;
- } else if (value instanceof ListExpression) {
- ListExpression listExpression = (ListExpression) value;
+ } else if (value instanceof ListExpression listExpression) {
for (Expression ex : listExpression.getExpressions()) {
if (!(ex instanceof ClassExpression))
return;
@@ -66,8 +65,7 @@ public class MixinASTTransformation extends AbstractASTTransformation {
return;
}
- if (target instanceof ClassNode) {
- ClassNode targetClass = (ClassNode) target;
+ if (target instanceof ClassNode targetClass) {
MethodNode clinit = targetClass.getDeclaredMethod("<clinit>", Parameter.EMPTY_ARRAY);
if (clinit == null) {
diff --git a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
index 8c7edf3bf2..9ba8598b6a 100644
--- a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
@@ -390,17 +390,15 @@ public class ModuleNode extends ASTNode {
List<FieldNode> fields = new ArrayList<>();
// check for uncontained statements (excluding decl statements)
for (Statement statement : statementBlock.getStatements()) {
- if (!(statement instanceof ExpressionStatement)) {
+ if (!(statement instanceof ExpressionStatement es)) {
hasUncontainedStatements = true;
break;
}
- ExpressionStatement es = (ExpressionStatement) statement;
Expression expression = es.getExpression();
- if (!(expression instanceof DeclarationExpression)) {
+ if (!(expression instanceof DeclarationExpression de)) {
hasUncontainedStatements = true;
break;
}
- DeclarationExpression de = (DeclarationExpression) expression;
if (de.isMultipleAssignmentDeclaration()) {
List<Expression> variables = de.getTupleExpression().getExpressions();
if (!(de.getRightExpression() instanceof ListExpression)) break;
diff --git a/src/main/java/org/codehaus/groovy/ast/RecordComponentNode.java b/src/main/java/org/codehaus/groovy/ast/RecordComponentNode.java
index de5b6e6961..9379a329e6 100644
--- a/src/main/java/org/codehaus/groovy/ast/RecordComponentNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/RecordComponentNode.java
@@ -55,8 +55,7 @@ public class RecordComponentNode extends AnnotatedNode {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof RecordComponentNode)) return false;
- RecordComponentNode that = (RecordComponentNode) o;
+ if (!(o instanceof RecordComponentNode that)) return false;
return name.equals(that.name) && getDeclaringClass().equals(that.getDeclaringClass());
}
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/Annotations.java b/src/main/java/org/codehaus/groovy/ast/decompiled/Annotations.java
index 1101017cd4..dbd671d7e9 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/Annotations.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/Annotations.java
@@ -66,8 +66,7 @@ class Annotations {
return type != null ? new ClassExpression(type) : null;
}
- if (value instanceof EnumConstantWrapper) {
- EnumConstantWrapper wrapper = (EnumConstantWrapper) value;
+ if (value instanceof EnumConstantWrapper wrapper) {
return new PropertyExpression(new ClassExpression(resolver.resolveType(Type.getType(wrapper.enumDesc))), wrapper.constant);
}
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
index bd74ee8690..e4970bca8d 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
@@ -79,8 +79,7 @@ public class DeclarationExpression extends BinaryExpression {
private static void check(final Expression left) {
if (left instanceof VariableExpression) {
// all good
- } else if (left instanceof TupleExpression) {
- TupleExpression tuple = (TupleExpression) left;
+ } else if (left instanceof TupleExpression tuple) {
if (tuple.getExpressions().isEmpty())
throw new GroovyBugError("one element required for left side");
} else {
@@ -152,8 +151,7 @@ public class DeclarationExpression extends BinaryExpression {
TupleExpression t = getTupleExpression();
text.append("def (");
for (Expression e : t.getExpressions()) {
- if (e instanceof VariableExpression) {
- VariableExpression v = (VariableExpression) e;
+ if (e instanceof VariableExpression v) {
if (!v.isDynamicTyped()) {
text.append(formatTypeName(v.getOriginType())).append(' ');
}
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
index 9d11192ba2..8f5b0c0b51 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -981,9 +981,8 @@ public class GeneralUtils {
AnnotationNode retentionPolicyAnnotation = annotations.get(0);
Expression valueExpression = retentionPolicyAnnotation.getMember("value");
- if (!(valueExpression instanceof PropertyExpression)) continue;
+ if (!(valueExpression instanceof PropertyExpression propertyExpression)) continue;
- PropertyExpression propertyExpression = (PropertyExpression) valueExpression;
boolean processAnnotation = propertyExpression.getProperty() instanceof ConstantExpression
&& ("RUNTIME".equals(((ConstantExpression) (propertyExpression.getProperty())).getValue())
|| "CLASS".equals(((ConstantExpression) (propertyExpression.getProperty())).getValue()));
@@ -1086,17 +1085,14 @@ public class GeneralUtils {
public static boolean copyStatementsWithSuperAdjustment(final ClosureExpression pre, final BlockStatement body) {
Statement preCode = pre.getCode();
boolean changed = false;
- if (preCode instanceof BlockStatement) {
- BlockStatement block = (BlockStatement) preCode;
+ if (preCode instanceof BlockStatement block) {
List<Statement> statements = block.getStatements();
for (int i = 0, n = statements.size(); i < n; i += 1) {
Statement statement = statements.get(i);
// adjust the first statement if it's a super call
- if (i == 0 && statement instanceof ExpressionStatement) {
- ExpressionStatement es = (ExpressionStatement) statement;
+ if (i == 0 && statement instanceof ExpressionStatement es) {
Expression preExp = es.getExpression();
- if (preExp instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) preExp;
+ if (preExp instanceof MethodCallExpression mce) {
String name = mce.getMethodAsString();
if ("super".equals(name)) {
es.setExpression(new ConstructorCallExpression(ClassNode.SUPER, mce.getArguments()));
@@ -1115,8 +1111,7 @@ public class GeneralUtils {
for (Map.Entry<String, Expression> member : members.entrySet()) {
if (member.getValue() instanceof ClosureExpression) return true;
- if (member.getValue() instanceof ClassExpression) {
- ClassExpression classExpression = (ClassExpression) member.getValue();
+ if (member.getValue() instanceof ClassExpression classExpression) {
Class<?> typeClass = classExpression.getType().isResolved() ? classExpression.getType().redirect().getTypeClass() : null;
if (typeClass != null && GeneratedClosure.class.isAssignableFrom(typeClass)) return true;
}
@@ -1196,8 +1191,7 @@ public class GeneralUtils {
|| maybeFallsThrough(((IfStatement) statement).getIfBlock());
} else if (statement instanceof SwitchStatement) {
// TODO
- } else if (statement instanceof TryCatchStatement) {
- TryCatchStatement tryCatch = (TryCatchStatement) statement;
+ } else if (statement instanceof TryCatchStatement tryCatch) {
if (!maybeFallsThrough(tryCatch.getFinallyStatement())) return false;
for (CatchStatement cs : tryCatch.getCatchStatements())
if (maybeFallsThrough(cs.getCode())) return true;
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java b/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
index 8231765d00..3c5ae2c807 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/WideningCategories.java
@@ -664,8 +664,7 @@ public class WideningCategories {
if (source.isDerivedFrom(target) || source.implementsInterface(target)) {
return true;
}
- if (target instanceof LowestUpperBoundClassNode) {
- LowestUpperBoundClassNode lub = (LowestUpperBoundClassNode) target;
+ if (target instanceof LowestUpperBoundClassNode lub) {
if (implementsInterfaceOrSubclassOf(source, lub.getSuperClass())) {
return true;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/AnnotationVisitor.java b/src/main/java/org/codehaus/groovy/classgen/AnnotationVisitor.java
index fc99c529e4..352e941ff5 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AnnotationVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AnnotationVisitor.java
@@ -107,11 +107,9 @@ public class AnnotationVisitor {
}
private boolean validateEnumConstant(final Expression exp) {
- if (exp instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) exp;
+ if (exp instanceof PropertyExpression pe) {
String name = pe.getPropertyAsString();
- if (pe.getObjectExpression() instanceof ClassExpression && name != null) {
- ClassExpression ce = (ClassExpression) pe.getObjectExpression();
+ if (pe.getObjectExpression() instanceof ClassExpression ce && name != null) {
ClassNode type = ce.getType();
if (type.isEnum()) {
boolean ok = false;
@@ -163,8 +161,7 @@ public class AnnotationVisitor {
protected void visitExpression(final String attrName, final Expression valueExpr, final ClassNode attrType) {
if (attrType.isArray()) {
// check needed as @Test(attr = {"elem"}) passes through the parser
- if (valueExpr instanceof ListExpression) {
- ListExpression le = (ListExpression) valueExpr;
+ if (valueExpr instanceof ListExpression le) {
visitListExpression(attrName, le, attrType.getComponentType());
} else if (valueExpr instanceof ClosureExpression) {
addError("Annotation list attributes must use Groovy notation [el1, el2]", valueExpr);
@@ -275,11 +272,10 @@ public class AnnotationVisitor {
public void checkCircularReference(final ClassNode searchClass, final ClassNode attrType, final Expression startExp) {
if (!isValidAnnotationClass(attrType)) return;
- if (!(startExp instanceof AnnotationConstantExpression)) {
+ if (!(startExp instanceof AnnotationConstantExpression ace)) {
addError("Found '" + startExp.getText() + "' when expecting an Annotation Constant", startExp);
return;
}
- AnnotationConstantExpression ace = (AnnotationConstantExpression) startExp;
AnnotationNode annotationNode = (AnnotationNode) ace.getValue();
if (annotationNode.getClassNode().equals(searchClass)) {
addError("Circular reference discovered in " + searchClass.getName(), startExp);
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 3869830267..6150764f25 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -720,8 +720,7 @@ public class AsmClassGenerator extends ClassGenerator {
} else if (type.isArray()) {
AnnotationVisitor avl = av.visitArray(null);
ClassNode componentType = type.getComponentType();
- if (exp instanceof ListExpression) {
- ListExpression list = (ListExpression) exp;
+ if (exp instanceof ListExpression list) {
for (Expression lExp : list.getExpressions()) {
visitAnnotationDefaultExpression(avl, componentType, lExp);
}
@@ -1813,8 +1812,7 @@ public class AsmClassGenerator extends ClassGenerator {
// init declarations
for (int i = 0; i < size; i += 1) {
Expression expr = expressions.get(i);
- if (expr instanceof DeclarationExpression) {
- DeclarationExpression de = (DeclarationExpression) expr;
+ if (expr instanceof DeclarationExpression de) {
BinaryExpression be = new BinaryExpression(
de.getLeftExpression(),
de.getOperation(),
@@ -2317,8 +2315,7 @@ public class AsmClassGenerator extends ClassGenerator {
}
public static int argumentSize(final Expression arguments) {
- if (arguments instanceof TupleExpression) {
- TupleExpression tupleExpression = (TupleExpression) arguments;
+ if (arguments instanceof TupleExpression tupleExpression) {
int size = tupleExpression.getExpressions().size();
return size;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
index e089815fa0..e37faad013 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
@@ -722,8 +722,7 @@ out: for (ClassNode sc : superTypes) {
}
private void checkSuperOrThisOnLHS(final Expression expression) {
- if (!(expression instanceof VariableExpression)) return;
- VariableExpression ve = (VariableExpression) expression;
+ if (!(expression instanceof VariableExpression ve)) return;
if (ve.isThisExpression()) {
addError("cannot have 'this' as LHS of an assignment", expression);
} else if (ve.isSuperExpression()) {
@@ -734,21 +733,18 @@ out: for (ClassNode sc : superTypes) {
private void checkFinalFieldAccess(final Expression expression) {
if (!(expression instanceof VariableExpression) && !(expression instanceof PropertyExpression)) return;
Variable v = null;
- if (expression instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) expression;
+ if (expression instanceof VariableExpression ve) {
v = ve.getAccessedVariable();
} else {
PropertyExpression propExp = ((PropertyExpression) expression);
Expression objectExpression = propExp.getObjectExpression();
- if (objectExpression instanceof VariableExpression) {
- VariableExpression varExp = (VariableExpression) objectExpression;
+ if (objectExpression instanceof VariableExpression varExp) {
if (varExp.isThisExpression()) {
v = currentClass.getDeclaredField(propExp.getPropertyAsString());
}
}
}
- if (v instanceof FieldNode) {
- FieldNode fn = (FieldNode) v;
+ if (v instanceof FieldNode fn) {
/*
* if it is static final but not accessed inside a static constructor, or,
@@ -817,8 +813,7 @@ out: for (ClassNode sc : superTypes) {
public void visitMethodCallExpression(final MethodCallExpression mce) {
super.visitMethodCallExpression(mce);
Expression aexp = mce.getArguments();
- if (aexp instanceof TupleExpression) {
- TupleExpression arguments = (TupleExpression) aexp;
+ if (aexp instanceof TupleExpression arguments) {
for (Expression e : arguments.getExpressions()) {
checkForInvalidDeclaration(e);
}
@@ -877,8 +872,7 @@ out: for (ClassNode sc : superTypes) {
private void checkStringExceedingMaximumLength(final ConstantExpression expression) {
Object value = expression.getValue();
- if (value instanceof String) {
- String s = (String) value;
+ if (value instanceof String s) {
if (s.length() > 65535) {
addError("String too long. The given string is " + s.length() + " Unicode code units long, but only a maximum of 65535 is allowed.", expression);
}
@@ -916,11 +910,9 @@ out: for (ClassNode sc : superTypes) {
}
private static String getRefDescriptor(final ASTNode ref) {
- if (ref instanceof FieldNode) {
- FieldNode f = (FieldNode) ref;
+ if (ref instanceof FieldNode f) {
return "the field "+f.getName()+" ";
- } else if (ref instanceof PropertyNode) {
- PropertyNode p = (PropertyNode) ref;
+ } else if (ref instanceof PropertyNode p) {
return "the property "+p.getName()+" ";
} else if (ref instanceof ConstructorNode) {
return "the constructor "+ref.getText()+" ";
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
index 95d82d0c7d..4126342336 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
@@ -277,8 +277,7 @@ public class EnumVisitor extends ClassCodeVisitorSupport {
continue;
}
- if (exp instanceof ClassExpression && exp.getType() instanceof EnumConstantClassNode) {
- InnerClassNode inner = (InnerClassNode) exp.getType();
+ if (exp instanceof ClassExpression && exp.getType() instanceof EnumConstantClassNode inner) {
for (MethodNode methodNode : enumClass.getMethods()) {
if (!methodNode.isAbstract()) continue;
MethodNode enumConstMethod = inner.getMethod(methodNode.getName(), methodNode.getParameters());
diff --git a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
index 880c4ac95d..9b38699ff7 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
@@ -405,14 +405,11 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
private static void visitDeprecation(final AnnotatedNode node, final AnnotationNode visited) {
if (visited.getClassNode().isResolved() && visited.getClassNode().equals(DEPRECATED_TYPE)) {
- if (node instanceof MethodNode) {
- MethodNode mn = (MethodNode) node;
+ if (node instanceof MethodNode mn) {
mn.setModifiers(mn.getModifiers() | Opcodes.ACC_DEPRECATED);
- } else if (node instanceof FieldNode) {
- FieldNode fn = (FieldNode) node;
+ } else if (node instanceof FieldNode fn) {
fn.setModifiers(fn.getModifiers() | Opcodes.ACC_DEPRECATED);
- } else if (node instanceof ClassNode) {
- ClassNode cn = (ClassNode) node;
+ } else if (node instanceof ClassNode cn) {
cn.setModifiers(cn.getModifiers() | Opcodes.ACC_DEPRECATED);
}
}
@@ -422,9 +419,8 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
private void visitOverride(final AnnotatedNode node, final AnnotationNode visited) {
ClassNode annotationType = visited.getClassNode();
if (annotationType.isResolved() && "java.lang.Override".equals(annotationType.getName())) {
- if (node instanceof MethodNode && !Boolean.TRUE.equals(node.getNodeMetaData(Verifier.DEFAULT_PARAMETER_GENERATED))) {
+ if (node instanceof MethodNode mNode && !Boolean.TRUE.equals(node.getNodeMetaData(Verifier.DEFAULT_PARAMETER_GENERATED))) {
boolean override = false;
- MethodNode mNode = (MethodNode) node;
ClassNode cNode = mNode.getDeclaringClass();
if (mNode.hasDefaultValue()) {
List<MethodNode> variants = cNode.getDeclaredMethods(mNode.getName());
diff --git a/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java b/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
index b38bd17ffa..5276c23a00 100644
--- a/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
+++ b/src/main/java/org/codehaus/groovy/classgen/FinalVariableAnalyzer.java
@@ -179,8 +179,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
if (leftExpression instanceof Variable) {
boolean uninitialized = isDeclaration && rightExpression instanceof EmptyExpression;
recordAssignment((Variable) leftExpression, isDeclaration, uninitialized, false, expression);
- } else if (leftExpression instanceof TupleExpression) {
- TupleExpression te = (TupleExpression) leftExpression;
+ } else if (leftExpression instanceof TupleExpression te) {
for (Expression next : te.getExpressions()) {
if (next instanceof Variable) {
recordAssignment((Variable) next, isDeclaration, false, false, next);
@@ -190,13 +189,11 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
}
private void recordFinalVars(Expression leftExpression) {
- if (leftExpression instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) leftExpression;
+ if (leftExpression instanceof VariableExpression var) {
if (Modifier.isFinal(var.getModifiers())) {
declaredFinalVariables.add(var);
}
- } else if (leftExpression instanceof TupleExpression) {
- TupleExpression te = (TupleExpression) leftExpression;
+ } else if (leftExpression instanceof TupleExpression te) {
for (Expression next : te.getExpressions()) {
if (next instanceof Variable) {
declaredFinalVariables.add((Variable) next);
@@ -329,8 +326,7 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
for (int j = i; !done; j++) {
Statement branch = branches.get(j);
Statement block = branch; // default branch
- if (branch instanceof CaseStatement) {
- CaseStatement caseS = (CaseStatement) branch;
+ if (branch instanceof CaseStatement caseS) {
block = caseS.getCode();
caseS.getExpression().visit(this);
}
@@ -444,10 +440,9 @@ public class FinalVariableAnalyzer extends ClassCodeVisitorSupport {
if (block instanceof ReturnStatement || block instanceof ThrowStatement) {
return true;
}
- if (!(block instanceof BlockStatement)) {
+ if (!(block instanceof BlockStatement bs)) {
return false;
}
- BlockStatement bs = (BlockStatement) block;
if (bs.getStatements().isEmpty()) {
return false;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
index 4c7ade06d9..5cde1cc739 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassCompletionVisitor.java
@@ -115,9 +115,8 @@ public class InnerClassCompletionVisitor extends InnerClassVisitorHelper {
addDispatcherMethods(node);
}
- if (node instanceof InnerClassNode) {
+ if (node instanceof InnerClassNode innerClass) {
thisField = node.getField("this$0");
- InnerClassNode innerClass = (InnerClassNode) node;
if (innerClass.getVariableScope() == null && node.getDeclaredConstructors().isEmpty()) {
// add empty default constructor
addGeneratedConstructor(innerClass, ACC_PUBLIC, Parameter.EMPTY_ARRAY, null, null);
diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
index 0281bfc0a9..afd0ba7ac7 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
@@ -233,9 +233,8 @@ public class InnerClassVisitor extends InnerClassVisitorHelper {
boolean isStatic = innerClass.isStaticClass();
if (!isStatic) {
if (currentMethod != null) {
- if (currentMethod instanceof ConstructorNode) {
+ if (currentMethod instanceof ConstructorNode ctor) {
boolean[] precedesSuperOrThisCall = new boolean[1];
- ConstructorNode ctor = (ConstructorNode) currentMethod;
GroovyCodeVisitor visitor = new CodeVisitorSupport() {
@Override
public void visitConstructorCallExpression(ConstructorCallExpression cce) {
diff --git a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
index 2dfa8668a0..4ba9b5e6af 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
@@ -122,15 +122,13 @@ public class ReturnAdder {
return returnStatement;
}
- if (statement instanceof SynchronizedStatement) {
- SynchronizedStatement syncStatement = (SynchronizedStatement) statement;
+ if (statement instanceof SynchronizedStatement syncStatement) {
Statement code = addReturnsIfNeeded(syncStatement.getCode(), rtype, scope);
if (doAdd) syncStatement.setCode(code);
return syncStatement;
}
- if (statement instanceof IfStatement) {
- IfStatement ifElseStatement = (IfStatement) statement;
+ if (statement instanceof IfStatement ifElseStatement) {
Statement ifBlock = addReturnsIfNeeded(ifElseStatement.getIfBlock(), rtype, scope);
Statement elseBlock = addReturnsIfNeeded(ifElseStatement.getElseBlock(), rtype, scope);
if (doAdd) {
@@ -140,8 +138,7 @@ public class ReturnAdder {
return ifElseStatement;
}
- if (statement instanceof SwitchStatement) {
- SwitchStatement switchStatement = (SwitchStatement) statement;
+ if (statement instanceof SwitchStatement switchStatement) {
Statement defaultStatement = switchStatement.getDefaultStatement();
List<CaseStatement> caseStatements = switchStatement.getCaseStatements();
for (Iterator<CaseStatement> it = caseStatements.iterator(); it.hasNext(); ) {
@@ -156,8 +153,7 @@ public class ReturnAdder {
return switchStatement;
}
- if (statement instanceof TryCatchStatement) {
- TryCatchStatement tryCatchFinally = (TryCatchStatement) statement;
+ if (statement instanceof TryCatchStatement tryCatchFinally) {
boolean[] missesReturn = new boolean[1];
new ReturnAdder(returnStatement -> missesReturn[0] = true)
.addReturnsIfNeeded(tryCatchFinally.getFinallyStatement(), rtype, scope);
@@ -177,8 +173,7 @@ public class ReturnAdder {
return tryCatchFinally;
}
- if (statement instanceof BlockStatement) {
- BlockStatement blockStatement = (BlockStatement) statement;
+ if (statement instanceof BlockStatement blockStatement) {
if (blockStatement.isEmpty()) {
ReturnStatement returnStatement = new ReturnStatement(defaultValueX(rtype));
returnStatement.copyStatementLabels(blockStatement);
@@ -206,8 +201,7 @@ public class ReturnAdder {
}
private Statement adjustSwitchCaseCode(final Statement statement, final ClassNode rtype, final VariableScope scope, final boolean lastCase) {
- if (!statement.isEmpty() && statement instanceof BlockStatement) {
- BlockStatement block = (BlockStatement) statement;
+ if (!statement.isEmpty() && statement instanceof BlockStatement block) {
int breakIndex = block.getStatements().size() - 1;
if (block.getStatements().get(breakIndex) instanceof BreakStatement) {
if (doAdd) {
diff --git a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
index de8445a686..ddb524d184 100644
--- a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
@@ -355,8 +355,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
if (expression instanceof VariableExpression) {
checkForFinal.accept((VariableExpression) expression, expression);
- } else if (expression instanceof TupleExpression) {
- TupleExpression tuple = (TupleExpression) expression;
+ } else if (expression instanceof TupleExpression tuple) {
for (Expression tupleExpression : tuple.getExpressions()) {
checkForFinal.accept((VariableExpression) tupleExpression, expression);
}
@@ -371,8 +370,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
private void checkPropertyOnExplicitThis(final PropertyExpression expression) {
if (!currentScope.isInStaticContext()) return;
Expression object = expression.getObjectExpression();
- if (!(object instanceof VariableExpression)) return;
- VariableExpression ve = (VariableExpression) object;
+ if (!(object instanceof VariableExpression ve)) return;
if (!"this".equals(ve.getName())) return;
String name = expression.getPropertyAsString();
if (name == null || "class".equals(name)) return;
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index fe9758d0ab..0fcb41910d 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -740,8 +740,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
private boolean isThisObjectExpression(final MethodCallExpression mce) {
if (mce.isImplicitThis()) {
return true;
- } else if (mce.getObjectExpression() instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) mce.getObjectExpression();
+ } else if (mce.getObjectExpression() instanceof VariableExpression var) {
return var.isThisExpression() || var.isSuperExpression();
} else {
return false;
@@ -960,8 +959,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
@Override
public void visitVariableExpression(final VariableExpression e) {
- if (e.getAccessedVariable() instanceof Parameter) {
- Parameter p = (Parameter) e.getAccessedVariable();
+ if (e.getAccessedVariable() instanceof Parameter p) {
if (!Arrays.asList(params).contains(p) && Arrays.asList(method.getParameters()).contains(p)) { // GROOVY-10602
VariableScope blockScope = block.getVariableScope();
VariableExpression localVariable = (VariableExpression) blockScope.getDeclaredVariable(p.getName());
@@ -1039,10 +1037,8 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
if (argument instanceof CastExpression) {
argument = ((CastExpression) argument).getExpression();
}
- if (argument instanceof VariableExpression) {
- VariableExpression v = (VariableExpression) argument;
- if (v.getAccessedVariable() instanceof Parameter) {
- Parameter p = (Parameter) v.getAccessedVariable();
+ if (argument instanceof VariableExpression v) {
+ if (v.getAccessedVariable() instanceof Parameter p) {
if (p.getInitialExpression() instanceof ConstantExpression && !Arrays.asList(params).contains(p)){
// for simple default value, replace argument "(Type) param" with "(Type) <<param's default>>"
it.set(castX(method.getParameters()[it.nextIndex() - 1].getType(), p.getInitialExpression()));
@@ -1053,8 +1049,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
GroovyCodeVisitor visitor = new CodeVisitorSupport() {
@Override
public void visitVariableExpression(final VariableExpression e) {
- if (e.getAccessedVariable() instanceof Parameter) {
- Parameter p = (Parameter) e.getAccessedVariable();
+ if (e.getAccessedVariable() instanceof Parameter p) {
if (p.hasInitialExpression() && !Arrays.asList(params).contains(p)) {
String error = String.format(
"The generated constructor \"%s(%s)\" references parameter '%s' which has been replaced by a default value expression.",
@@ -1300,8 +1295,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
Statement stmt = it.next();
if (stmt instanceof ExpressionStatement
- && ((ExpressionStatement) stmt).getExpression() instanceof BinaryExpression) {
- BinaryExpression expr = (BinaryExpression) ((ExpressionStatement) stmt).getExpression();
+ && ((ExpressionStatement) stmt).getExpression() instanceof BinaryExpression expr) {
if (expr.getOperation().getType() == Types.ASSIGN
&& expr.getLeftExpression() instanceof FieldExpression
@@ -1334,8 +1328,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
// initialized first so that code dependent on them does not see their values as empty
Expression initialValueExpression = fieldNode.getInitialValueExpression();
Expression transformed = transformInlineConstants(initialValueExpression, fieldNode.getType());
- if (transformed instanceof ConstantExpression) {
- ConstantExpression cexp = (ConstantExpression) transformed;
+ if (transformed instanceof ConstantExpression cexp) {
cexp = transformToPrimitiveConstantIfPossible(cexp);
if (fieldNode.isFinal() && ClassHelper.isStaticConstantInitializerType(cexp.getType()) && cexp.getType().equals(fieldNode.getType())) {
fieldNode.setInitialValueExpression(transformed);
@@ -1416,8 +1409,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
}
public static long getTimestamp(final Class<?> clazz) {
- if (clazz.getClassLoader() instanceof GroovyClassLoader.InnerLoader) {
- GroovyClassLoader.InnerLoader innerLoader = (GroovyClassLoader.InnerLoader) clazz.getClassLoader();
+ if (clazz.getClassLoader() instanceof GroovyClassLoader.InnerLoader innerLoader) {
return innerLoader.getTimeStamp();
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
index c0d8ec420b..211998881e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/AssertionWriter.java
@@ -206,15 +206,12 @@ public class AssertionWriter {
}
private static void addVariableNames(final Expression expression, final List<String> list) {
- if (expression instanceof BooleanExpression) {
- BooleanExpression boolExp = (BooleanExpression) expression;
+ if (expression instanceof BooleanExpression boolExp) {
addVariableNames(boolExp.getExpression(), list);
- } else if (expression instanceof BinaryExpression) {
- BinaryExpression binExp = (BinaryExpression) expression;
+ } else if (expression instanceof BinaryExpression binExp) {
addVariableNames(binExp.getLeftExpression(), list);
addVariableNames(binExp.getRightExpression(), list);
- } else if (expression instanceof VariableExpression) {
- VariableExpression varExp = (VariableExpression) expression;
+ } else if (expression instanceof VariableExpression varExp) {
list.add(varExp.getName());
}
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java
index 3b695c59a7..e665763dec 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java
@@ -482,8 +482,7 @@ public class BinaryExpressionHelper {
Expression rhsValueLoader = new VariableSlotLoader(rhsType, rhsValueId, operandStack);
// subscript assignment
- if (leftExpression instanceof BinaryExpression) {
- var leftBinExpr = (BinaryExpression) leftExpression;
+ if (leftExpression instanceof BinaryExpression leftBinExpr) {
if (leftBinExpr.getOperation().getType() == LEFT_SQUARE_BRACKET) {
assignToArray(expression, leftBinExpr.getLeftExpression(), leftBinExpr.getRightExpression(), rhsValueLoader, leftBinExpr.isSafe());
}
@@ -740,8 +739,7 @@ public class BinaryExpressionHelper {
protected void evaluateBinaryExpressionWithAssignment(final String method, final BinaryExpression expression) {
Expression leftExpression = expression.getLeftExpression();
- if (leftExpression instanceof BinaryExpression) {
- BinaryExpression bexp = (BinaryExpression) leftExpression;
+ if (leftExpression instanceof BinaryExpression bexp) {
if (bexp.getOperation().getType() == LEFT_SQUARE_BRACKET) {
evaluateArrayAssignmentWithOperator(method, expression, bexp);
return;
@@ -877,8 +875,7 @@ public class BinaryExpressionHelper {
private VariableSlotLoader loadWithSubscript(final Expression expression) {
AsmClassGenerator acg = controller.getAcg();
// if we have a BinaryExpression, check if it is with subscription
- if (expression instanceof BinaryExpression) {
- BinaryExpression bexp = (BinaryExpression) expression;
+ if (expression instanceof BinaryExpression bexp) {
if (bexp.getOperation().getType() == LEFT_SQUARE_BRACKET) {
// right expression is the subscript expression
// we store the result of the subscription on the stack
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
index f7a9c3906f..9a98f459be 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryExpressionMultiTypeDispatcher.java
@@ -239,8 +239,7 @@ public class BinaryExpressionMultiTypeDispatcher extends BinaryExpressionHelper
private static boolean isAssignmentToArray(final BinaryExpression binExp) {
Expression leftExpression = binExp.getLeftExpression();
- if (!(leftExpression instanceof BinaryExpression)) return false;
- BinaryExpression leftBinExpr = (BinaryExpression) leftExpression;
+ if (!(leftExpression instanceof BinaryExpression leftBinExpr)) return false;
return leftBinExpr.getOperation().getType() == LEFT_SQUARE_BRACKET;
}
@@ -335,8 +334,7 @@ public class BinaryExpressionMultiTypeDispatcher extends BinaryExpressionHelper
private boolean doAssignmentToLocalVariable(final String method, final BinaryExpression binExp) {
Expression left = binExp.getLeftExpression();
- if (left instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) left;
+ if (left instanceof VariableExpression ve) {
Variable v = ve.getAccessedVariable();
if (v instanceof DynamicVariable) return false;
if (v instanceof PropertyExpression) return false;
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
index e46ba8b1ec..7b174f8209 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
@@ -106,8 +106,7 @@ public class CallSiteWriter {
public CallSiteWriter(WriterController wc) {
this.controller = wc;
ClassNode node = controller.getClassNode();
- if(node instanceof InterfaceHelperClassNode) {
- InterfaceHelperClassNode ihcn = (InterfaceHelperClassNode) node;
+ if(node instanceof InterfaceHelperClassNode ihcn) {
callSites.addAll(ihcn.getCallSites());
}
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
index 0c877f5c8d..6dc4eb0104 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/ClosureWriter.java
@@ -180,8 +180,7 @@ public class ClosureWriter {
private static boolean classNodeUsesReferences(final ClassNode classNode) {
boolean ret = classNode.getSuperClass().equals(ClassHelper.CLOSURE_TYPE);
if (ret) return ret;
- if (classNode instanceof InnerClassNode) {
- InnerClassNode inner = (InnerClassNode) classNode;
+ if (classNode instanceof InnerClassNode inner) {
return inner.isAnonymous();
}
return false;
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
index 8e576c4e2e..f928abbc49 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java
@@ -257,8 +257,7 @@ public class InvocationWriter {
}
private boolean isClassWithSuper(final Expression exp) {
- if (exp instanceof PropertyExpression) {
- PropertyExpression pexp = (PropertyExpression) exp;
+ if (exp instanceof PropertyExpression pexp) {
return pexp.getObjectExpression() instanceof ClassExpression && "super".equals(pexp.getPropertyAsString());
}
return false;
@@ -430,8 +429,7 @@ public class InvocationWriter {
* if Class.forName(x) is recognized, make a direct method call
*/
protected boolean makeClassForNameCall(final Expression origin, final Expression receiver, final Expression message, final Expression arguments) {
- if (!(receiver instanceof ClassExpression)) return false;
- ClassExpression ce = (ClassExpression) receiver;
+ if (!(receiver instanceof ClassExpression ce)) return false;
if (!ClassHelper.CLASS_Type.equals(ce.getType())) return false;
String msg = getMethodName(message);
if (!"forName".equals(msg)) return false;
@@ -452,8 +450,7 @@ public class InvocationWriter {
ArgumentListExpression ae;
if (arguments instanceof ArgumentListExpression) {
ae = (ArgumentListExpression) arguments;
- } else if (arguments instanceof TupleExpression) {
- TupleExpression te = (TupleExpression) arguments;
+ } else if (arguments instanceof TupleExpression te) {
ae = new ArgumentListExpression(te.getExpressions());
} else {
ae = new ArgumentListExpression();
@@ -464,8 +461,7 @@ public class InvocationWriter {
protected String getMethodName(final Expression message) {
String methodName = null;
- if (message instanceof CastExpression) {
- CastExpression msg = (CastExpression) message;
+ if (message instanceof CastExpression msg) {
if (isStringType(msg.getType())) {
final Expression methodExpr = msg.getExpression();
if (methodExpr instanceof ConstantExpression) {
@@ -474,8 +470,7 @@ public class InvocationWriter {
}
}
- if (methodName == null && message instanceof ConstantExpression) {
- ConstantExpression constantExpression = (ConstantExpression) message;
+ if (methodName == null && message instanceof ConstantExpression constantExpression) {
methodName = constantExpression.getText();
}
return methodName;
@@ -580,8 +575,7 @@ public class InvocationWriter {
protected void writeNormalConstructorCall(final ConstructorCallExpression call) {
Expression arguments = call.getArguments();
- if (arguments instanceof TupleExpression) {
- TupleExpression tupleExpression = (TupleExpression) arguments;
+ if (arguments instanceof TupleExpression tupleExpression) {
int size = tupleExpression.getExpressions().size();
if (size == 0) {
arguments = MethodCallExpression.NO_ARGUMENTS;
@@ -610,8 +604,7 @@ public class InvocationWriter {
int i = 0; Parameter[] params = ctor.getParameters();
for (Expression arg : args) {
Parameter p = params[Math.min(i++, params.length)];
- if (arg instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) arg;
+ if (arg instanceof VariableExpression var) {
loadVariableWithReference(var);
} else {
arg.visit(controller.getAcg());
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
index addc0d16db..a266c91a3e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/MopWriter.java
@@ -71,10 +71,9 @@ public class MopWriter {
@Override
public boolean equals(final Object obj) {
- if (!(obj instanceof MopKey)) {
+ if (!(obj instanceof MopKey other)) {
return false;
}
- MopKey other = (MopKey) obj;
return other.name.equals(name) && ParameterUtils.parametersEqual(other.params, params);
}
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
index aee1e7c598..4e90f99b0b 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
@@ -574,8 +574,7 @@ public class OperandStack {
}
public void pushDynamicName(final Expression name) {
- if (name instanceof ConstantExpression) {
- ConstantExpression ce = (ConstantExpression) name;
+ if (name instanceof ConstantExpression ce) {
Object value = ce.getValue();
if (value instanceof String) {
pushConstant(ce);
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
index 2b295d98a4..c2a60dafb5 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
@@ -369,17 +369,14 @@ public class OptimizingStatementWriter extends StatementWriter {
private boolean writeDeclarationExtraction(final Statement statement) {
Expression ex = null;
- if (statement instanceof ReturnStatement) {
- ReturnStatement rs = (ReturnStatement) statement;
+ if (statement instanceof ReturnStatement rs) {
ex = rs.getExpression();
- } else if (statement instanceof ExpressionStatement) {
- ExpressionStatement es = (ExpressionStatement) statement;
+ } else if (statement instanceof ExpressionStatement es) {
ex = es.getExpression();
} else {
throw new GroovyBugError("unknown statement type :" + statement.getClass());
}
- if (!(ex instanceof DeclarationExpression)) return true;
- DeclarationExpression declaration = (DeclarationExpression) ex;
+ if (!(ex instanceof DeclarationExpression declaration)) return true;
ex = declaration.getLeftExpression();
if (ex instanceof TupleExpression) return false;
@@ -398,11 +395,9 @@ public class OptimizingStatementWriter extends StatementWriter {
assignment.setSourcePosition(declaration);
assignment.copyNodeMetaData(declaration);
// replace statement code
- if (statement instanceof ReturnStatement) {
- ReturnStatement rs = (ReturnStatement) statement;
+ if (statement instanceof ReturnStatement rs) {
rs.setExpression(assignment);
- } else if (statement instanceof ExpressionStatement) {
- ExpressionStatement es = (ExpressionStatement) statement;
+ } else if (statement instanceof ExpressionStatement es) {
es.setExpression(assignment);
} else {
throw new GroovyBugError("unknown statement type :" + statement.getClass());
@@ -862,8 +857,7 @@ public class OptimizingStatementWriter extends StatementWriter {
* @returns null if the optimization cannot be applied, otherwise it will return the new target type
*/
private ClassNode optimizeDivWithIntOrLongTarget(final Expression rhs, final ClassNode assignmentTartgetType) {
- if (!(rhs instanceof BinaryExpression)) return null;
- BinaryExpression binExp = (BinaryExpression) rhs;
+ if (!(rhs instanceof BinaryExpression binExp)) return null;
int op = binExp.getOperation().getType();
if (op != Types.DIVIDE && op != Types.DIVIDE_EQUAL) return null;
@@ -900,8 +894,7 @@ public class OptimizingStatementWriter extends StatementWriter {
// find method call target
Parameter[] paraTypes = null;
- if (callArgs instanceof ArgumentListExpression) {
- ArgumentListExpression args = (ArgumentListExpression) callArgs;
+ if (callArgs instanceof ArgumentListExpression args) {
int size = args.getExpressions().size();
paraTypes = new Parameter[size];
int i = 0;
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java b/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
index 6cf35b31b9..4168003d2d 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
@@ -45,8 +45,7 @@ public class StatementMetaTypeChooser implements TypeChooser {
if (meta != null) type = meta.type;
if (type != null) return type;
- if (exp instanceof VariableExpression) {
- VariableExpression vexp = (VariableExpression) exp;
+ if (exp instanceof VariableExpression vexp) {
if (vexp.isClosureSharedVariable()) return vexp.getType();
if (vexp.isSuperExpression()) return current.getSuperClass();
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
index 0e8245ac5c..059f20bfc5 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
@@ -177,8 +177,7 @@ public class InvokeDynamicWriter extends InvocationWriter {
}
private Expression correctReceiverForInterfaceCall(final Expression receiver) {
- if (receiver instanceof PropertyExpression) {
- PropertyExpression pexp = (PropertyExpression) receiver;
+ if (receiver instanceof PropertyExpression pexp) {
if (pexp.getObjectExpression() instanceof ClassExpression
&& pexp.getProperty() instanceof ConstantExpression) {
String name = pexp.getProperty().getText();
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
index 914ec67217..087693aee9 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticInvocationWriter.java
@@ -260,8 +260,7 @@ public class StaticInvocationWriter extends InvocationWriter {
ClassNode enclosingClass = controller.getClassNode();
ClassNode declaringClass = target.getDeclaringClass();
- if (target instanceof ExtensionMethodNode) {
- ExtensionMethodNode emn = (ExtensionMethodNode) target;
+ if (target instanceof ExtensionMethodNode emn) {
MethodVisitor mv = controller.getMethodVisitor();
MethodNode mn = emn.getExtensionMethodNode();
Parameter[] parameters = mn.getParameters();
@@ -346,8 +345,7 @@ public class StaticInvocationWriter extends InvocationWriter {
}
private boolean isClassWithSuper(Expression receiver) {
- if (receiver instanceof PropertyExpression) {
- PropertyExpression pexp = (PropertyExpression) receiver;
+ if (receiver instanceof PropertyExpression pexp) {
return pexp.getObjectExpression() instanceof ClassExpression && "super".equals(pexp.getPropertyAsString());
}
return false;
@@ -524,8 +522,7 @@ public class StaticInvocationWriter extends InvocationWriter {
varScope.putDeclaredVariable(element);
Expression nextValue;
- if (origin instanceof MethodCallExpression) {
- MethodCallExpression oldMCE = (MethodCallExpression) origin;
+ if (origin instanceof MethodCallExpression oldMCE) {
MethodCallExpression newMCE = callX(
varX(element),
oldMCE.getMethod(),
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesBinaryExpressionMultiTypeDispatcher.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesBinaryExpressionMultiTypeDispatcher.java
index 0bf878ed4f..e139b7331b 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesBinaryExpressionMultiTypeDispatcher.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesBinaryExpressionMultiTypeDispatcher.java
@@ -141,9 +141,8 @@ public class StaticTypesBinaryExpressionMultiTypeDispatcher extends BinaryExpres
@Override
protected void evaluateBinaryExpressionWithAssignment(final String method, final BinaryExpression expression) {
Expression leftExpression = expression.getLeftExpression();
- if (leftExpression instanceof PropertyExpression
+ if (leftExpression instanceof PropertyExpression pexp
&& !(leftExpression instanceof AttributeExpression)) {
- PropertyExpression pexp = (PropertyExpression) leftExpression;
BinaryExpression expressionWithoutAssignment = binX(
leftExpression,
@@ -174,9 +173,8 @@ public class StaticTypesBinaryExpressionMultiTypeDispatcher extends BinaryExpres
@Override
public void evaluateEqual(final BinaryExpression expression, final boolean defineVariable) {
Expression leftExpression = expression.getLeftExpression();
- if (leftExpression instanceof PropertyExpression
+ if (leftExpression instanceof PropertyExpression pexp
&& !(leftExpression instanceof AttributeExpression)) {
- PropertyExpression pexp = (PropertyExpression) leftExpression;
if (!defineVariable && makeSetProperty(
pexp.getObjectExpression(),
pexp.getProperty(),
diff --git a/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java b/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
index bb1760ac67..285f551284 100644
--- a/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
@@ -51,11 +51,9 @@ public class AnnotationConstantsVisitor extends ClassCodeVisitorSupport {
protected void visitConstructorOrMethod(final MethodNode node, final boolean isConstructor) {
if (annotationDef) {
Statement statement = node.getFirstStatement();
- if (statement instanceof ReturnStatement) {
- ReturnStatement rs = (ReturnStatement) statement;
+ if (statement instanceof ReturnStatement rs) {
rs.setExpression(transformInlineConstants(rs.getExpression(), node.getReturnType()));
- } else if (statement instanceof ExpressionStatement) {
- ExpressionStatement es = (ExpressionStatement) statement;
+ } else if (statement instanceof ExpressionStatement es) {
es.setExpression(transformInlineConstants(es.getExpression(), node.getReturnType()));
}
}
diff --git a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
index 471c79eb05..7912e5c18a 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilationUnit.java
@@ -943,8 +943,7 @@ public class CompilationUnit extends ProcessingUnit {
if (errorCollector != null) {
unit.getErrorCollector().addCollectorContents(errorCollector);
} else {
- if (e instanceof GroovyRuntimeException) {
- GroovyRuntimeException gre = (GroovyRuntimeException) e;
+ if (e instanceof GroovyRuntimeException gre) {
context = Optional.ofNullable(gre.getModule()).map(ModuleNode::getContext).orElse(context);
}
if (context != null) {
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index 8e3a08716f..f223cb6521 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -512,11 +512,10 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
// a static inner class, because at least one dot is
// required for this. Example: foo.bar -> foo$bar
if (!(type instanceof LowerCaseClass || type instanceof ConstructedNestedClass)) {
- if (type instanceof ConstructedClassWithPackage) {
+ if (type instanceof ConstructedClassWithPackage tmp) {
// we replace '.' only in the className part
// with '$' to find an inner class. The case that
// the package is really a class is handled elsewhere
- ConstructedClassWithPackage tmp = (ConstructedClassWithPackage) type;
String savedName = tmp.className;
tmp.className = replaceLastPointWithDollar(savedName);
if (resolve(tmp, false, true, true)) {
@@ -833,8 +832,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
StringBuilder name = new StringBuilder(32);
// this loop builds a name from right to left each name part separated by "."
for (Expression expr = pe; expr != null && name != null; expr = ((PropertyExpression) expr).getObjectExpression()) {
- if (expr instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) expr;
+ if (expr instanceof VariableExpression ve) {
// stop at super and this
if (ve.isSuperExpression() || ve.isThisExpression()) {
return null;
@@ -1069,8 +1067,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
protected Expression transformBinaryExpression(final BinaryExpression be) {
Expression left = transform(be.getLeftExpression());
- if (be.getOperation().isA(Types.ASSIGNMENT_OPERATOR) && left instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) left;
+ if (be.getOperation().isA(Types.ASSIGNMENT_OPERATOR) && left instanceof ClassExpression ce) {
String error = "you tried to assign a value to the class '" + ce.getType().getName() + "'";
if (ce.getType().isScript()) {
error += ". Do you have a script with this name?";
@@ -1080,8 +1077,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
}
if (left instanceof ClassExpression && be.getOperation().isOneOf(
new int[]{Types.ARRAY_EXPRESSION, Types.SYNTH_LIST, Types.SYNTH_MAP})) {
- if (be.getRightExpression() instanceof ListExpression) {
- ListExpression list = (ListExpression) be.getRightExpression();
+ if (be.getRightExpression() instanceof ListExpression list) {
if (list.getExpressions().isEmpty()) {
return new ClassExpression(left.getType().makeArray());
} else {
@@ -1103,9 +1099,8 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
return CastExpression.asExpression(left.getType(), me);
}
}
- } else if (be.getRightExpression() instanceof SpreadMapExpression) {
+ } else if (be.getRightExpression() instanceof SpreadMapExpression mapExpression) {
// we have C[*:map] -> should become (C) map
- SpreadMapExpression mapExpression = (SpreadMapExpression) be.getRightExpression();
Expression right = transform(mapExpression.getExpression());
return CastExpression.asExpression(left.getType(), right);
}
@@ -1181,8 +1176,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
checkingVariableTypeInDeclaration = true;
Expression left = transform(oldLeft);
checkingVariableTypeInDeclaration = false;
- if (left instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) left;
+ if (left instanceof ClassExpression ce) {
addError("you tried to assign a value to the class " + ce.getType().getName(), oldLeft);
return de;
}
@@ -1236,13 +1230,11 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
}
private void checkAnnotationMemberValue(final Expression value) {
- if (value instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) value;
+ if (value instanceof PropertyExpression pe) {
if (!(pe.getObjectExpression() instanceof ClassExpression)) {
addError("unable to find class '" + pe.getText() + "' for annotation attribute constant", pe.getObjectExpression());
}
- } else if (value instanceof ListExpression) {
- ListExpression le = (ListExpression) value;
+ } else if (value instanceof ListExpression le) {
for (Expression e : le.getExpressions()) {
checkAnnotationMemberValue(e);
}
diff --git a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
index dc4dd8e96f..f167f95690 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
@@ -156,10 +156,9 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
}
if (inAnnotation && exp instanceof AnnotationConstantExpression) {
ConstantExpression ce = (ConstantExpression) result;
- if (ce.getValue() instanceof AnnotationNode) {
+ if (ce.getValue() instanceof AnnotationNode an) {
// replicate a little bit of AnnotationVisitor here
// because we can't wait until later to do this
- AnnotationNode an = (AnnotationNode) ce.getValue();
Map<String, Expression> attributes = an.getMembers();
for (Map.Entry<String, Expression> entry : attributes.entrySet()) {
Expression attrExpr = transform(entry.getValue());
@@ -208,8 +207,7 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
inLeftExpression = true;
left = transform(be.getLeftExpression());
inLeftExpression = oldInLeftExpression;
- if (left instanceof StaticMethodCallExpression) {
- StaticMethodCallExpression smce = (StaticMethodCallExpression) left;
+ if (left instanceof StaticMethodCallExpression smce) {
StaticMethodCallExpression result = new StaticMethodCallExpression(smce.getOwnerType(), smce.getMethod(), right);
result.copyNodeMetaData(smce);
setSourcePosition(result, be);
@@ -233,9 +231,8 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
}
return result;
}
- } else if (v instanceof FieldNode) {
+ } else if (v instanceof FieldNode fn) {
if (inSpecialConstructorCall) { // GROOVY-8819
- FieldNode fn = (FieldNode) v;
ClassNode declaringClass = fn.getDeclaringClass();
if (fn.isStatic() && currentClass.isDerivedFrom(declaringClass)) {
Expression result = new PropertyExpression(new ClassExpression(declaringClass), v.getName());
@@ -323,12 +320,10 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
protected Expression transformConstructorCallExpression(ConstructorCallExpression cce) {
inSpecialConstructorCall = cce.isSpecialCall();
Expression expression = cce.getArguments();
- if (expression instanceof TupleExpression) {
- TupleExpression tuple = (TupleExpression) expression;
+ if (expression instanceof TupleExpression tuple) {
if (tuple.getExpressions().size() == 1) {
expression = tuple.getExpression(0);
- if (expression instanceof NamedArgumentListExpression) {
- NamedArgumentListExpression namedArgs = (NamedArgumentListExpression) expression;
+ if (expression instanceof NamedArgumentListExpression namedArgs) {
List<MapEntryExpression> entryExpressions = namedArgs.getMapEntryExpressions();
entryExpressions.replaceAll(me -> (MapEntryExpression) transformMapEntryExpression(me, cce.getType()));
}
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
index 811cdf17cb..7133df5839 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
@@ -1100,19 +1100,16 @@ public class SecureASTCustomizer extends CompilationCustomizer {
try {
if (expression instanceof ConstructorCallExpression) {
assertImportIsAllowed(expression.getType().getName());
- } else if (expression instanceof MethodCallExpression) {
- MethodCallExpression expr = (MethodCallExpression) expression;
+ } else if (expression instanceof MethodCallExpression expr) {
ClassNode objectExpressionType = expr.getObjectExpression().getType();
final String typename = getExpressionType(objectExpressionType).getName();
assertImportIsAllowed(typename);
assertStaticImportIsAllowed(expr.getMethodAsString(), typename);
- } else if (expression instanceof StaticMethodCallExpression) {
- StaticMethodCallExpression expr = (StaticMethodCallExpression) expression;
+ } else if (expression instanceof StaticMethodCallExpression expr) {
final String typename = expr.getOwnerType().getName();
assertImportIsAllowed(typename);
assertStaticImportIsAllowed(expr.getMethod(), typename);
- } else if (expression instanceof MethodPointerExpression) {
- MethodPointerExpression expr = (MethodPointerExpression) expression;
+ } else if (expression instanceof MethodPointerExpression expr) {
final String typename = expr.getType().getName();
assertImportIsAllowed(typename);
assertStaticImportIsAllowed(expr.getText(), typename);
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
index 37124423b3..52eefb283e 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SourceAwareCustomizer.java
@@ -54,8 +54,7 @@ public class SourceAwareCustomizer extends DelegatingCustomizer {
public void call(final SourceUnit source, final GeneratorContext context, final ClassNode classNode) throws CompilationFailedException {
String fileName = source.getName();
ReaderSource reader = source.getSource();
- if (reader instanceof FileReaderSource) {
- FileReaderSource file = (FileReaderSource) reader;
+ if (reader instanceof FileReaderSource file) {
fileName = file.getFile().getName();
}
if (acceptSource(source) && acceptClass(classNode) && accept(fileName)) {
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
index 4de7ded47c..556f2e370b 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
@@ -69,8 +69,7 @@ public class InlinedASTCustomizerFactory extends AbstractFactory implements Post
@Override
public Object postCompleteNode(final FactoryBuilderSupport factory, final Object parent, final Object node) {
- if (node instanceof Map) {
- Map map = (Map) node;
+ if (node instanceof Map map) {
ProxyGeneratorAdapter adapter = new ProxyGeneratorAdapter(
map,
map.containsKey("superClass")?(Class)map.get("superClass"):CompilationCustomizer.class,
diff --git a/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java b/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
index c4ff96b99e..997c0142fb 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
@@ -48,8 +48,7 @@ public class LocatedMessage extends SimpleMessage {
@Override
public void write(PrintWriter writer, Janitor janitor) {
- if (owner instanceof SourceUnit) {
- SourceUnit source = (SourceUnit) owner;
+ if (owner instanceof SourceUnit source) {
String name = source.getName();
int line = context.getStartLine();
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
index 2dbe6cf8a3..5153e6e739 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
@@ -388,11 +388,9 @@ public class CachedClass {
}
private void addSubclassExpandos(List<MetaMethod> arr, MetaClass mc) {
- if (mc instanceof ExpandoMetaClass) {
- ExpandoMetaClass emc = (ExpandoMetaClass) mc;
+ if (mc instanceof ExpandoMetaClass emc) {
for (Object mm : emc.getExpandoSubclassMethods()) {
- if (mm instanceof MetaMethod) {
- MetaMethod method = (MetaMethod) mm;
+ if (mm instanceof MetaMethod method) {
if (method.getDeclaringClass() == this)
arr.add(method);
}
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
index af291f48f3..a80294f845 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
@@ -37,8 +37,7 @@ public class ArrayCachedClass extends CachedClass {
Class paramComponent = getTheClass().getComponentType();
if (paramComponent.isPrimitive()) {
argument = DefaultTypeTransformation.convertToPrimitiveArray(argument, paramComponent);
- } else if (paramComponent == String.class && argument instanceof GString[]) {
- GString[] strings = (GString[]) argument;
+ } else if (paramComponent == String.class && argument instanceof GString[] strings) {
String[] ret = new String[strings.length];
for (int i = 0; i < strings.length; i++) {
ret[i] = strings[i].toString();
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 1ab3a5fa6c..b9b2e348ac 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -1399,8 +1399,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
}
catch (GroovyCastException e) {
MetaClass mc = InvokerHelper.getMetaClass(obj);
- if (mc instanceof ExpandoMetaClass) {
- ExpandoMetaClass emc = (ExpandoMetaClass) mc;
+ if (mc instanceof ExpandoMetaClass emc) {
Object mixedIn = emc.castToMixedType(obj, type);
if (mixedIn != null)
return (T) mixedIn;
@@ -2912,8 +2911,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
@SuppressWarnings({"rawtypes"})
private static Map.Entry getEntry(Object entrySpec) {
- if (entrySpec instanceof List) {
- var list = (List) entrySpec;
+ if (entrySpec instanceof List list) {
// def (key, value) == list
Object key = list.isEmpty() ? null : list.get(0);
Object value = list.size() <= 1 ? null : list.get(1);
@@ -3292,8 +3290,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
@SuppressWarnings("unchecked")
public static <C extends Collection> C collectNested(Iterable self, C collector, Closure transform) {
for (Object element : self) {
- if (element instanceof Collection) {
- Collection c = (Collection) element;
+ if (element instanceof Collection c) {
collector.add(collectNested(c, createSimilarCollection(collector, c.size()), transform));
} else {
collector.add(transform.call(element));
@@ -4013,9 +4010,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
* @since 1.0
*/
public static void downto(BigInteger self, Number to, @ClosureParams(FirstParam.class) Closure closure) {
- if (to instanceof BigDecimal) {
+ if (to instanceof BigDecimal to1) {
final BigDecimal one = BigDecimal.valueOf(10, 1); // That's what you get for "1.0".
- final BigDecimal to1 = (BigDecimal) to;
final BigDecimal selfD = new BigDecimal(self);
if (selfD.compareTo(to1) >= 0) {
for (BigDecimal i = selfD; i.compareTo(to1) >= 0; i = i.subtract(one)) {
@@ -4026,9 +4022,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
MessageFormat.format(
"The argument ({0}) to downto() cannot be greater than the value ({1}) it''s called on.",
to, self));
- } else if (to instanceof BigInteger) {
+ } else if (to instanceof BigInteger to1) {
final BigInteger one = BigInteger.valueOf(1);
- final BigInteger to1 = (BigInteger) to;
if (self.compareTo(to1) >= 0) {
for (BigInteger i = self; i.compareTo(to1) >= 0; i = i.subtract(one)) {
closure.call(i);
@@ -4070,8 +4065,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
*/
public static void downto(BigDecimal self, Number to, @ClosureParams(FirstParam.class) Closure closure) {
final BigDecimal one = BigDecimal.valueOf(10, 1); // Quick way to get "1.0".
- if (to instanceof BigDecimal) {
- BigDecimal to1 = (BigDecimal) to;
+ if (to instanceof BigDecimal to1) {
if (self.compareTo(to1) >= 0) {
for (BigDecimal i = self; i.compareTo(to1) >= 0; i = i.subtract(one)) {
closure.call(i);
@@ -6703,8 +6697,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
continue outer;
} else {
Object flattened = next;
- if (flattened instanceof Optional && flattenOptionals) {
- Optional<?> opt = (Optional<?>) flattened;
+ if (flattened instanceof Optional<?> opt && flattenOptionals) {
if (opt.isPresent()) {
flattened = opt.get();
} else {
@@ -6713,8 +6706,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
}
if (flattenUsing != null) {
Object transformed = flattenUsing.call(new Object[]{flattened});
- if (transformed instanceof Optional && flattenOptionals) {
- Optional<?> opt = (Optional<?>) transformed;
+ if (transformed instanceof Optional<?> opt && flattenOptionals) {
if (opt.isPresent()) {
transformed = opt.get();
} else {
@@ -6723,8 +6715,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
}
// handle some simple recursive cases to avoid infinite loop
boolean returnedSelf = (flattened == transformed);
- if (!returnedSelf && transformed instanceof Collection) {
- Collection<?> c = (Collection<?>) transformed;
+ if (!returnedSelf && transformed instanceof Collection<?> c) {
if (!c.isEmpty() && head(c) == transformed) {
returnedSelf = true;
}
@@ -8373,8 +8364,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
throw new NoSuchElementException("Cannot access init() for an empty Iterable");
}
Collection<T> result;
- if (self instanceof Collection) {
- Collection<T> selfCol = (Collection<T>) self;
+ if (self instanceof Collection<T> selfCol) {
result = createSimilarCollection(selfCol, selfCol.size() - 1);
} else {
result = new ArrayList<>();
@@ -9449,8 +9439,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
*/
@SuppressWarnings("unchecked")
public static boolean isCase(Class caseValue, Object switchValue) {
- if (switchValue instanceof Class) {
- Class val = (Class) switchValue;
+ if (switchValue instanceof Class val) {
return caseValue.isAssignableFrom(val);
}
return caseValue.isInstance(switchValue);
@@ -12403,8 +12392,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
RangeInfo info = subListBorders(self.size(), range);
List sublist = self.subList(info.from, info.to);
sublist.clear();
- if (value instanceof Collection) {
- Collection col = (Collection) value;
+ if (value instanceof Collection col) {
if (col.isEmpty()) return;
sublist.addAll(col);
} else {
@@ -17273,10 +17261,9 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
* @since 1.0
*/
public static void upto(BigInteger self, Number to, @ClosureParams(FirstParam.class) Closure closure) {
- if (to instanceof BigDecimal) {
+ if (to instanceof BigDecimal to1) {
final BigDecimal one = BigDecimal.valueOf(10, 1);
BigDecimal self1 = new BigDecimal(self);
- BigDecimal to1 = (BigDecimal) to;
if (self1.compareTo(to1) <= 0) {
for (BigDecimal i = self1; i.compareTo(to1) <= 0; i = i.add(one)) {
closure.call(i);
@@ -17286,9 +17273,8 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
MessageFormat.format(
"The argument ({0}) to upto() cannot be less than the value ({1}) it''s called on.",
to, self));
- } else if (to instanceof BigInteger) {
+ } else if (to instanceof BigInteger to1) {
final BigInteger one = BigInteger.valueOf(1);
- BigInteger to1 = (BigInteger) to;
if (self.compareTo(to1) <= 0) {
for (BigInteger i = self; i.compareTo(to1) <= 0; i = i.add(one)) {
closure.call(i);
@@ -17326,8 +17312,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
*/
public static void upto(BigDecimal self, Number to, @ClosureParams(FirstParam.class) Closure closure) {
final BigDecimal one = BigDecimal.valueOf(10, 1); // That's what you get for "1.0".
- if (to instanceof BigDecimal) {
- BigDecimal to1 = (BigDecimal) to;
+ if (to instanceof BigDecimal to1) {
if (self.compareTo(to1) <= 0) {
for (BigDecimal i = self; i.compareTo(to1) <= 0; i = i.add(one)) {
closure.call(i);
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
index 2afe3496ef..f0bf346138 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport.java
@@ -297,8 +297,7 @@ public class DefaultGroovyMethodsSupport {
}
protected static <T> Queue<T> createSimilarQueue(Queue<T> orig) {
- if (orig instanceof ArrayBlockingQueue) {
- ArrayBlockingQueue<T> queue = (ArrayBlockingQueue<T>) orig;
+ if (orig instanceof ArrayBlockingQueue<T> queue) {
return new ArrayBlockingQueue<>(queue.size() + queue.remainingCapacity());
} else if (orig instanceof ArrayDeque) {
return new ArrayDeque<>();
diff --git a/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java b/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java
index aeaa4d420a..30f8d7d3a4 100644
--- a/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/FormatHelper.java
@@ -160,8 +160,7 @@ public class FormatHelper {
// other primitives
return formatCollection(DefaultTypeTransformation.arrayAsCollection(arguments), inspect, escapeBackslashes, maxSize, safe);
}
- if (arguments instanceof Range) {
- Range range = (Range) arguments;
+ if (arguments instanceof Range range) {
try {
if (inspect) {
return range.inspect();
@@ -489,8 +488,7 @@ public class FormatHelper {
out.write(toMapString((Map) object));
} else if (object instanceof Collection) {
out.write(toListString((Collection) object));
- } else if (object instanceof Writable) {
- Writable writable = (Writable) object;
+ } else if (object instanceof Writable writable) {
writable.writeTo(out);
} else if (object instanceof InputStream || object instanceof Reader) {
// Copy stream to stream
@@ -524,8 +522,7 @@ public class FormatHelper {
out.append(toMapString((Map) object));
} else if (object instanceof Collection) {
out.append(toListString((Collection) object));
- } else if (object instanceof Writable) {
- Writable writable = (Writable) object;
+ } else if (object instanceof Writable writable) {
Writer stringWriter = new StringBuilderWriter();
writable.writeTo(stringWriter);
out.append(stringWriter.toString());
diff --git a/src/main/java/org/codehaus/groovy/runtime/GStringUtil.java b/src/main/java/org/codehaus/groovy/runtime/GStringUtil.java
index 6742d83e5d..19d4abb3fb 100644
--- a/src/main/java/org/codehaus/groovy/runtime/GStringUtil.java
+++ b/src/main/java/org/codehaus/groovy/runtime/GStringUtil.java
@@ -81,8 +81,7 @@ public final class GStringUtil {
if (i < numberOfValues) {
final Object value = vs[i];
- if (value instanceof Closure) {
- final Closure c = (Closure) value;
+ if (value instanceof Closure c) {
int maximumNumberOfParameters = c.getMaximumNumberOfParameters();
if (maximumNumberOfParameters == 0) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java b/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
index a5ef820bbb..21ac0b9ad3 100644
--- a/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
@@ -63,8 +63,7 @@ public class HandleMetaClass extends DelegatingMetaClass {
if (object != NONE) {
final MetaClass metaClass = delegate;
delegate = new ExpandoMetaClass(delegate.getTheClass(), false, true);
- if (metaClass instanceof ExpandoMetaClass) {
- ExpandoMetaClass emc = (ExpandoMetaClass) metaClass;
+ if (metaClass instanceof ExpandoMetaClass emc) {
for (MetaMethod method : emc.getExpandoMethods())
((ExpandoMetaClass)delegate).registerInstanceMethod(method);
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
index e104966b6d..4cc24f1a20 100644
--- a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
@@ -646,8 +646,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
* @since 1.0
*/
public static String readLine(Reader self) throws IOException {
- if (self instanceof BufferedReader) {
- BufferedReader br = (BufferedReader) self;
+ if (self instanceof BufferedReader br) {
return br.readLine();
}
if (self.markSupported()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index 847542da48..4e62ba91ef 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -114,8 +114,7 @@ public class InvokerHelper {
if (value.getClass().isArray()) {
return Arrays.asList((Object[]) value);
}
- if (value instanceof Enumeration) {
- Enumeration e = (Enumeration) value;
+ if (value instanceof Enumeration e) {
List answer = new ArrayList();
while (e.hasMoreElements()) {
answer.add(e.nextElement());
@@ -159,11 +158,9 @@ public class InvokerHelper {
object = NullObject.getNullObject();
}
- if (object instanceof GroovyObject) {
- GroovyObject pogo = (GroovyObject) object;
+ if (object instanceof GroovyObject pogo) {
return pogo.getProperty(property);
- } else if (object instanceof Class) {
- Class c = (Class) object;
+ } else if (object instanceof Class c) {
return metaRegistry.getMetaClass(c).getProperty(object, property);
} else {
return ((MetaClassRegistryImpl) metaRegistry).getMetaClass(object).getProperty(object, property);
@@ -182,8 +179,7 @@ public class InvokerHelper {
object = NullObject.getNullObject();
}
- if (object instanceof GroovyObject) {
- GroovyObject pogo = (GroovyObject) object;
+ if (object instanceof GroovyObject pogo) {
pogo.setProperty(property, newValue);
} else if (object instanceof Class) {
metaRegistry.getMetaClass((Class) object).setProperty(object, property, newValue);
@@ -234,12 +230,10 @@ public class InvokerHelper {
}
public static Object unaryMinus(Object value) {
- if (value instanceof Integer) {
- Integer number = (Integer) value;
+ if (value instanceof Integer number) {
return -number;
}
- if (value instanceof Long) {
- Long number = (Long) value;
+ if (value instanceof Long number) {
return -number;
}
if (value instanceof BigInteger) {
@@ -248,20 +242,16 @@ public class InvokerHelper {
if (value instanceof BigDecimal) {
return ((BigDecimal) value).negate();
}
- if (value instanceof Double) {
- Double number = (Double) value;
+ if (value instanceof Double number) {
return -number;
}
- if (value instanceof Float) {
- Float number = (Float) value;
+ if (value instanceof Float number) {
return -number;
}
- if (value instanceof Short) {
- Short number = (Short) value;
+ if (value instanceof Short number) {
return (short) -number;
}
- if (value instanceof Byte) {
- Byte number = (Byte) value;
+ if (value instanceof Byte number) {
return (byte) -number;
}
if (value instanceof ArrayList) {
@@ -313,8 +303,7 @@ public class InvokerHelper {
String regexToCompareTo;
if (right instanceof String) {
regexToCompareTo = (String) right;
- } else if (right instanceof Pattern) {
- Pattern pattern = (Pattern) right;
+ } else if (right instanceof Pattern pattern) {
return pattern.matcher(stringToCompare);
} else {
regexToCompareTo = FormatHelper.toString(right);
@@ -386,8 +375,7 @@ public class InvokerHelper {
Map answer = new LinkedHashMap(initialCapacity(values.length / 2));
for (int i = 0, n = values.length; i < n - 1; ) {
- if ((values[i] instanceof SpreadMap) && (values[i + 1] instanceof Map)) {
- Map smap = (Map) values[i + 1];
+ if ((values[i] instanceof SpreadMap) && (values[i + 1] instanceof Map smap)) {
for (Object e : smap.entrySet()) {
Map.Entry entry = (Map.Entry) e;
answer.put(entry.getKey(), entry.getValue());
@@ -546,12 +534,10 @@ public class InvokerHelper {
return createRange(from, to, false, !inclusive);
}
public static Object bitwiseNegate(Object value) {
- if (value instanceof Integer) {
- Integer number = (Integer) value;
+ if (value instanceof Integer number) {
return ~number;
}
- if (value instanceof Long) {
- Long number = (Long) value;
+ if (value instanceof Long number) {
return ~number;
}
if (value instanceof BigInteger) {
@@ -603,8 +589,7 @@ public class InvokerHelper {
}
// if the object is a Class, call a static method from that class
- if (object instanceof Class) {
- Class<?> theClass = (Class<?>) object;
+ if (object instanceof Class<?> theClass) {
MetaClass metaClass = metaRegistry.getMetaClass(theClass);
return metaClass.invokeStaticMethod(object, methodName, asArray(arguments));
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
index acd9ca8969..57c6a33557 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
@@ -910,8 +910,7 @@ public class MetaClassHelper {
private static Class getClassWithNullAndWrapper(Object arg) {
if (arg == null) return null;
- if (arg instanceof Wrapper) {
- Wrapper w = (Wrapper) arg;
+ if (arg instanceof Wrapper w) {
return w.getType();
}
return arg.getClass();
diff --git a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
index 0bdb5d7265..8f4cde2421 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
@@ -64,13 +64,11 @@ public class ScriptBytecodeAdapter {
// --------------------------------------------------------
public static Throwable unwrap(GroovyRuntimeException gre) {
if (gre.getCause() == null) {
- if (gre instanceof MissingPropertyExceptionNoStack) {
- MissingPropertyExceptionNoStack noStack = (MissingPropertyExceptionNoStack) gre;
+ if (gre instanceof MissingPropertyExceptionNoStack noStack) {
return new MissingPropertyException(noStack.getProperty(), noStack.getType());
}
- if (gre instanceof MissingMethodExceptionNoStack) {
- MissingMethodExceptionNoStack noStack = (MissingMethodExceptionNoStack) gre;
+ if (gre instanceof MissingMethodExceptionNoStack noStack) {
return new MissingMethodException(noStack.getMethod(), noStack.getType(), noStack.getArguments(), noStack.isStatic());
}
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java
index cecdac3785..1db7d5d7f2 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteArray.java
@@ -117,8 +117,7 @@ public final class CallSiteArray {
private static CallSite createPojoSite(CallSite callSite, Object receiver, Object[] args) {
final Class klazz = receiver.getClass();
MetaClass metaClass = InvokerHelper.getMetaClass(receiver);
- if (!GroovyCategorySupport.hasCategoryInCurrentThread() && metaClass instanceof MetaClassImpl) {
- final MetaClassImpl mci = (MetaClassImpl) metaClass;
+ if (!GroovyCategorySupport.hasCategoryInCurrentThread() && metaClass instanceof MetaClassImpl mci) {
final ClassInfo info = mci.getTheCachedClass().classInfo;
if (info.hasPerInstanceMetaClasses()) {
return new PerInstancePojoMetaClassSite(callSite, info);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
index ce9132f868..b54c508daf 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class BooleanArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof boolean[] && arg instanceof Integer)
+ if ((receiver instanceof boolean[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final boolean[] objects = (boolean[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
index eea5fd6c38..354fc0646f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
@@ -56,9 +56,8 @@ public class BooleanArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof boolean[] && args[0] instanceof Integer && args[1] instanceof Boolean)
+ if ((receiver instanceof boolean[] objects && args[0] instanceof Integer && args[1] instanceof Boolean)
&& checkPojoMetaClass()) {
- final boolean[] objects = (boolean[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Boolean) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
index 6d1f028889..745655e7fb 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class ByteArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof byte[] && arg instanceof Integer)
+ if ((receiver instanceof byte[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final byte[] objects = (byte[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
index 8952f1658f..df45a3c903 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
@@ -60,9 +60,8 @@ public class ByteArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof byte[] && args[0] instanceof Integer && args[1] instanceof Byte)
+ if ((receiver instanceof byte[] objects && args[0] instanceof Integer && args[1] instanceof Byte)
&& checkPojoMetaClass()) {
- final byte[] objects = (byte[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Byte) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
index 03389270a0..ae58933352 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class CharacterArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof char[] && arg instanceof Integer)
+ if ((receiver instanceof char[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final char[] objects = (char[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
index c8c122a6ec..7e3eee262c 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
@@ -57,9 +57,8 @@ public class CharacterArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof char[] && args[0] instanceof Integer && args[1] instanceof Character)
+ if ((receiver instanceof char[] objects && args[0] instanceof Integer && args[1] instanceof Character)
&& checkPojoMetaClass()) {
- final char[] objects = (char[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Character) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
index 0e1014d912..4ae556f940 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class DoubleArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof double[] && arg instanceof Integer)
+ if ((receiver instanceof double[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final double[] objects = (double[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
index 95cebd9beb..469a3912fa 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
@@ -68,9 +68,8 @@ public class DoubleArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof double[] && args[0] instanceof Integer && args[1] instanceof Double)
+ if ((receiver instanceof double[] objects && args[0] instanceof Integer && args[1] instanceof Double)
&& checkPojoMetaClass()) {
- final double[] objects = (double[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Double) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
index ff5badb50b..64df6517a0 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class FloatArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof float[] && arg instanceof Integer)
+ if ((receiver instanceof float[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final float[] objects = (float[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
index 428b7a82da..97bbfe2569 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
@@ -68,9 +68,8 @@ public class FloatArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof float[] && args[0] instanceof Integer && args[1] instanceof Float)
+ if ((receiver instanceof float[] objects && args[0] instanceof Integer && args[1] instanceof Float)
&& checkPojoMetaClass()) {
- final float[] objects = (float[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Float) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
index 0863753f7d..07e6f01445 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class IntegerArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof int[] && arg instanceof Integer)
+ if ((receiver instanceof int[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final int[] objects = (int[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
index c8353c6b1a..144f386153 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
@@ -68,9 +68,8 @@ public class IntegerArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof int[] && args[0] instanceof Integer && args[1] instanceof Integer)
+ if ((receiver instanceof int[] objects && args[0] instanceof Integer && args[1] instanceof Integer)
&& checkPojoMetaClass()) {
- final int[] objects = (int[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Integer) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
index 231a9d887f..9ab8194e95 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class LongArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof long[] && arg instanceof Integer)
+ if ((receiver instanceof long[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final long[] objects = (long[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
index 112cdadfe4..350b2bb304 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
@@ -68,9 +68,8 @@ public class LongArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof long[] && args[0] instanceof Integer && args[1] instanceof Long)
+ if ((receiver instanceof long[] objects && args[0] instanceof Integer && args[1] instanceof Long)
&& checkPojoMetaClass()) {
- final long[] objects = (long[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Long) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
index c3e623483a..ee80bbbdc8 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
@@ -59,9 +59,8 @@ public class ShortArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
@Override
public Object call(Object receiver, Object arg) throws Throwable {
- if ((receiver instanceof short[] && arg instanceof Integer)
+ if ((receiver instanceof short[] objects && arg instanceof Integer)
&& checkPojoMetaClass()) {
- final short[] objects = (short[]) receiver;
return objects[normaliseIndex((Integer) arg, objects.length)];
} else
return super.call(receiver, arg);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
index 295645e64f..bb3bdc9965 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
@@ -68,9 +68,8 @@ public class ShortArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
@Override
public Object call(Object receiver, Object[] args) throws Throwable {
- if ((receiver instanceof short[] && args[0] instanceof Integer && args[1] instanceof Short)
+ if ((receiver instanceof short[] objects && args[0] instanceof Integer && args[1] instanceof Short)
&& checkPojoMetaClass()) {
- final short[] objects = (short[]) receiver;
objects[normaliseIndex((Integer) args[0], objects.length)] = (Short) args[1];
return null;
} else
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
index 479c6b20e9..62140826cc 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaClass.java
@@ -196,8 +196,8 @@ public final class ClosureMetaClass extends MetaClassImpl {
return null;
}
- if (delegate instanceof Class) {
- for (var type = (Class<?>) delegate; type != Object.class && type != null; type = type.getSuperclass()) {
+ if (delegate instanceof Class<?> type) {
+ for (; type != Object.class && type != null; type = type.getSuperclass()) {
MetaMethod method = registry.getMetaClass(type).getStaticMetaMethod(methodName, argClasses);
if (method != null) {
return method;
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
index 91fdea6236..f16b136e9f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ConcurrentReaderHashMap.java
@@ -663,7 +663,7 @@ public class ConcurrentReaderHashMap
count--;
Entry head = e.next;
- for (Entry p = first; p != e; p = p.next)
+ for (Entry p = first; p != e; p = p.next)
head = new Entry(p.hash, p.key, p.value, head);
tab[index] = head;
@@ -693,7 +693,7 @@ public class ConcurrentReaderHashMap
e.value = null;
count--;
Entry head = e.next;
- for (Entry p = first; p != e; p = p.next)
+ for (Entry p = first; p != e; p = p.next)
head = new Entry(p.hash, p.key, p.value, head);
tab[index] = head;
@@ -964,10 +964,9 @@ public class ConcurrentReaderHashMap
}
@Override
public boolean contains(Object o) {
- if (!(o instanceof Map.Entry))
+ if (!(o instanceof Map.Entry entry))
return false;
- Map.Entry entry = (Map.Entry)o;
- Object v = ConcurrentReaderHashMap.this.get(entry.getKey());
+ Object v = ConcurrentReaderHashMap.this.get(entry.getKey());
return v != null && v.equals(entry.getValue());
}
@Override
@@ -1117,10 +1116,9 @@ public class ConcurrentReaderHashMap
@Override
public boolean equals(Object o) {
- if (!(o instanceof Map.Entry))
+ if (!(o instanceof Map.Entry e))
return false;
- Map.Entry e = (Map.Entry)o;
- return (key.equals(e.getKey()) && value.equals(e.getValue()));
+ return (key.equals(e.getKey()) && value.equals(e.getValue()));
}
@Override
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
index 99de9e2fb3..983baacc44 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MetaMethodIndex.java
@@ -118,8 +118,7 @@ public class MetaMethodIndex {
private void copyNonPrivateMethods(final Cache from, final Map<String, Cache> to) {
var fastArrayOrMetaMethod = from.methods;
- if (fastArrayOrMetaMethod instanceof FastArray) {
- FastArray fastArray = (FastArray) fastArrayOrMetaMethod;
+ if (fastArrayOrMetaMethod instanceof FastArray fastArray) {
Cache e = null;
final int n = fastArray.size();
Object[] array = fastArray.getArray();
@@ -148,8 +147,7 @@ public class MetaMethodIndex {
private void copyNonPrivateNonNewMetaMethods(final Cache from, final Map<String, Cache> to) {
var fastArrayOrMetaMethod = from.methods;
- if (fastArrayOrMetaMethod instanceof FastArray) {
- FastArray fastArray = (FastArray) fastArrayOrMetaMethod;
+ if (fastArrayOrMetaMethod instanceof FastArray fastArray) {
Cache e = null;
final int n = fastArray.size();
Object[] array = fastArray.getArray();
@@ -180,16 +178,14 @@ public class MetaMethodIndex {
return toIndex;
}
- if (o instanceof MetaMethod) {
- final MetaMethod inIndex = (MetaMethod) o;
+ if (o instanceof MetaMethod inIndex) {
if (!isMatchingMethod(inIndex, toIndex)) {
return new FastArray(new Object[]{inIndex, toIndex});
}
return !isOverridden(inIndex, toIndex) ? inIndex : toIndex;
}
- if (o instanceof FastArray) {
- final FastArray array = (FastArray) o;
+ if (o instanceof FastArray array) {
int found = findMatchingMethod(array, toIndex);
if (found == -1) {
array.add(toIndex);
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/MethodSelectionException.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/MethodSelectionException.java
index 87f9660585..06a0f3a56f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/MethodSelectionException.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/MethodSelectionException.java
@@ -27,11 +27,11 @@ import java.lang.reflect.Modifier;
/**
* This exception is thrown if the runtime is unable to select
- * a method. This class builds the exception text when calling
+ * a method. This class builds the exception text when calling
* getMessage.
* <p>
* <b>Note:</b> This exception as for internal use only!
- *
+ *
* @since Groovy 1.1
*/
public class MethodSelectionException extends GroovyRuntimeException {
@@ -82,8 +82,7 @@ public class MethodSelectionException extends GroovyRuntimeException {
for (int i = 0; i < methods.size; i++) {
buffer.append("\n ");
Object methodOrConstructor = methods.get(i);
- if (methodOrConstructor instanceof MetaMethod) {
- MetaMethod method = (MetaMethod) methodOrConstructor;
+ if (methodOrConstructor instanceof MetaMethod method) {
buffer.append(Modifier.toString(method.getModifiers()));
buffer.append(" ").append(method.getReturnType().getName());
buffer.append(" ").append(method.getDeclaringClass().getName());
@@ -100,4 +99,4 @@ public class MethodSelectionException extends GroovyRuntimeException {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
index 74ec06c908..510f3c7d6e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -177,8 +177,7 @@ public class DefaultTypeTransformation {
if (object instanceof GString) {
object = object.toString();
}
- if (object instanceof String) {
- String s = (String) object;
+ if (object instanceof String s) {
if (s.length() == 1) {
char c = s.charAt(0);
return (int) c;
@@ -213,8 +212,7 @@ public class DefaultTypeTransformation {
public static char castToChar(Object object) {
if (object instanceof Character) {
return (Character) object;
- } else if (object instanceof Number) {
- Number value = (Number) object;
+ } else if (object instanceof Number value) {
return (char) value.intValue();
} else {
String text = object.toString();
@@ -374,10 +372,9 @@ public class DefaultTypeTransformation {
}
Object[] args = null;
- if (object instanceof Collection) {
+ if (object instanceof Collection collection) {
// let's try to invoke the constructor with the list as arguments
// such as for creating a Dimension, Point, Color etc.
- Collection collection = (Collection) object;
args = collection.toArray();
} else if (object instanceof Object[]) {
args = (Object[]) object;
@@ -504,8 +501,7 @@ public class DefaultTypeTransformation {
} catch (IOException e) {
throw new GroovyRuntimeException("Error reading file: " + value, e);
}
- } else if (value instanceof MethodClosure) {
- MethodClosure method = (MethodClosure) value;
+ } else if (value instanceof MethodClosure method) {
IteratorClosureAdapter<?> adapter = new IteratorClosureAdapter<>(method.getDelegate());
method.call(adapter);
return adapter.asList();
@@ -1081,8 +1077,7 @@ public class DefaultTypeTransformation {
@Deprecated(since = "2.3.0")
public static Character getCharFromSizeOneString(Object value) {
if (value instanceof GString) value = value.toString();
- if (value instanceof String) {
- String s = (String) value;
+ if (value instanceof String s) {
if (s.length() != 1) throw new IllegalArgumentException("String of length 1 expected but got a bigger one");
return s.charAt(0);
} else {
diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
index b06569ded2..7b43921dfc 100644
--- a/src/main/java/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
+++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
@@ -56,7 +56,7 @@ public class ShortTypeHandling {
}
/**
- * this class requires that the supplied enum is not fitting a
+ * this class requires that the supplied enum is not fitting a
* Collection case for casting
*/
public static Enum castToEnum(Object object, Class<? extends Enum> type) {
@@ -72,8 +72,7 @@ public class ShortTypeHandling {
if (object==null) return null;
if (object instanceof Character) {
return (Character) object;
- } else if (object instanceof Number) {
- Number value = (Number) object;
+ } else if (object instanceof Number value) {
return (char) value.intValue();
}
String text = object.toString();
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
index 92f32fcc5b..c935aa3fca 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
@@ -705,8 +705,7 @@ public class JavaStubGenerator {
}
return null;
}
- if (arg instanceof MethodCallExpression) { // GROOVY-10122
- MethodCallExpression mce = (MethodCallExpression) arg;
+ if (arg instanceof MethodCallExpression mce) { // GROOVY-10122
if (ExpressionUtils.isThisExpression(mce.getObjectExpression())) {
MethodNode mn = ctor.getDeclaringClass().tryFindPossibleMethod(mce.getMethodAsString(), mce.getArguments());
if (mn != null) return mn.getReturnType();
@@ -761,8 +760,7 @@ public class JavaStubGenerator {
} else {
if (classNode.isAnnotationDefinition() && methodNode.hasAnnotationDefault()) {
Statement fs = methodNode.getFirstStatement();
- if (fs instanceof ExpressionStatement) {
- ExpressionStatement es = (ExpressionStatement) fs;
+ if (fs instanceof ExpressionStatement es) {
Expression re = es.getExpression();
ClassNode rt = methodNode.getReturnType();
Consumer<Expression> valuePrinter = (value) -> {
@@ -784,9 +782,8 @@ public class JavaStubGenerator {
};
out.print(" default ");
- if (re instanceof ListExpression) {
+ if (re instanceof ListExpression le) {
out.print("{ ");
- ListExpression le = (ListExpression) re;
boolean first = true;
for (Expression e : le.getExpressions()) {
if (first) first = false; else out.print(", ");
@@ -982,15 +979,13 @@ public class JavaStubGenerator {
private String getAnnotationValue(final Object memberValue) {
String val = "null";
boolean replaceDollars = true;
- if (memberValue instanceof ListExpression) {
+ if (memberValue instanceof ListExpression le) {
StringJoiner sj = new StringJoiner(",", "{", "}");
- ListExpression le = (ListExpression) memberValue;
for (Expression e : le.getExpressions()) {
sj.add(getAnnotationValue(e));
}
val = sj.toString();
- } else if (memberValue instanceof ConstantExpression) {
- ConstantExpression ce = (ConstantExpression) memberValue;
+ } else if (memberValue instanceof ConstantExpression ce) {
Object constValue = ce.getValue();
if (constValue instanceof AnnotationNode) {
Writer writer = new StringBuilderWriter();
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/MemJavaFileObject.java b/src/main/java/org/codehaus/groovy/tools/javac/MemJavaFileObject.java
index 7705248de6..8c96b99242 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/MemJavaFileObject.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/MemJavaFileObject.java
@@ -72,8 +72,7 @@ public class MemJavaFileObject extends SimpleJavaFileObject {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof MemJavaFileObject)) return false;
- MemJavaFileObject that = (MemJavaFileObject) o;
+ if (!(o instanceof MemJavaFileObject that)) return false;
return Objects.equals(className, that.className);
}
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/RawJavaFileObject.java b/src/main/java/org/codehaus/groovy/tools/javac/RawJavaFileObject.java
index c8da49dff7..d3925f331e 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/RawJavaFileObject.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/RawJavaFileObject.java
@@ -68,8 +68,7 @@ public class RawJavaFileObject extends SimpleJavaFileObject {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof RawJavaFileObject)) return false;
- RawJavaFileObject that = (RawJavaFileObject) o;
+ if (!(o instanceof RawJavaFileObject that)) return false;
return Objects.equals(uri, that.uri);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
index 44ba9a440c..3f0732020a 100644
--- a/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AbstractASTTransformation.java
@@ -158,8 +158,7 @@ public abstract class AbstractASTTransformation implements ASTTransformation, Er
if (expr == null) {
return null;
}
- if (expr instanceof ListExpression) {
- final ListExpression listExpression = (ListExpression) expr;
+ if (expr instanceof ListExpression listExpression) {
if (isUndefinedMarkerList(listExpression)) {
return null;
}
@@ -199,8 +198,7 @@ public abstract class AbstractASTTransformation implements ASTTransformation, Er
if (expr == null) {
return null;
}
- if (expr instanceof ListExpression) {
- final ListExpression listExpression = (ListExpression) expr;
+ if (expr instanceof ListExpression listExpression) {
if (isUndefinedMarkerList(listExpression)) {
return null;
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
index ba87481809..e27b0e932f 100644
--- a/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
+++ b/src/main/java/org/codehaus/groovy/transform/AnnotationCollectorTransform.java
@@ -114,8 +114,7 @@ public class AnnotationCollectorTransform {
}
boolean legacySerialization = false;
final Expression member = collector.getMember("serializeClass");
- if (member instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) member;
+ if (member instanceof ClassExpression ce) {
legacySerialization = ce.getType().getName().equals(cn.getName());
}
ClassNode helper = cn;
@@ -159,13 +158,11 @@ public class AnnotationCollectorTransform {
}
private Expression serialize(Expression e) {
- if (e instanceof AnnotationConstantExpression) {
- AnnotationConstantExpression ace = (AnnotationConstantExpression) e;
+ if (e instanceof AnnotationConstantExpression ace) {
return serialize((AnnotationNode) ace.getValue());
}
- if (e instanceof ListExpression) {
+ if (e instanceof ListExpression le) {
boolean annotationConstant = false;
- ListExpression le = (ListExpression) e;
List<Expression> list = le.getExpressions();
List<Expression> newList = new ArrayList<>(list.size());
for (Expression exp: list) {
@@ -216,11 +213,10 @@ public class AnnotationCollectorTransform {
if (memberValue == null) {
return Collections.emptyList();
}
- if (!(memberValue instanceof ListExpression)) {
+ if (!(memberValue instanceof ListExpression memberListExp)) {
addError("Annotation collector expected a list of classes, but got a "+memberValue.getClass(), collector, source);
return Collections.emptyList();
}
- ListExpression memberListExp = (ListExpression) memberValue;
List<Expression> memberList = memberListExp.getExpressions();
if (memberList.isEmpty()) {
return Collections.emptyList();
@@ -353,9 +349,8 @@ public class AnnotationCollectorTransform {
le.addExpression(new AnnotationConstantExpression(an));
}
return le;
- } else if (o instanceof Object[]) {
+ } else if (o instanceof Object[] values) {
ListExpression le = new ListExpression();
- Object[] values = (Object[]) o;
for (Object val : values) {
le.addExpression(makeExpression(val));
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
index 7f631f56a2..eacbf0ef7d 100644
--- a/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
@@ -112,8 +112,7 @@ public class AutoCloneASTTransformation extends AbstractASTTransformation {
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
cNode.addInterface(CLONEABLE_TYPE);
boolean includeFields = memberHasValue(anno, "includeFields", true);
@@ -313,11 +312,9 @@ public class AutoCloneASTTransformation extends AbstractASTTransformation {
private static AutoCloneStyle getStyle(AnnotationNode node, String name) {
final Expression member = node.getMember(name);
- if (member instanceof PropertyExpression) {
- PropertyExpression prop = (PropertyExpression) member;
+ if (member instanceof PropertyExpression prop) {
Expression oe = prop.getObjectExpression();
- if (oe instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) oe;
+ if (oe instanceof ClassExpression ce) {
if ("groovy.transform.AutoCloneStyle".equals(ce.getType().getName())) {
return AutoCloneStyle.valueOf(prop.getPropertyAsString());
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
index 8feec9e82b..0dc6f14bdf 100644
--- a/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AutoImplementASTTransformation.java
@@ -76,8 +76,7 @@ public class AutoImplementASTTransformation extends AbstractASTTransformation {
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
String message = getMemberStringValue(anno, "message");
diff --git a/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
index a10ad45206..78843a53a0 100644
--- a/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/BuilderASTTransformation.java
@@ -83,11 +83,10 @@ public class BuilderASTTransformation extends AbstractASTTransformation implemen
if (!MY_TYPE.equals(anno.getClassNode())) return;
if (parent instanceof ClassNode || parent instanceof MethodNode) {
- if (parent instanceof ClassNode) {
+ if (parent instanceof ClassNode cn) {
if (!checkNotInterface((ClassNode) parent, MY_TYPE_NAME)) {
return;
}
- ClassNode cn = (ClassNode) parent;
if (hasAnnotation(cn, RECORD_TYPE)) {
// we'll later create a tuple constructor and move the builder annotation
// to it but let's create a mock constructor node for now
diff --git a/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
index 30249a9a97..5752b6464a 100644
--- a/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/CategoryASTTransformation.java
@@ -143,8 +143,7 @@ public class CategoryASTTransformation implements ASTTransformation {
@Override
public Expression transform(final Expression expression) {
- if (expression instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) expression;
+ if (expression instanceof VariableExpression ve) {
if (ve.isThisExpression()) {
Expression thisExpression = createThisExpression();
thisExpression.setSourcePosition(ve);
@@ -154,16 +153,14 @@ public class CategoryASTTransformation implements ASTTransformation {
pe.setSourcePosition(ve);
return pe;
}
- } else if (expression instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) expression;
+ } else if (expression instanceof MethodCallExpression mce) {
if (inClosure && mce.isImplicitThis() && isThisExpression(mce.getObjectExpression())) {
// GROOVY-6510: preserve implicit-this semantics
mce.setArguments(transform(mce.getArguments()));
mce.setMethod(transform(mce.getMethod()));
return mce;
}
- } else if (expression instanceof ClosureExpression) {
- ClosureExpression ce = (ClosureExpression) expression;
+ } else if (expression instanceof ClosureExpression ce) {
addVariablesToStack(hasImplicitParameter(ce) ? params(param(ClassHelper.OBJECT_TYPE, "it")) : getParametersSafe(ce));
ce.getVariableScope().putReferencedLocalVariable(selfParameter.get());
addAll(varStack.getLast(), "owner", "delegate", "thisObject");
diff --git a/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
index 320c12468b..758b74c22f 100644
--- a/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java
@@ -111,8 +111,7 @@ public class DelegateASTTransformation extends AbstractASTTransformation {
AnnotationNode node = (AnnotationNode) nodes[0];
DelegateDescription delegate = null;
- if (parent instanceof FieldNode) {
- FieldNode fieldNode = (FieldNode) parent;
+ if (parent instanceof FieldNode fieldNode) {
delegate = new DelegateDescription();
delegate.delegate = fieldNode;
@@ -122,8 +121,7 @@ public class DelegateASTTransformation extends AbstractASTTransformation {
delegate.owner = fieldNode.getOwner();
delegate.getOp = varX(fieldNode);
delegate.origin = "field";
- } else if (parent instanceof MethodNode) {
- MethodNode methodNode = (MethodNode) parent;
+ } else if (parent instanceof MethodNode methodNode) {
delegate = new DelegateDescription();
delegate.delegate = methodNode;
diff --git a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
index cf724f8356..bdb53ff1d4 100644
--- a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
@@ -117,8 +117,7 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
boolean callSuper = memberHasValue(anno, "callSuper", true);
boolean cacheHashCode = memberHasValue(anno, "cache", true);
diff --git a/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
index 6fdc4e5f25..a7d68049cb 100644
--- a/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
@@ -78,8 +78,7 @@ public class ExternalizeMethodsASTTransformation extends AbstractASTTransformati
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
cNode.addInterface(EXTERNALIZABLE_TYPE);
boolean includeFields = memberHasValue(anno, "includeFields", true);
diff --git a/src/main/java/org/codehaus/groovy/transform/ExternalizeVerifierASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ExternalizeVerifierASTTransformation.java
index aadc5ef930..d20be1301f 100644
--- a/src/main/java/org/codehaus/groovy/transform/ExternalizeVerifierASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ExternalizeVerifierASTTransformation.java
@@ -55,8 +55,7 @@ public class ExternalizeVerifierASTTransformation extends AbstractASTTransformat
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!hasNoArgConstructor(cNode)) {
addError(MY_TYPE_NAME + ": An Externalizable class requires a no-arg constructor but none found", cNode);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
index 3672d081a3..a729ff07b6 100644
--- a/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/FieldASTTransformation.java
@@ -95,8 +95,7 @@ public class FieldASTTransformation extends ClassCodeExpressionTransformer imple
sourceUnit = source; // support for addError
- if (nodes[1] instanceof DeclarationExpression) {
- DeclarationExpression de = (DeclarationExpression) nodes[1];
+ if (nodes[1] instanceof DeclarationExpression de) {
ClassNode declaringClass = de.getDeclaringClass();
if (!declaringClass.isScript()) {
addError("Annotation @" + MY_TYPE.getNameWithoutPackage() + " can only be used within a Script.", de);
@@ -173,8 +172,7 @@ public class FieldASTTransformation extends ClassCodeExpressionTransformer imple
@Override
public Expression transform(final Expression expr) {
if (expr == null) return null;
- if (expr instanceof DeclarationExpression) {
- DeclarationExpression de = (DeclarationExpression) expr;
+ if (expr instanceof DeclarationExpression de) {
if (de.getLeftExpression() == candidate.getVariableExpression()) {
if (insideScriptBody) {
// TODO: make EmptyExpression work
@@ -190,15 +188,13 @@ public class FieldASTTransformation extends ClassCodeExpressionTransformer imple
// GROOVY-4700, GROOVY-5207, GROOVY-9554
visitClosureExpression(currentClosure);
currentClosure = old;
- } else if (expr instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) expr;
+ } else if (expr instanceof VariableExpression ve) {
// only need to check the variable name because the Groovy compiler already fails if a variable
// with the same name exists in the scope; this means a closure cannot shadow a class variable
if (insideScriptBody && currentClosure != null && ve.getName().equals(variableName)) {
adjustToClassVar(ve);
}
- } else if (expr instanceof ConstructorCallExpression) {
- ConstructorCallExpression cce = (ConstructorCallExpression) expr;
+ } else if (expr instanceof ConstructorCallExpression cce) {
if (insideScriptBody && cce.isUsingAnonymousInnerClass()) {
// if a match is found, the compiler will have already set up AIC constructor to have
// an argument which isn't needed since we'll be accessing the field; we must undo it
diff --git a/src/main/java/org/codehaus/groovy/transform/FinalASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/FinalASTTransformation.java
index 65f6ca27ec..9717afce7c 100644
--- a/src/main/java/org/codehaus/groovy/transform/FinalASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/FinalASTTransformation.java
@@ -49,17 +49,14 @@ public class FinalASTTransformation extends AbstractASTTransformation {
if (!MY_TYPE.equals(node.getClassNode())) return;
if (memberHasValue(node, "enabled", false)) return;
- if (candidate instanceof ClassNode) {
- ClassNode cNode = (ClassNode) candidate;
+ if (candidate instanceof ClassNode cNode) {
checkModifiers(this, cNode.getModifiers(), cNode, "type " + cNode.getName());
cNode.setModifiers(cNode.getModifiers() | ACC_FINAL);
- } else if (candidate instanceof MethodNode) {
+ } else if (candidate instanceof MethodNode mNode) {
// includes constructors
- MethodNode mNode = (MethodNode) candidate;
checkModifiers(this, mNode.getModifiers(), mNode, "method or constructor " + mNode.getName());
mNode.setModifiers(mNode.getModifiers() | ACC_FINAL);
- } else if (candidate instanceof FieldNode) {
- FieldNode fNode = (FieldNode) candidate;
+ } else if (candidate instanceof FieldNode fNode) {
checkModifiers(this, fNode.getModifiers(), fNode, "field " + fNode.getName());
fNode.setModifiers(fNode.getModifiers() | ACC_FINAL);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
index 30fdfd8424..ceb6a11b2b 100644
--- a/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ImmutableASTTransformation.java
@@ -114,7 +114,7 @@ public class ImmutableASTTransformation extends AbstractASTTransformation implem
init(nodes, source);
AnnotationNode anno = (AnnotationNode) nodes[0];
AnnotatedNode parent = (AnnotatedNode) nodes[1];
- if (MY_TYPE.equals(anno.getClassNode()) && parent instanceof ClassNode) { ClassNode type = (ClassNode) parent;
+ if (MY_TYPE.equals(anno.getClassNode()) && parent instanceof ClassNode type) {
GroovyClassLoader classLoader = compilationUnit != null ? compilationUnit.getTransformLoader() : source.getClassLoader();
PropertyHandler handler = PropertyHandler.createPropertyHandler(this, classLoader, type);
if (handler != null
diff --git a/src/main/java/org/codehaus/groovy/transform/IndexedPropertyASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/IndexedPropertyASTTransformation.java
index e31affee79..d4f9bbc77f 100644
--- a/src/main/java/org/codehaus/groovy/transform/IndexedPropertyASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/IndexedPropertyASTTransformation.java
@@ -64,8 +64,7 @@ public class IndexedPropertyASTTransformation extends AbstractASTTransformation
AnnotationNode node = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(node.getClassNode())) return;
- if (parent instanceof FieldNode) {
- FieldNode fNode = (FieldNode) parent;
+ if (parent instanceof FieldNode fNode) {
ClassNode cNode = fNode.getDeclaringClass();
if (cNode.getProperty(fNode.getName()) == null) {
addError("Error during " + MY_TYPE_NAME + " processing. Field '" + fNode.getName() +
diff --git a/src/main/java/org/codehaus/groovy/transform/LazyASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/LazyASTTransformation.java
index 91cb3ae4d8..12a4b6a763 100644
--- a/src/main/java/org/codehaus/groovy/transform/LazyASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/LazyASTTransformation.java
@@ -86,8 +86,7 @@ public class LazyASTTransformation extends AbstractASTTransformation {
AnnotatedNode parent = (AnnotatedNode) nodes[1];
AnnotationNode node = (AnnotationNode) nodes[0];
- if (parent instanceof FieldNode) {
- final FieldNode fieldNode = (FieldNode) parent;
+ if (parent instanceof FieldNode fieldNode) {
visitField(this, node, fieldNode);
}
}
diff --git a/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
index eb62fa9fec..c07bdf27aa 100644
--- a/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/MapConstructorASTTransformation.java
@@ -93,8 +93,7 @@ public class MapConstructorASTTransformation extends AbstractASTTransformation i
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
boolean includeFields = memberHasValue(anno, "includeFields", Boolean.TRUE);
boolean includeProperties = !memberHasValue(anno, "includeProperties", Boolean.FALSE);
@@ -227,11 +226,9 @@ public class MapConstructorASTTransformation extends AbstractASTTransformation i
return new ClassCodeExpressionTransformer() {
@Override
public Expression transform(final Expression exp) {
- if (exp instanceof ClosureExpression) {
- ClosureExpression ce = (ClosureExpression) exp;
+ if (exp instanceof ClosureExpression ce) {
ce.getCode().visit(this);
- } else if (exp instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) exp;
+ } else if (exp instanceof VariableExpression ve) {
if ("args".equals(ve.getName()) && ve.getAccessedVariable() instanceof DynamicVariable) {
VariableExpression newVe = varX(new Parameter(MAP_TYPE, "args"));
newVe.setSourcePosition(ve);
diff --git a/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
index 7a51be12b9..fcbb006a5a 100644
--- a/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/MemoizedASTTransformation.java
@@ -77,8 +77,7 @@ public class MemoizedASTTransformation extends AbstractASTTransformation {
init(nodes, source);
AnnotationNode annotationNode = (AnnotationNode) nodes[0];
AnnotatedNode annotatedNode = (AnnotatedNode) nodes[1];
- if (MY_TYPE.equals(annotationNode.getClassNode()) && annotatedNode instanceof MethodNode) {
- MethodNode methodNode = (MethodNode) annotatedNode;
+ if (MY_TYPE.equals(annotationNode.getClassNode()) && annotatedNode instanceof MethodNode methodNode) {
if (methodNode.isAbstract()) {
addError("Annotation " + MY_TYPE_NAME + " cannot be used for abstract methods.", methodNode);
return;
diff --git a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
index 745bdd6919..54038bed3b 100644
--- a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
@@ -231,8 +231,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
}
private Pattern determineClassNamePattern(Expression expr) {
- if (!(expr instanceof ConstantExpression)) { return null; }
- final ConstantExpression constExpr = (ConstantExpression) expr;
+ if (!(expr instanceof ConstantExpression constExpr)) { return null; }
final String text = constExpr.getText();
if (constExpr.getValue() == null || text.isEmpty()) { return null; }
try {
@@ -251,8 +250,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
ListExpression list = new ListExpression();
if (expr instanceof ClassExpression) {
list.addExpression(expr);
- } else if (expr instanceof VariableExpression && searchSourceUnit) {
- VariableExpression ve = (VariableExpression) expr;
+ } else if (expr instanceof VariableExpression ve && searchSourceUnit) {
ClassNode fromSourceUnit = getSourceUnitClass(ve);
if (fromSourceUnit != null) {
ClassExpression found = classX(fromSourceUnit);
@@ -266,8 +264,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
final List<Expression> expressions = list.getExpressions();
for (int i = 0; i < expressions.size(); i++) {
Expression next = expressions.get(i);
- if (next instanceof VariableExpression && searchSourceUnit) {
- VariableExpression ve = (VariableExpression) next;
+ if (next instanceof VariableExpression ve && searchSourceUnit) {
ClassNode fromSourceUnit = getSourceUnitClass(ve);
if (fromSourceUnit != null) {
ClassExpression found = classX(fromSourceUnit);
@@ -298,8 +295,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
@Override
public Expression transform(Expression expr) {
if (expr == null) return null;
- if (expr instanceof MethodCallExpression && candidate == null) {
- MethodCallExpression mce = (MethodCallExpression) expr;
+ if (expr instanceof MethodCallExpression mce && candidate == null) {
Expression args = transform(mce.getArguments());
if (isNewifyCandidate(mce)) {
Expression transformed = transformMethodCall(mce, args);
@@ -313,16 +309,13 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
transformed.setSafe(mce.isSafe());
transformed.setSourcePosition(mce);
return transformed;
- } else if (expr instanceof ClosureExpression) {
- ClosureExpression ce = (ClosureExpression) expr;
+ } else if (expr instanceof ClosureExpression ce) {
ce.getCode().visit(this);
- } else if (expr instanceof ConstructorCallExpression) {
- ConstructorCallExpression cce = (ConstructorCallExpression) expr;
+ } else if (expr instanceof ConstructorCallExpression cce) {
if (cce.isUsingAnonymousInnerClass()) {
cce.getType().visitContents(this);
}
- } else if (expr instanceof DeclarationExpression) {
- DeclarationExpression de = (DeclarationExpression) expr;
+ } else if (expr instanceof DeclarationExpression de) {
if (shouldTransform(de)) {
candidate = null;
Expression left = de.getLeftExpression();
@@ -402,11 +395,10 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
if (classType != null) {
Expression argsToUse = argsExp;
if (classType.getOuterClass() != null && ((classType.getModifiers() & org.objectweb.asm.Opcodes.ACC_STATIC) == 0)) {
- if (!(argsExp instanceof ArgumentListExpression)) {
+ if (!(argsExp instanceof ArgumentListExpression argsListExp)) {
addError("Non-static inner constructor arguments must be an argument list expression; pass 'this' pointer explicitly as first constructor argument otherwise.", mce);
return mce;
}
- final ArgumentListExpression argsListExp = (ArgumentListExpression) argsExp;
final List<Expression> argExpList = argsListExp.getExpressions();
final VariableExpression thisVarExp = new VariableExpression("this");
diff --git a/src/main/java/org/codehaus/groovy/transform/NonSealedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NonSealedASTTransformation.java
index f6332324b1..fce1f2e42a 100644
--- a/src/main/java/org/codehaus/groovy/transform/NonSealedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NonSealedASTTransformation.java
@@ -41,8 +41,7 @@ public class NonSealedASTTransformation extends AbstractASTTransformation {
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!NON_SEALED_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (cNode.isEnum()) {
addError("@" + NON_SEALED_CLASS.getSimpleName() + " not allowed for enum", cNode);
return;
diff --git a/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
index 3f1a2dac1b..d17cd9823f 100644
--- a/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NullCheckASTTransformation.java
@@ -70,8 +70,7 @@ public class NullCheckASTTransformation extends AbstractASTTransformation {
if (!NULL_CHECK_TYPE.equals(anno.getClassNode())) return;
boolean includeGenerated = isIncludeGenerated(anno);
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, NULL_CHECK_NAME)) return;
for (ConstructorNode cn : cNode.getDeclaredConstructors()) {
adjustMethod(cn, includeGenerated);
diff --git a/src/main/java/org/codehaus/groovy/transform/OperatorRenameASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/OperatorRenameASTTransformation.java
index d055670d50..16d58d93b7 100644
--- a/src/main/java/org/codehaus/groovy/transform/OperatorRenameASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/OperatorRenameASTTransformation.java
@@ -84,12 +84,10 @@ public class OperatorRenameASTTransformation extends ClassCodeExpressionTransfor
@Override
public void visit(ASTNode[] nodes, SourceUnit source) {
sourceUnit = source;
- if (nodes.length != 2 || !(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) {
+ if (nodes.length != 2 || !(nodes[0] instanceof AnnotationNode anno) || !(nodes[1] instanceof AnnotatedNode parent)) {
throw new GroovyBugError("Internal error: expecting [AnnotationNode, AnnotatedNode] but got: " + Arrays.asList(nodes));
}
- AnnotatedNode parent = (AnnotatedNode) nodes[1];
- AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
addIfFound(anno, nameTable, "plus");
@@ -122,8 +120,7 @@ public class OperatorRenameASTTransformation extends ClassCodeExpressionTransfor
@Override
public Expression transform(Expression expr) {
if (expr == null) return null;
- if (expr instanceof BinaryExpression) {
- final BinaryExpression be = (BinaryExpression) expr;
+ if (expr instanceof BinaryExpression be) {
int type = be.getOperation().getType();
String oldName = getOperationName(type);
if (nameTable.containsKey(oldName)) {
@@ -137,8 +134,7 @@ public class OperatorRenameASTTransformation extends ClassCodeExpressionTransfor
result.setSourcePosition(be);
return result;
}
- } else if (expr instanceof ClosureExpression) {
- ClosureExpression ce = (ClosureExpression) expr;
+ } else if (expr instanceof ClosureExpression ce) {
ce.getCode().visit(this);
}
return expr.transformExpression(this);
diff --git a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
index cc67c0910b..627cd69414 100644
--- a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
@@ -189,8 +189,7 @@ public class PackageScopeASTTransformation extends AbstractASTTransformation {
List<groovy.transform.PackageScopeTarget> list = new ArrayList<groovy.transform.PackageScopeTarget>();
if (expr instanceof PropertyExpression) {
list.add(extractTarget((PropertyExpression) expr));
- } else if (expr instanceof ListExpression) {
- final ListExpression expressionList = (ListExpression) expr;
+ } else if (expr instanceof ListExpression expressionList) {
final List<Expression> expressions = expressionList.getExpressions();
for (Expression ex : expressions) {
if (ex instanceof PropertyExpression) {
@@ -203,8 +202,7 @@ public class PackageScopeASTTransformation extends AbstractASTTransformation {
private static groovy.transform.PackageScopeTarget extractTarget(PropertyExpression expr) {
Expression oe = expr.getObjectExpression();
- if (oe instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) oe;
+ if (oe instanceof ClassExpression ce) {
if ("groovy.transform.PackageScopeTarget".equals(ce.getType().getName())) {
Expression prop = expr.getProperty();
if (prop instanceof ConstantExpression) {
diff --git a/src/main/java/org/codehaus/groovy/transform/ReadWriteLockASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ReadWriteLockASTTransformation.java
index 39c4b8806d..4449670c61 100644
--- a/src/main/java/org/codehaus/groovy/transform/ReadWriteLockASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ReadWriteLockASTTransformation.java
@@ -80,8 +80,7 @@ public class ReadWriteLockASTTransformation extends AbstractASTTransformation {
String value = getMemberStringValue(node, "value");
- if (parent instanceof MethodNode) {
- MethodNode mNode = (MethodNode) parent;
+ if (parent instanceof MethodNode mNode) {
ClassNode cNode = mNode.getDeclaringClass();
FieldNode lockExpr = determineLock(value, cNode, mNode.isStatic(), myTypeName);
if (lockExpr == null) return;
diff --git a/src/main/java/org/codehaus/groovy/transform/RecordCompletionASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/RecordCompletionASTTransformation.java
index dd30e5426b..52af631dd4 100644
--- a/src/main/java/org/codehaus/groovy/transform/RecordCompletionASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/RecordCompletionASTTransformation.java
@@ -67,8 +67,7 @@ public class RecordCompletionASTTransformation extends AbstractASTTransformation
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
MethodNode copyWith = cNode.getMethod("copyWith", params(param(MAP_TYPE, "namedArgs")));
if (copyWith != null) {
adjustCopyWith(cNode, copyWith);
@@ -88,8 +87,7 @@ public class RecordCompletionASTTransformation extends AbstractASTTransformation
ConstructorNode consNode = cNode.getDeclaredConstructor(params.toArray(Parameter.EMPTY_ARRAY));
if (consNode != null) {
Statement code = copyWith.getCode();
- if (code instanceof ReturnStatement) {
- ReturnStatement rs = (ReturnStatement) code;
+ if (code instanceof ReturnStatement rs) {
Expression expr = rs.getExpression();
if (expr instanceof ConstructorCallExpression) {
expr.putNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET, consNode);
diff --git a/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
index 0b80bc8e6e..31a6cb6b72 100644
--- a/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
@@ -501,11 +501,9 @@ public class RecordTypeASTTransformation extends AbstractASTTransformation imple
private static RecordTypeMode getMode(AnnotationNode node, String name) {
if (node != null) {
final Expression member = node.getMember(name);
- if (member instanceof PropertyExpression) {
- PropertyExpression prop = (PropertyExpression) member;
+ if (member instanceof PropertyExpression prop) {
Expression oe = prop.getObjectExpression();
- if (oe instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) oe;
+ if (oe instanceof ClassExpression ce) {
if ("groovy.transform.RecordTypeMode".equals(ce.getType().getName())) {
return RecordTypeMode.valueOf(prop.getPropertyAsString());
}
diff --git a/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
index bdc351a558..7a71b17334 100644
--- a/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
@@ -59,8 +59,7 @@ public class SealedASTTransformation extends AbstractASTTransformation {
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!SEALED_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (cNode.isEnum()) {
addError(SEALED_NAME + " not allowed for enum", cNode);
return;
@@ -130,11 +129,9 @@ public class SealedASTTransformation extends AbstractASTTransformation {
private static SealedMode getMode(AnnotationNode node, String name) {
if (node != null) {
final Expression member = node.getMember(name);
- if (member instanceof PropertyExpression) {
- PropertyExpression prop = (PropertyExpression) member;
+ if (member instanceof PropertyExpression prop) {
Expression oe = prop.getObjectExpression();
- if (oe instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) oe;
+ if (oe instanceof ClassExpression ce) {
if ("groovy.transform.SealedMode".equals(ce.getType().getName())) {
return SealedMode.valueOf(prop.getPropertyAsString());
}
diff --git a/src/main/java/org/codehaus/groovy/transform/SingletonASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SingletonASTTransformation.java
index 3ada0cfbf4..942cb39836 100644
--- a/src/main/java/org/codehaus/groovy/transform/SingletonASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SingletonASTTransformation.java
@@ -67,8 +67,7 @@ public class SingletonASTTransformation extends AbstractASTTransformation {
AnnotatedNode parent = (AnnotatedNode) nodes[1];
AnnotationNode node = (AnnotationNode) nodes[0];
- if (parent instanceof ClassNode) {
- ClassNode classNode = (ClassNode) parent;
+ if (parent instanceof ClassNode classNode) {
String propertyName = getMemberStringValue(node, "property", "instance");
boolean isLazy = memberHasValue(node, "lazy", true);
boolean isStrict = !memberHasValue(node, "strict", false);
@@ -138,4 +137,4 @@ public class SingletonASTTransformation extends AbstractASTTransformation {
addGeneratedConstructor(classNode, new ConstructorNode(ACC_PRIVATE, body));
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/codehaus/groovy/transform/StaticTypesTransformation.java b/src/main/java/org/codehaus/groovy/transform/StaticTypesTransformation.java
index 1df48a7527..53450dc94c 100644
--- a/src/main/java/org/codehaus/groovy/transform/StaticTypesTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/StaticTypesTransformation.java
@@ -54,15 +54,13 @@ public class StaticTypesTransformation implements ASTTransformation, Compilation
Expression extensions = members.get("extensions");
AnnotatedNode node = (AnnotatedNode) nodes[1];
StaticTypeCheckingVisitor visitor = null;
- if (node instanceof ClassNode) {
- ClassNode classNode = (ClassNode) node;
+ if (node instanceof ClassNode classNode) {
visitor = newVisitor(source, classNode);
visitor.setCompilationUnit(compilationUnit);
addTypeCheckingExtensions(visitor, extensions);
visitor.initialize();
visitor.visitClass(classNode);
- } else if (node instanceof MethodNode) {
- MethodNode methodNode = (MethodNode) node;
+ } else if (node instanceof MethodNode methodNode) {
visitor = newVisitor(source, methodNode.getDeclaringClass());
visitor.setCompilationUnit(compilationUnit);
addTypeCheckingExtensions(visitor, extensions);
@@ -85,8 +83,7 @@ public class StaticTypesTransformation implements ASTTransformation, Compilation
extensions.getText(),
compilationUnit
));
- } else if (extensions instanceof ListExpression) {
- ListExpression list = (ListExpression) extensions;
+ } else if (extensions instanceof ListExpression list) {
for (Expression ext : list.getExpressions()) {
addTypeCheckingExtensions(visitor, ext);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
index 35e3450c4a..6b97e96ab1 100644
--- a/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
@@ -60,8 +60,7 @@ public class SynchronizedASTTransformation extends AbstractASTTransformation {
if (!MY_TYPE.equals(node.getClassNode())) return;
String value = getMemberStringValue(node, "value");
- if (parent instanceof MethodNode) {
- MethodNode mNode = (MethodNode) parent;
+ if (parent instanceof MethodNode mNode) {
if (mNode.isAbstract()) {
addError("Error during " + MY_TYPE_NAME + " processing: annotation not allowed on abstract method '" + mNode.getName() + "'", mNode);
return;
diff --git a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
index bc8424be19..217fbe3d51 100644
--- a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
@@ -97,8 +97,7 @@ public class ToStringASTTransformation extends AbstractASTTransformation {
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
boolean includeSuper = memberHasValue(anno, "includeSuper", true);
boolean includeSuperProperties = memberHasValue(anno, "includeSuperProperties", true);
diff --git a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
index 25a81f9fb0..b493adc5ae 100644
--- a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
@@ -130,8 +130,7 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!MY_TYPE.equals(anno.getClassNode())) return;
- if (parent instanceof ClassNode) {
- ClassNode cNode = (ClassNode) parent;
+ if (parent instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, MY_TYPE_NAME)) return;
boolean includeFields = memberHasValue(anno, "includeFields", Boolean.TRUE);
boolean includeProperties = !memberHasValue(anno, "includeProperties", Boolean.FALSE);
@@ -389,16 +388,13 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
private static DefaultsMode maybeDefaultsMode(final AnnotationNode node, final String name) {
if (node != null) {
final Expression member = node.getMember(name);
- if (member instanceof ConstantExpression) {
- ConstantExpression ce = (ConstantExpression) member;
+ if (member instanceof ConstantExpression ce) {
if (ce.getValue() instanceof DefaultsMode) {
return (DefaultsMode) ce.getValue();
}
- } else if (member instanceof PropertyExpression) {
- PropertyExpression prop = (PropertyExpression) member;
+ } else if (member instanceof PropertyExpression prop) {
Expression oe = prop.getObjectExpression();
- if (oe instanceof ClassExpression) {
- ClassExpression ce = (ClassExpression) oe;
+ if (oe instanceof ClassExpression ce) {
if ("groovy.transform.DefaultsMode".equals(ce.getType().getName())) {
return DefaultsMode.valueOf(prop.getPropertyAsString());
}
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/StaticCompileTransformation.java b/src/main/java/org/codehaus/groovy/transform/sc/StaticCompileTransformation.java
index 348873919c..86b909193a 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/StaticCompileTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/StaticCompileTransformation.java
@@ -57,8 +57,7 @@ public class StaticCompileTransformation extends StaticTypesTransformation {
Map<String,Expression> members = ((AnnotationNode) nodes[0]).getMembers();
Expression extensions = members.get("extensions");
StaticTypeCheckingVisitor visitor = null;
- if (target instanceof ClassNode) {
- ClassNode classNode = (ClassNode) target;
+ if (target instanceof ClassNode classNode) {
visitor = newVisitor(source, classNode);
visitor.setCompilationUnit(compilationUnit);
addTypeCheckingExtensions(visitor, extensions);
@@ -66,8 +65,7 @@ public class StaticCompileTransformation extends StaticTypesTransformation {
target.putNodeMetaData(STATIC_COMPILE_NODE, !visitor.isSkipMode(target));
visitor.initialize();
visitor.visitClass(classNode);
- } else if (target instanceof MethodNode) {
- MethodNode methodNode = (MethodNode) target;
+ } else if (target instanceof MethodNode methodNode) {
ClassNode declaringClass = methodNode.getDeclaringClass();
visitor = newVisitor(source, declaringClass);
visitor.setCompilationUnit(compilationUnit);
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
index aa752eae75..6928ceefc5 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
@@ -178,9 +178,8 @@ public class BinaryExpressionTransformer {
if (directMCT != null) {
Expression left = staticCompilationTransformer.transform(bin.getLeftExpression());
Expression right = staticCompilationTransformer.transform(bin.getRightExpression());
- if (left instanceof PropertyExpression) {
+ if (left instanceof PropertyExpression pe) {
// transform "a.x = val" into "def tmp = val; a.setX(tmp); tmp"
- PropertyExpression pe = (PropertyExpression) left;
return transformAssignmentToSetterCall(
pe.getObjectExpression(), // "a"
directMCT, // "setX"
@@ -419,8 +418,7 @@ public class BinaryExpressionTransformer {
// call handles the operation, so we must add the assignment now
expr = binX(left, Token.newSymbol(Types.ASSIGN, operation.getStartLine(), operation.getStartColumn()), call);
// GROOVY-5746: one execution of receiver and subscript
- if (left instanceof BinaryExpression) {
- BinaryExpression be = (BinaryExpression) left;
+ if (left instanceof BinaryExpression be) {
if (be.getOperation().getType() == Types.LEFT_SQUARE_BRACKET) {
be.setLeftExpression(transformRepeatedReference(be.getLeftExpression()));
be.setRightExpression(transformRepeatedReference(be.getRightExpression()));
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/CastExpressionOptimizer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/CastExpressionOptimizer.java
index 59cd92e719..1c81311a2f 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/CastExpressionOptimizer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/CastExpressionOptimizer.java
@@ -53,8 +53,7 @@ public class CastExpressionOptimizer {
}
} else if (ClassHelper.char_TYPE.equals(cast.getType())) {
Expression expression = cast.getExpression();
- if (expression instanceof ConstantExpression) {
- ConstantExpression ce = (ConstantExpression) expression;
+ if (expression instanceof ConstantExpression ce) {
if (ClassHelper.STRING_TYPE.equals(ce.getType())) {
String val = (String) ce.getValue();
if (val!=null && val.length()==1) {
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
index 6998195031..7190f94147 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
@@ -67,13 +67,11 @@ public class ConstructorCallTransformer {
&& StaticTypeCheckingSupport.implementsInterfaceOrIsSubclassOf(params[params.length - 1].getType(), ClassHelper.MAP_TYPE)
&& node.getCode() == StaticTypeCheckingVisitor.GENERATED_EMPTY_STATEMENT) {
Expression arguments = expr.getArguments();
- if (arguments instanceof TupleExpression) {
- TupleExpression tupleExpression = (TupleExpression) arguments;
+ if (arguments instanceof TupleExpression tupleExpression) {
List<Expression> expressions = tupleExpression.getExpressions();
if (expressions.size() == 1 || expressions.size() == 2) { // 2 = inner class case
Expression expression = expressions.get(expressions.size() - 1);
- if (expression instanceof MapExpression) {
- MapExpression map = (MapExpression) expression;
+ if (expression instanceof MapExpression map) {
// check that the node doesn't belong to the list of declared constructors
ClassNode declaringClass = node.getDeclaringClass();
for (ConstructorNode constructorNode : declaringClass.getDeclaredConstructors()) {
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
index bd1278225b..90f204f79e 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/GroovyTypeCheckingExtensionSupport.java
@@ -522,8 +522,7 @@ public class GroovyTypeCheckingExtensionSupport extends AbstractTypeCheckingExte
}
}
- if (args instanceof Object[] && ((Object[]) args).length == 1 && ((Object[]) args)[0] instanceof Closure) {
- Object[] argsArray = (Object[]) args;
+ if (args instanceof Object[] argsArray && ((Object[]) args).length == 1 && ((Object[]) args)[0] instanceof Closure) {
String methodName = METHOD_ALIASES.get(name);
if (methodName == null) {
return InvokerHelper.invokeMethod(extension, name, args);
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/SignatureCodecVersion1.java b/src/main/java/org/codehaus/groovy/transform/stc/SignatureCodecVersion1.java
index 8d0d904721..c9f5236fab 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/SignatureCodecVersion1.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/SignatureCodecVersion1.java
@@ -58,16 +58,14 @@ public class SignatureCodecVersion1 implements SignatureCodec {
private void doEncode(final ClassNode node, DataOutputStream dos) throws IOException {
dos.writeUTF(node.getClass().getSimpleName());
- if (node instanceof UnionTypeClassNode) {
- UnionTypeClassNode union = (UnionTypeClassNode) node;
+ if (node instanceof UnionTypeClassNode union) {
ClassNode[] delegates = union.getDelegates();
dos.writeInt(delegates.length);
for (ClassNode delegate : delegates) {
doEncode(delegate, dos);
}
return;
- } else if (node instanceof WideningCategories.LowestUpperBoundClassNode) {
- WideningCategories.LowestUpperBoundClassNode lub = (WideningCategories.LowestUpperBoundClassNode) node;
+ } else if (node instanceof WideningCategories.LowestUpperBoundClassNode lub) {
dos.writeUTF(lub.getLubName());
doEncode(lub.getUnresolvedSuperClass(), dos);
ClassNode[] interfaces = lub.getInterfaces();
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 519cf395f9..bfa955c405 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -785,8 +785,7 @@ public abstract class StaticTypeCheckingSupport {
valueExpr = ((CastExpression) valueExpr).getExpression();
if (valueExpr instanceof ConstantExpression) {
Object value = ((ConstantExpression) valueExpr).getValue();
- if (!(value instanceof Number)) return true; // null or ...
- Number number = (Number) value;
+ if (!(value instanceof Number number)) return true; // null or ...
switch (leftIndex) {
case 0: // byte
switch (rightIndex) {
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index c5e64d400f..5ec9f6b4a2 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -537,11 +537,9 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
for (AnnotationNode annotation : annotations) {
Expression value = annotation.getMember("value");
if (value != null) {
- if (value instanceof ConstantExpression) {
- ConstantExpression ce = (ConstantExpression) value;
+ if (value instanceof ConstantExpression ce) {
if (TypeCheckingMode.SKIP.toString().equals(ce.getValue().toString())) return true;
- } else if (value instanceof PropertyExpression) {
- PropertyExpression pe = (PropertyExpression) value;
+ } else if (value instanceof PropertyExpression pe) {
if (TypeCheckingMode.SKIP.toString().equals(pe.getPropertyAsString())) return true;
}
}
@@ -560,8 +558,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
* @return true if the inner class node should be skipped
*/
protected boolean isSkippedInnerClass(final AnnotatedNode node) {
- if (node instanceof ClassNode) {
- ClassNode type = (ClassNode) node;
+ if (node instanceof ClassNode type) {
if (type.getOuterClass() != null) {
MethodNode enclosingMethod = type.getEnclosingMethod();
if (enclosingMethod != null && isSkipMode(enclosingMethod)) {
@@ -707,8 +704,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
}
} else if (accessedVariable != null) {
VariableExpression localVariable;
- if (accessedVariable instanceof Parameter) {
- Parameter prm = (Parameter) accessedVariable;
+ if (accessedVariable instanceof Parameter prm) {
localVariable = new ParameterVariableExpression(prm);
} else {
localVariable = (VariableExpression) accessedVariable;
@@ -971,15 +967,12 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
// propagate closure parameter information
if (leftExpression instanceof VariableExpression
// GROOVY-11400: save to declared variable; skip field, property, parameter or dynamic variable
- && ((VariableExpression) leftExpression).getAccessedVariable() instanceof VariableExpression) {
- var targetVariable = (VariableExpression) ((VariableExpression) leftExpression).getAccessedVariable();
- if (rightExpression instanceof ClosureExpression) {
- var closure = (ClosureExpression) rightExpression;
+ && ((VariableExpression) leftExpression).getAccessedVariable() instanceof VariableExpression targetVariable) {
+ if (rightExpression instanceof ClosureExpression closure) {
if (!hasImplicitParameter(closure)) // GROOVY-11394: arrow means zero parameters
targetVariable.putNodeMetaData(CLOSURE_ARGUMENTS, getParametersSafe(closure));
} else if (rightExpression instanceof VariableExpression
- && ((VariableExpression) rightExpression).getAccessedVariable() instanceof VariableExpression) {
- var sourceVariable = (VariableExpression) ((VariableExpression) rightExpression).getAccessedVariable();
+ && ((VariableExpression) rightExpression).getAccessedVariable() instanceof VariableExpression sourceVariable) {
targetVariable.putNodeMetaData(CLOSURE_ARGUMENTS, sourceVariable.getNodeMetaData(CLOSURE_ARGUMENTS));
}
}
@@ -1337,13 +1330,12 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
}
}
- if (!(rightExpression instanceof ListExpression)) {
+ if (!(rightExpression instanceof ListExpression values)) {
addStaticTypeError("Multiple assignments without list or tuple on the right-hand side are unsupported in static type checking mode", rightExpression);
return false;
}
TupleExpression tuple = (TupleExpression) leftExpression;
- ListExpression values = (ListExpression) rightExpression;
List<Expression> tupleExpressions = tuple.getExpressions();
List<Expression> valueExpressions = values.getExpressions();
@@ -2580,14 +2572,12 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
protected MethodNode typeCheckMapConstructor(final ConstructorCallExpression call, final ClassNode receiver, final Expression arguments) {
MethodNode node = null;
- if (arguments instanceof TupleExpression) {
- TupleExpression texp = (TupleExpression) arguments;
+ if (arguments instanceof TupleExpression texp) {
List<Expression> expressions = texp.getExpressions();
// should only get here with size = 2 when inner class constructor
if (expressions.size() == 1 || expressions.size() == 2) {
Expression expression = expressions.get(expressions.size() - 1);
- if (expression instanceof MapExpression) {
- MapExpression argList = (MapExpression) expression;
+ if (expression instanceof MapExpression argList) {
checkGroovyConstructorMap(call, receiver, argList);
Parameter[] params = expressions.size() == 1
? new Parameter[]{new Parameter(MAP_TYPE, "map")}
@@ -3099,8 +3089,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
*/
@Deprecated(forRemoval = true, since = "2.5.0")
protected void checkClosureParameters(final Expression callArguments, final ClassNode receiver) {
- if (callArguments instanceof ArgumentListExpression) {
- ArgumentListExpression argList = (ArgumentListExpression) callArguments;
+ if (callArguments instanceof ArgumentListExpression argList) {
ClosureExpression closure = (ClosureExpression) argList.getExpression(0);
Parameter[] parameters = closure.getParameters();
if (parameters.length > 1) {
@@ -3218,8 +3207,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
Expression value = an.getMember("value");
if (value instanceof AnnotationConstantExpression) {
processNamedParam((AnnotationConstantExpression) value, entries, args, collectedNames);
- } else if (value instanceof ListExpression) {
- ListExpression le = (ListExpression) value;
+ } else if (value instanceof ListExpression le) {
for (Expression next : le.getExpressions()) {
if (next instanceof AnnotationConstantExpression) {
processNamedParam((AnnotationConstantExpression) next, entries, args, collectedNames);
@@ -3320,8 +3308,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
typeParametersResolved = hasTypeArguments;
} else {
Expression emc = typeCheckingContext.getEnclosingMethodCall();
- if (emc instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) emc;
+ if (emc instanceof MethodCallExpression mce) {
if (mce.getArguments() == arguments) {
GenericsType[] typeArguments = mce.getGenericsTypes();
if (typeArguments != null) {
@@ -3551,7 +3538,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
GenericsType[] typeArguments = null;
Expression emc = typeCheckingContext.getEnclosingMethodCall(); // GROOVY-7789, GROOVY-11168
- if (emc instanceof MethodCallExpression) { MethodCallExpression call = (MethodCallExpression) emc;
+ if (emc instanceof MethodCallExpression call) {
if (arguments == call.getArguments() || InvocationWriter.makeArgumentList(arguments).getExpressions().stream().anyMatch(arg ->
arg instanceof ClosureExpression && DefaultGroovyMethods.contains(InvocationWriter.makeArgumentList(call.getArguments()), arg)))
typeArguments = call.getGenericsTypes();
@@ -4037,9 +4024,8 @@ out: if (mn.size() != 1) {
* @return the inferred closure return type or <em>null</em>
*/
protected ClassNode getInferredReturnTypeFromWithClosureArgument(final Expression callArguments) {
- if (!(callArguments instanceof ArgumentListExpression)) return null;
+ if (!(callArguments instanceof ArgumentListExpression argList)) return null;
- ArgumentListExpression argList = (ArgumentListExpression) callArguments;
ClosureExpression closure = (ClosureExpression) argList.getExpression(0);
visitClosureExpression(closure);
@@ -4681,8 +4667,7 @@ trying: for (ClassNode[] signature : signatures) {
}
}
- if (exp instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) exp;
+ if (exp instanceof VariableExpression var) {
Variable accessedVariable = var.getAccessedVariable();
if (accessedVariable instanceof VariableExpression) {
if (accessedVariable != var)
@@ -4972,8 +4957,7 @@ trying: for (ClassNode[] signature : signatures) {
protected MethodNode findMethodOrFail(final Expression expr, final ClassNode receiver, final String name, final ClassNode... args) {
List<MethodNode> methods = findMethod(receiver, name, args);
- if (methods.isEmpty() && (expr instanceof BinaryExpression)) {
- BinaryExpression be = (BinaryExpression) expr;
+ if (methods.isEmpty() && (expr instanceof BinaryExpression be)) {
MethodCallExpression call = callX(be.getLeftExpression(), name, be.getRightExpression());
methods = extension.handleMissingMethod(receiver, name, args(be.getLeftExpression()), args, call);
}
@@ -5251,16 +5235,14 @@ trying: for (ClassNode[] signature : signatures) {
return GenericsUtils.makeClassSafe0(CLASS_Type, new GenericsType(type));
}
- if (node instanceof VariableExpression) {
- VariableExpression vexp = (VariableExpression) node;
+ if (node instanceof VariableExpression vexp) {
type = isTraitSelf(vexp);
if (type != null) return makeSelf(type);
if (vexp.isThisExpression()) return makeThis();
if (vexp.isSuperExpression()) return makeSuper();
Variable variable = vexp.getAccessedVariable();
- if (variable instanceof FieldNode) {
- FieldNode fieldNode = (FieldNode) variable;
+ if (variable instanceof FieldNode fieldNode) {
ClassNode fieldType = fieldNode.getOriginType();
if (!fieldNode.isStatic() && GenericsUtils.hasUnresolvedGenerics(fieldType)) {
ClassNode declType = fieldNode.getDeclaringClass(), thisType = typeCheckingContext.getEnclosingClassNode();
@@ -5271,8 +5253,7 @@ trying: for (ClassNode[] signature : signatures) {
if (variable != vexp && variable instanceof VariableExpression) {
return getType((VariableExpression) variable);
}
- if (variable instanceof Parameter) {
- Parameter parameter = (Parameter) variable;
+ if (variable instanceof Parameter parameter) {
if (getTemporaryTypesForExpression(vexp).isEmpty()) { // not instanceof
// check if the parameter is part of a control structure (for loop)
type = typeCheckingContext.controlStructureVariables.get(parameter);
@@ -5331,8 +5312,7 @@ trying: for (ClassNode[] signature : signatures) {
return inferMapExpressionType((MapExpression) node);
}
- if (node instanceof RangeExpression) {
- RangeExpression re = (RangeExpression) node;
+ if (node instanceof RangeExpression re) {
ClassNode fromType = getType(re.getFrom());
ClassNode toType = getType(re.getTo());
if (fromType.equals(toType)) {
@@ -5652,8 +5632,7 @@ trying: for (ClassNode[] signature : signatures) {
? getCombinedBoundType(argumentType.getGenericsTypes()[0])
: wrapTypeIfNecessary(getInferredReturnType(argument));
ClassNode[] p;
- if (argument instanceof ClosureExpression) {
- ClosureExpression closure = (ClosureExpression) argument;
+ if (argument instanceof ClosureExpression closure) {
p = extractTypesFromParameters(getParametersSafe(closure));
} else { // argument instanceof MethodPointerExpression
List<MethodNode> candidates = argument.getNodeMetaData(MethodNode.class);
@@ -6140,8 +6119,7 @@ out: for (ClassNode type : todo) {
}
}
}
- } else if (expression instanceof MethodCallExpression) {
- MethodCallExpression call = (MethodCallExpression) expression;
+ } else if (expression instanceof MethodCallExpression call) {
Expression objectExpression = call.getObjectExpression();
if (objectExpression instanceof VariableExpression) {
// this should always be the case, but adding a test is safer
@@ -6472,8 +6450,7 @@ out: for (ClassNode type : todo) {
@Override
public void visitVariableExpression(final VariableExpression expression) {
Variable var = findTargetVariable(expression);
- if ((!onlySharedVariables || isOuterScopeShared(var)) && var instanceof VariableExpression) {
- VariableExpression ve = (VariableExpression) var;
+ if ((!onlySharedVariables || isOuterScopeShared(var)) && var instanceof VariableExpression ve) {
ClassNode cn = ve.getNodeMetaData(INFERRED_TYPE);
if (cn == null) cn = ve.getOriginType();
varOrigType.put(ve, cn);
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
index 926582a967..3384e28d0e 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/TraitTypeCheckingExtension.java
@@ -72,8 +72,7 @@ public class TraitTypeCheckingExtension extends AbstractTypeCheckingExtension {
return Collections.singletonList(makeDynamic(call, returnType));
}
- if (call instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) call;
+ if (call instanceof MethodCallExpression mce) {
ClassNode returnType = mce.getNodeMetaData(TraitASTTransformation.DO_DYNAMIC);
if (returnType != null) return Collections.singletonList(makeDynamic(call, returnType));
diff --git a/src/main/java/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.java b/src/main/java/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.java
index 9a092b6f45..187fb4f385 100644
--- a/src/main/java/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.java
+++ b/src/main/java/org/codehaus/groovy/transform/tailrec/TernaryToIfStatementConverter.java
@@ -32,9 +32,8 @@ import static org.codehaus.groovy.ast.tools.GeneralUtils.returnS;
public class TernaryToIfStatementConverter {
@SuppressWarnings("Instanceof")
public Statement convert(ReturnStatement statementWithInnerTernaryExpression) {
- if (!(statementWithInnerTernaryExpression.getExpression() instanceof TernaryExpression))
+ if (!(statementWithInnerTernaryExpression.getExpression() instanceof TernaryExpression ternary))
return statementWithInnerTernaryExpression;
- TernaryExpression ternary = (TernaryExpression) statementWithInnerTernaryExpression.getExpression();
return ifElseS(ternary.getBooleanExpression(), returnS(ternary.getTrueExpression()), returnS(ternary.getFalseExpression()));
}
}
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java b/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
index dd187c645f..2c25f97b6b 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/SuperCallTraitTransformer.java
@@ -94,10 +94,8 @@ class SuperCallTraitTransformer extends ClassCodeExpressionTransformer {
exp.getLeftExpression().putNodeMetaData("assign.target", exp.getOperation());
Expression trn = super.transform(exp);
- if (trn instanceof BinaryExpression) {
- BinaryExpression bin = (BinaryExpression) trn;
- if (bin.getOperation().getType() == Types.ASSIGN && bin.getLeftExpression() instanceof PropertyExpression) {
- PropertyExpression leftExpression = (PropertyExpression) bin.getLeftExpression();
+ if (trn instanceof BinaryExpression bin) {
+ if (bin.getOperation().getType() == Types.ASSIGN && bin.getLeftExpression() instanceof PropertyExpression leftExpression) {
ClassNode traitType = getTraitSuperTarget(leftExpression.getObjectExpression());
if (traitType != null) {
ClassNode helperType = getHelper(traitType);
@@ -223,8 +221,7 @@ class SuperCallTraitTransformer extends ClassCodeExpressionTransformer {
}
private ClassNode getTraitSuperTarget(final Expression exp) {
- if (exp instanceof PropertyExpression) {
- PropertyExpression pexp = (PropertyExpression) exp;
+ if (exp instanceof PropertyExpression pexp) {
Expression objExp = pexp.getObjectExpression();
if (objExp instanceof ClassExpression) {
ClassNode type = objExp.getType();
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
index b2478262d5..70daf4acff 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitASTTransformation.java
@@ -131,8 +131,7 @@ public class TraitASTTransformation extends AbstractASTTransformation implements
AnnotationNode anno = (AnnotationNode) nodes[0];
if (!anno.getClassNode().equals(Traits.TRAIT_CLASSNODE)) return;
init(nodes, source);
- if (node instanceof ClassNode) {
- ClassNode cNode = (ClassNode) node;
+ if (node instanceof ClassNode cNode) {
if (!checkNotInterface(cNode, Traits.TRAIT_TYPE_NAME)) return;
checkInnerClasses(cNode);
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitReceiverTransformer.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitReceiverTransformer.java
index d0d9d21cde..787cf26543 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitReceiverTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitReceiverTransformer.java
@@ -97,8 +97,7 @@ class TraitReceiverTransformer extends ClassCodeExpressionTransformer {
ClassNode weavedType = weaved.getOriginType();
if (exp instanceof BinaryExpression) {
return transformBinaryExpression((BinaryExpression) exp, weavedType);
- } else if (exp instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) exp;
+ } else if (exp instanceof MethodCallExpression mce) {
String obj = mce.getObjectExpression().getText();
if ("super".equals(obj)) {
return transformSuperMethodCall(mce); // super.m(x) --> $self.Ttrait$super$m(x)
@@ -108,8 +107,7 @@ class TraitReceiverTransformer extends ClassCodeExpressionTransformer {
} else if (exp instanceof FieldExpression) {
FieldNode fn = ((FieldExpression) exp).getField();
return transformFieldReference(exp, fn, fn.isStatic());
- } else if (exp instanceof VariableExpression) {
- VariableExpression vexp = (VariableExpression) exp;
+ } else if (exp instanceof VariableExpression vexp) {
Variable accessedVariable = vexp.getAccessedVariable();
if (accessedVariable instanceof FieldNode || accessedVariable instanceof PropertyNode) {
if (knownFields.contains(vexp.getName())) {
@@ -134,8 +132,7 @@ class TraitReceiverTransformer extends ClassCodeExpressionTransformer {
if (vexp.isSuperExpression()) {
throwSuperError(vexp);
}
- } else if (exp instanceof PropertyExpression) {
- PropertyExpression pexp = (PropertyExpression) exp;
+ } else if (exp instanceof PropertyExpression pexp) {
String obj = pexp.getObjectExpression().getText();
if (pexp.isImplicitThis() || "this".equals(obj)) {
String propName = pexp.getPropertyAsString();
@@ -260,8 +257,7 @@ class TraitReceiverTransformer extends ClassCodeExpressionTransformer {
Expression arguments = transform(call.getArguments());
ArgumentListExpression superCallArgs = new ArgumentListExpression();
- if (arguments instanceof ArgumentListExpression) {
- ArgumentListExpression list = (ArgumentListExpression) arguments;
+ if (arguments instanceof ArgumentListExpression list) {
for (Expression expression : list) {
superCallArgs.addExpression(expression);
}
diff --git a/src/main/java/org/codehaus/groovy/util/ReferenceManager.java b/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
index dfd96953f7..54e7d9e410 100644
--- a/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
+++ b/src/main/java/org/codehaus/groovy/util/ReferenceManager.java
@@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
public class ReferenceManager {
private static class ThreadedReferenceManager extends ReferenceManager {
private final Thread thread;
- private volatile boolean shouldRun = true;
+ private volatile boolean shouldRun = true;
public ThreadedReferenceManager(ReferenceQueue queue) {
super(queue);
thread = new Thread(() -> {
@@ -40,8 +40,7 @@ public class ReferenceManager {
}
if (r==null) continue;
- if (r instanceof Reference) {
- Reference ref = (Reference) r;
+ if (r instanceof Reference ref) {
Finalizable holder = ref.getHandler();
if (holder!=null) holder.finalizeReference();
}
@@ -58,7 +57,7 @@ public class ReferenceManager {
public void stopThread() {
shouldRun = false;
thread.interrupt();
- }
+ }
@Override
public String toString() {
return "ReferenceManager(threaded, thread="+thread+")";
@@ -101,8 +100,7 @@ public class ReferenceManager {
java.lang.ref.Reference r = queue.poll();
if (r==null) break;
- if (r instanceof Reference) {
- Reference ref = (Reference) r;
+ if (r instanceof Reference ref) {
Finalizable holder = ref.getHandler();
if (holder!=null) holder.finalizeReference();
}
@@ -138,7 +136,7 @@ public class ReferenceManager {
// we change the manager once the threshold is reached. There is
// a small chance that the value will go beyond Integer.MAX_VALUE
// so we check for values below 0 too. If threshold is low, then
- // this is unlikely to happen. If threshold is high, then we
+ // this is unlikely to happen. If threshold is high, then we
// have all negative values as fall back
int count = refCnt.incrementAndGet();
if (count>threshold || count<0) {
@@ -158,8 +156,8 @@ public class ReferenceManager {
public String toString() {
return "ReferenceManager(thresholded, current manager="+manager+", threshold="+refCnt.get()+"/"+threshold+")";
}
- };
- }
+ };
+ }
private ReferenceQueue queue;
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java
index d17fca15fe..e813e3217f 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/IndyInterface.java
@@ -385,8 +385,7 @@ public class IndyInterface {
}
private static <T> T doWithCallSite(MutableCallSite callSite, Object[] arguments, BiFunction<? super CacheableCallSite, ? super Object, ? extends T> f) {
- if (callSite instanceof CacheableCallSite) {
- CacheableCallSite cacheableCallSite = (CacheableCallSite) callSite;
+ if (callSite instanceof CacheableCallSite cacheableCallSite) {
Object receiver = arguments[0];
if (null == receiver) receiver = NullObject.getNullObject();
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java
index 5d77b21a58..cab8b23ae8 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java
@@ -364,19 +364,16 @@ public class Java8 implements VMPlugin {
String typeName = definition.getClassNode().getName();
if ("java.lang.annotation.Retention".equals(typeName)) {
Expression exp = definition.getMember("value");
- if (!(exp instanceof PropertyExpression)) return;
- PropertyExpression pe = (PropertyExpression) exp;
+ if (!(exp instanceof PropertyExpression pe)) return;
String name = pe.getPropertyAsString();
RetentionPolicy policy = RetentionPolicy.valueOf(name);
setRetentionPolicy(policy, root);
} else if ("java.lang.annotation.Target".equals(typeName)) {
Expression exp = definition.getMember("value");
- if (!(exp instanceof ListExpression)) return;
- ListExpression list = (ListExpression) exp;
+ if (!(exp instanceof ListExpression list)) return;
int targets = 0;
for (Expression e : list.getExpressions()) {
- if (!(e instanceof PropertyExpression)) return;
- PropertyExpression element = (PropertyExpression) e;
+ if (!(e instanceof PropertyExpression element)) return;
String name = element.getPropertyAsString();
ElementType type = ElementType.valueOf(name);
Integer target = elementTypeToTarget.get(type);
@@ -611,8 +608,7 @@ public class Java8 implements VMPlugin {
return false;
}
- if (accessibleObject instanceof Constructor) {
- Constructor<?> c = (Constructor<?>) accessibleObject;
+ if (accessibleObject instanceof Constructor<?> c) {
if (c.getDeclaringClass() == Class.class) {
return false; // Cannot make a java.lang.Class constructor accessible
}
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
index a2901292c9..350b66d87a 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
@@ -418,8 +418,7 @@ public abstract class Selector {
if (LOG_ENABLED) LOG.info("getting constructor");
Object[] newArgs = removeRealReceiver(args);
method = mci.retrieveConstructor(newArgs);
- if (method instanceof MetaConstructor) {
- MetaConstructor mcon = (MetaConstructor) method;
+ if (method instanceof MetaConstructor mcon) {
if (mcon.isBeanConstructor()) {
if (LOG_ENABLED) LOG.info("do beans constructor");
beanConstructor = true;
@@ -433,9 +432,8 @@ public abstract class Selector {
@Override
public void setHandleForMetaMethod() {
if (method == null) return;
- if (method instanceof MetaConstructor) {
+ if (method instanceof MetaConstructor mc) {
if (LOG_ENABLED) LOG.info("meta method is MetaConstructor instance");
- MetaConstructor mc = (MetaConstructor) method;
isVargs = mc.isVargsMethod();
Constructor<?> con = mc.getCachedConstrcutor().getCachedConstructor();
try {
@@ -594,8 +592,7 @@ public abstract class Selector {
var receiver = getCorrectedReceiver();
if (receiver instanceof GroovyObject) {
mc = ((GroovyObject) receiver).getMetaClass();
- } else if (receiver instanceof Class) {
- Class<?> c = (Class<?>) receiver;
+ } else if (receiver instanceof Class<?> c) {
mc = GroovySystem.getMetaClassRegistry().getMetaClass(c);
cache &= !ClassInfo.getClassInfo(c).hasPerInstanceMetaClasses();
} else {
@@ -662,9 +659,8 @@ public abstract class Selector {
metaMethod = ((ReflectionMetaMethod) metaMethod).getCachedMethod();
}
- if (metaMethod instanceof CachedMethod) {
+ if (metaMethod instanceof CachedMethod cm) {
isVargs = metaMethod.isVargsMethod();
- CachedMethod cm = (CachedMethod) metaMethod;
VMPlugin vmplugin = VMPluginFactory.getPlugin();
cm = (CachedMethod) vmplugin.transformMetaMethod(mc, cm, sender);
try {
@@ -935,8 +931,7 @@ public abstract class Selector {
MethodHandle fallback = callSite.getFallbackTarget();
// special guards for receiver
- if (receiver instanceof GroovyObject) {
- GroovyObject go = (GroovyObject) receiver;
+ if (receiver instanceof GroovyObject go) {
MetaClass mc = go.getMetaClass();
MethodHandle test = SAME_MC.bindTo(mc);
// drop dummy receiver
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
index b9d5d922f7..6981ee17a2 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
@@ -192,9 +192,8 @@ public class Java9 extends Java8 {
@Override
public MetaMethod transformMetaMethod(final MetaClass metaClass, final MetaMethod metaMethod, Class<?> caller) {
- if (metaMethod instanceof CachedMethod) {
+ if (metaMethod instanceof CachedMethod cachedMethod) {
if (caller == null) caller = ReflectionUtils.class;
- CachedMethod cachedMethod = (CachedMethod) metaMethod;
CachedClass declaringClass = metaMethod.getDeclaringClass();
Optional<CachedMethod> transformedMethod = Optional.ofNullable(cachedMethod.getTransformedMethod());
if (transformedMethod.isEmpty()
@@ -282,11 +281,10 @@ public class Java9 extends Java8 {
throw new IllegalCallerException(); // should not happen
}
- if (!(accessibleObject instanceof Member)) {
+ if (!(accessibleObject instanceof Member member)) {
throw new IllegalArgumentException("accessibleObject should be a member of type: " + accessibleObject); // should not happen
}
- Member member = (Member) accessibleObject;
Class<?> declaringClass = member.getDeclaringClass();
Module callerModule = callerClass.getModule();
diff --git a/subprojects/groovy-ant/src/main/java/groovy/ant/AntBuilder.java b/subprojects/groovy-ant/src/main/java/groovy/ant/AntBuilder.java
index 5e0b6c164e..07dae0bc73 100644
--- a/subprojects/groovy-ant/src/main/java/groovy/ant/AntBuilder.java
+++ b/subprojects/groovy-ant/src/main/java/groovy/ant/AntBuilder.java
@@ -250,8 +250,7 @@ public class AntBuilder extends BuilderSupport {
}
// as in Target.execute()
- if (node instanceof Task) {
- Task task = (Task) node;
+ if (node instanceof Task task) {
final String taskName = task.getTaskName();
if ("antcall".equals(taskName) && parent == null) {
@@ -417,8 +416,7 @@ public class AntBuilder extends BuilderSupport {
String tagName = name.toString();
String ns = "";
- if (name instanceof QName) {
- QName q = (QName) name;
+ if (name instanceof QName q) {
tagName = q.getLocalPart();
ns = q.getNamespaceURI();
}
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovy.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovy.java
index 077fded670..d006256ec4 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovy.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovy.java
@@ -721,8 +721,7 @@ public class Groovy extends Java {
* @return the name to use when compiling the script
*/
private String computeScriptName() {
- if (src instanceof FileResource) {
- FileResource fr = (FileResource) src;
+ if (src instanceof FileResource fr) {
return fr.getFile().getAbsolutePath();
} else {
String name = PREFIX;
diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
index d26bc3041d..9c8a4eddcb 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
@@ -1391,8 +1391,7 @@ public class Groovyc extends MatchingTask {
}
ClassLoader loader = getClass().getClassLoader();
- if (loader instanceof AntClassLoader) {
- @SuppressWarnings("resource") AntClassLoader antLoader = (AntClassLoader) loader;
+ if (loader instanceof @SuppressWarnings("resource") AntClassLoader antLoader) {
String[] pathElm = antLoader.getClasspath().split(File.pathSeparator, -1);
List<String> classpath = configuration.getClasspath();
/*
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleTextEditor.java b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleTextEditor.java
index d255546dbd..03e0f7978a 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleTextEditor.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleTextEditor.java
@@ -361,8 +361,7 @@ public class ConsoleTextEditor extends JScrollPane {
doc.setDocumentFilter(documentFilter);
disableMatchingHighlighter();
- if (documentFilter instanceof SmartDocumentFilter) {
- final SmartDocumentFilter smartDocumentFilter = (SmartDocumentFilter) documentFilter;
+ if (documentFilter instanceof SmartDocumentFilter smartDocumentFilter) {
enableMatchingHighlighter(smartDocumentFilter);
}
} catch (ReflectiveOperationException e) {
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/TextEditor.java b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/TextEditor.java
index fd8c9a6421..904b3a9c2a 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/TextEditor.java
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/TextEditor.java
@@ -496,8 +496,7 @@ public class TextEditor extends JTextPane implements Pageable, Printable {
private void setRenderRange(int start, int stop) {
DocumentFilter documentFilter = ((DefaultStyledDocument) TextEditor.this.getDocument()).getDocumentFilter();
- if (documentFilter instanceof SmartDocumentFilter) {
- SmartDocumentFilter smartDocumentFilter = (SmartDocumentFilter) documentFilter;
+ if (documentFilter instanceof SmartDocumentFilter smartDocumentFilter) {
smartDocumentFilter.setRenderRange(Tuple.tuple(start, stop));
}
}
diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ast/visitor/AnnotationClosureVisitor.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ast/visitor/AnnotationClosureVisitor.java
index a8d1770bcb..024d4168d1 100644
--- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ast/visitor/AnnotationClosureVisitor.java
+++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/ast/visitor/AnnotationClosureVisitor.java
@@ -335,8 +335,7 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
// in case of a FieldNode, checks whether the FieldNode can be replaced with a Parameter
Variable accessedVariable = getParameterCandidate(expression.getAccessedVariable());
- if (accessedVariable instanceof FieldNode) {
- FieldNode fieldNode = (FieldNode) accessedVariable;
+ if (accessedVariable instanceof FieldNode fieldNode) {
if (fieldNode.isPrivate() && !classNode.hasProperty(fieldNode.getName())) {
// if this is a class invariant we'll change the field node access
@@ -345,8 +344,7 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
}
}
- if (accessedVariable instanceof Parameter) {
- Parameter parameter = (Parameter) accessedVariable;
+ if (accessedVariable instanceof Parameter parameter) {
if ("it".equals(parameter.getName())) {
addError("[groovy-contracts] Access to 'it' is not supported.", expression);
}
@@ -362,8 +360,7 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
checkOperation(expression, expression.getOperation());
if (secondPass) {
- if (expression.getExpression() instanceof VariableExpression) {
- VariableExpression variableExpression = (VariableExpression) expression.getExpression();
+ if (expression.getExpression() instanceof VariableExpression variableExpression) {
if (variableExpressions.containsKey(variableExpression)) {
expression.setExpression(variableExpressions.get(variableExpression));
}
@@ -378,8 +375,7 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
checkOperation(expression, expression.getOperation());
if (secondPass) {
- if (expression.getExpression() instanceof VariableExpression) {
- VariableExpression variableExpression = (VariableExpression) expression.getExpression();
+ if (expression.getExpression() instanceof VariableExpression variableExpression) {
if (variableExpressions.containsKey(variableExpression)) {
expression.setExpression(variableExpressions.get(variableExpression));
}
@@ -394,14 +390,12 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
checkOperation(expression, expression.getOperation());
if (secondPass) {
- if (expression.getLeftExpression() instanceof VariableExpression) {
- VariableExpression variableExpression = (VariableExpression) expression.getLeftExpression();
+ if (expression.getLeftExpression() instanceof VariableExpression variableExpression) {
if (variableExpressions.containsKey(variableExpression)) {
expression.setLeftExpression(variableExpressions.get(variableExpression));
}
}
- if (expression.getRightExpression() instanceof VariableExpression) {
- VariableExpression variableExpression = (VariableExpression) expression.getRightExpression();
+ if (expression.getRightExpression() instanceof VariableExpression variableExpression) {
if (variableExpressions.containsKey(variableExpression)) {
expression.setRightExpression(variableExpressions.get(variableExpression));
}
@@ -491,8 +485,7 @@ public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMeta
// add a cast but only if an explicit cast is not already there and we haven't been here before
PropertyExpression propExpr = (PropertyExpression) super.transform(expr);
Expression objExpr = propExpr.getObjectExpression();
- if (objExpr instanceof VariableExpression) {
- VariableExpression varExpr = (VariableExpression) objExpr;
+ if (objExpr instanceof VariableExpression varExpr) {
if ("old".equals(varExpr.getName())) {
String propName = propExpr.getPropertyAsString();
ClassNode declaringClass = methodNode.getDeclaringClass();
diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ClassInvariantGenerator.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ClassInvariantGenerator.java
index 57919865fd..20b7b2fd0a 100644
--- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ClassInvariantGenerator.java
+++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/ClassInvariantGenerator.java
@@ -101,8 +101,7 @@ public class ClassInvariantGenerator extends BaseGenerator {
Statement invariantMethodCall = stmt(callThisX(invariantMethod.getName()));
final Statement statement = method.getCode();
- if (statement instanceof BlockStatement && !isPrimitiveVoid(method.getReturnType()) && !(method instanceof ConstructorNode)) {
- final BlockStatement blockStatement = (BlockStatement) statement;
+ if (statement instanceof BlockStatement blockStatement && !isPrimitiveVoid(method.getReturnType()) && !(method instanceof ConstructorNode)) {
final List<ReturnStatement> returnStatements = AssertStatementCreationUtility.getReturnStatements(method);
for (ReturnStatement returnStatement : returnStatements) {
@@ -111,8 +110,7 @@ public class ClassInvariantGenerator extends BaseGenerator {
if (returnStatements.isEmpty()) blockStatement.addStatement(invariantMethodCall);
- } else if (statement instanceof BlockStatement) {
- final BlockStatement blockStatement = (BlockStatement) statement;
+ } else if (statement instanceof BlockStatement blockStatement) {
blockStatement.addStatement(invariantMethodCall);
} else {
final BlockStatement assertionBlock = block(statement, invariantMethodCall);
diff --git a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/PreconditionGenerator.java b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/PreconditionGenerator.java
index 82c359069f..0a573def33 100644
--- a/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/PreconditionGenerator.java
+++ b/subprojects/groovy-contracts/src/main/java/org/apache/groovy/contracts/generation/PreconditionGenerator.java
@@ -100,9 +100,8 @@ public class PreconditionGenerator extends BaseGenerator {
final BlockStatement modifiedMethodCode = block();
modifiedMethodCode.addStatements(blockStatement.getStatements());
- if (method.getCode() instanceof BlockStatement) {
+ if (method.getCode() instanceof BlockStatement methodBlock) {
- BlockStatement methodBlock = (BlockStatement) method.getCode();
for (Statement statement : methodBlock.getStatements()) {
if (method instanceof ConstructorNode && statement instanceof ExpressionStatement && ((ExpressionStatement) statement).getExpression() instanceof ConstructorCallExpression) {
modifiedMethodCode.getStatements().add(0, statement);
diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java
index beb5e39220..6c1792cdde 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java
@@ -336,8 +336,7 @@ public class GinqAstBuilder extends CodeVisitorSupport implements SyntaxErrorRep
TupleExpression tupleExpression = (TupleExpression) call.getArguments();
if (1 == tupleExpression.getExpressions().size()) {
Expression firstExpression = tupleExpression.getExpressions().get(0);
- if (firstExpression instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) firstExpression;
+ if (firstExpression instanceof MethodCallExpression mce) {
if (KW_DISTINCT.equals(mce.getMethodAsString())) {
tupleExpression = (TupleExpression) mce.getArguments();
currentGinqExpression.putNodeMetaData(GINQ_SELECT_DISTINCT, true);
@@ -345,8 +344,7 @@ public class GinqAstBuilder extends CodeVisitorSupport implements SyntaxErrorRep
}
} else {
for (Expression expression : tupleExpression.getExpressions()) {
- if (expression instanceof MethodCallExpression) {
- MethodCallExpression mce = (MethodCallExpression) expression;
+ if (expression instanceof MethodCallExpression mce) {
if (KW_DISTINCT.equals(mce.getMethodAsString())) {
this.collectSyntaxError(new GinqSyntaxError(
"Invalid usage of `distinct`",
diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java
index dd53faeda1..a9940dd93c 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/Queryable.java
@@ -550,8 +550,7 @@ public interface Queryable<T> {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof Order)) return false;
- Order<?, ?> order = (Order<?, ?>) o;
+ if (!(o instanceof Order<?, ?> order)) return false;
return asc == order.asc &&
keyExtractor.equals(order.keyExtractor);
}
diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
index 603cd97c01..efec5d32dd 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
@@ -661,8 +661,7 @@ class QueryableCollection<T> implements Queryable<T>, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof PartitionCacheKey)) return false;
- PartitionCacheKey that = (PartitionCacheKey) o;
+ if (!(o instanceof PartitionCacheKey that)) return false;
return partitionKey.equals(that.partitionKey) && partitionId.equals(that.partitionId);
}
@@ -684,8 +683,7 @@ class QueryableCollection<T> implements Queryable<T>, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof SortedPartitionCacheKey)) return false;
- SortedPartitionCacheKey that = (SortedPartitionCacheKey) o;
+ if (!(o instanceof SortedPartitionCacheKey that)) return false;
return partition == that.partition && orderId.equals(that.orderId);
}
@@ -777,8 +775,7 @@ class QueryableCollection<T> implements Queryable<T>, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof QueryableCollection)) return false;
- QueryableCollection<?> that = (QueryableCollection<?>) o;
+ if (!(o instanceof QueryableCollection<?> that)) return false;
return toList().equals(that.toList());
}
diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinitionImpl.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinitionImpl.java
index 8f24dfc8c9..97b94811a6 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinitionImpl.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/WindowDefinitionImpl.java
@@ -112,8 +112,7 @@ class WindowDefinitionImpl<T, U extends Comparable<? super U>> implements Window
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (!(o instanceof WindowDefinitionImpl)) return false;
- WindowDefinitionImpl<?, ?> that = (WindowDefinitionImpl<?, ?>) o;
+ if (!(o instanceof WindowDefinitionImpl<?, ?> that)) return false;
return Objects.equals(id, that.id);
}
diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/transform/GinqASTTransformation.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/transform/GinqASTTransformation.java
index 1d3638c356..e6b333e6b0 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/transform/GinqASTTransformation.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/transform/GinqASTTransformation.java
@@ -67,8 +67,7 @@ public class GinqASTTransformation extends AbstractASTTransformation {
AnnotationNode annotationNode = (AnnotationNode) nodes[0];
if (!GQ_CLASS_NODE.equals(annotationNode.getClassNode())) return;
- if (annotatedNode instanceof MethodNode) {
- MethodNode methodNode = (MethodNode) annotatedNode;
+ if (annotatedNode instanceof MethodNode methodNode) {
if (methodNode.isAbstract()) {
addError("Error during " + GQ_CLASS_NODE.getName() + " processing: annotation not allowed on abstract method '" + methodNode.getName() + "'", methodNode);
return;
diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
index 16fe347ae3..a4f31b5084 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java
@@ -273,8 +273,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
while (nextClass != null && nextClass.getSuperclass() != null && !Object.class.equals(nextClass)) {
nextClass = nextClass.getSuperclass();
GroovyClassDoc nextDoc = new ExternalGroovyClassDoc(nextClass);
- if (prev instanceof SimpleGroovyClassDoc) {
- SimpleGroovyClassDoc parent = (SimpleGroovyClassDoc) prev;
+ if (prev instanceof SimpleGroovyClassDoc parent) {
parent.setSuperClass(nextDoc);
}
result.add(0, nextDoc);
@@ -296,8 +295,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
for (GroovyClassDoc t : temp) {
if (t instanceof SimpleGroovyClassDoc) {
next.addAll(((SimpleGroovyClassDoc)t).getParentInterfaces());
- } else if (t instanceof ExternalGroovyClassDoc) {
- ExternalGroovyClassDoc d = (ExternalGroovyClassDoc) t;
+ } else if (t instanceof ExternalGroovyClassDoc d) {
next.addAll(getJavaInterfaces(d));
}
}
@@ -400,10 +398,8 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
// resolve property types
for (GroovyFieldDoc property : properties) {
- if (property instanceof SimpleGroovyFieldDoc) {
- SimpleGroovyFieldDoc simpleGroovyFieldDoc = (SimpleGroovyFieldDoc) property;
- if (simpleGroovyFieldDoc.type() instanceof SimpleGroovyType) {
- SimpleGroovyType simpleGroovyType = (SimpleGroovyType) simpleGroovyFieldDoc.type();
+ if (property instanceof SimpleGroovyFieldDoc simpleGroovyFieldDoc) {
+ if (simpleGroovyFieldDoc.type() instanceof SimpleGroovyType simpleGroovyType) {
GroovyClassDoc propertyTypeClassDoc = resolveClass(rootDoc, simpleGroovyType.qualifiedTypeName());
if (propertyTypeClassDoc != null) {
simpleGroovyFieldDoc.setType(propertyTypeClassDoc);
@@ -633,8 +629,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp
if (slashIndex > 0) {
String outerName = name.substring(0, slashIndex);
GroovyClassDoc gcd = resolveClass(rootDoc, outerName);
- if (gcd instanceof ExternalGroovyClassDoc) {
- ExternalGroovyClassDoc egcd = (ExternalGroovyClassDoc) gcd;
+ if (gcd instanceof ExternalGroovyClassDoc egcd) {
String innerName = name.substring(slashIndex+1);
Class outerClass = egcd.externalClass();
for (Class inner : outerClass.getDeclaredClasses()) {
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java
index 3cb2d52fca..4c5bcdaa2c 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java
@@ -1083,8 +1083,7 @@ public class GroovyEngine implements ScriptEngine {
try {
for (Object o : classesForPackage(domain, shell)) {
String name = null;
- if (o instanceof Class<?>) {
- Class<?> c = (Class<?>) o;
+ if (o instanceof Class<?> c) {
try {
if ((!Modifier.isPublic(c.getModifiers()) && !access.allClasses)
|| c.getCanonicalName() == null) {
@@ -1504,10 +1503,9 @@ public class GroovyEngine implements ScriptEngine {
@SuppressWarnings("unchecked")
private void doIdentifierCandidates(List<Candidate> candidates, Object object, String curBuf) {
- if (!(object instanceof Map)) {
+ if (!(object instanceof Map<?, ?> map)) {
return;
}
- Map<?, ?> map = (Map<?, ?>) object;
if (map.isEmpty() || !(map.keySet().iterator().next() instanceof String)) {
return;
}
@@ -2228,16 +2226,14 @@ public class GroovyEngine implements ScriptEngine {
} catch (org.codehaus.groovy.control.MultipleCompilationErrorsException e) {
if (e.getErrorCollector().getErrors() != null) {
for (Object o : e.getErrorCollector().getErrors()) {
- if (o instanceof SyntaxErrorMessage) {
- SyntaxErrorMessage sem = (SyntaxErrorMessage) o;
+ if (o instanceof SyntaxErrorMessage sem) {
out.setErrorIndex(errorIndex(e.getMessage(), sem.getCause()));
}
}
}
if (e.getErrorCollector().getWarnings() != null) {
for (Object o : e.getErrorCollector().getWarnings()) {
- if (o instanceof SyntaxErrorMessage) {
- SyntaxErrorMessage sem = (SyntaxErrorMessage) o;
+ if (o instanceof SyntaxErrorMessage sem) {
out.setErrorIndex(errorIndex(e.getMessage(), sem.getCause()));
}
}
diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/SystemRegistryImpl.java b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/SystemRegistryImpl.java
index 6a3849aa4c..321394d4da 100644
--- a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/SystemRegistryImpl.java
+++ b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/SystemRegistryImpl.java
@@ -269,8 +269,7 @@ public class SystemRegistryImpl implements SystemRegistry {
}
public void addCompleter(Completer completer) {
- if (completer instanceof SystemCompleter) {
- SystemCompleter sc = (SystemCompleter) completer;
+ if (completer instanceof SystemCompleter sc) {
if (sc.isCompiled()) {
customAggregateCompleter.getCompleters().add(sc);
} else {
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
index fe67b0ba41..7242a07453 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxBuilderModelMBean.java
@@ -200,8 +200,7 @@ public class JmxBuilderModelMBean extends RequiredModelMBean implements Notifica
if (event != null) {
Object del = event.get("managedObject");
Object callback = event.get("callback");
- if (callback != null && callback instanceof Closure) {
- Closure closure = (Closure) callback;
+ if (callback != null && callback instanceof Closure closure) {
closure.setDelegate(del);
if (closure.getMaximumNumberOfParameters() == 1)
closure.call(buildAttributeNotificationPacket(note));
diff --git a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
index 26e7380fb0..1fadb5b695 100644
--- a/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
+++ b/subprojects/groovy-jmx/src/main/java/groovy/jmx/builder/JmxEventListener.java
@@ -59,8 +59,7 @@ public class JmxEventListener implements NotificationListener {
if (event != null) {
Object del = event.get("managedObject");
Object callback = event.get("callback");
- if (callback != null && callback instanceof Closure) {
- Closure closure = (Closure) callback;
+ if (callback != null && callback instanceof Closure closure) {
closure.setDelegate(del);
if (closure.getMaximumNumberOfParameters() == 1)
closure.call(buildOperationNotificationPacket(notification));
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java b/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
index d2cf391e4f..66ae17f37a 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
@@ -246,8 +246,7 @@ public class DefaultJsonGenerator implements JsonGenerator {
if ( isStatic(mp.getModifiers())) continue; // GROOVY-7682
// skip write-only property: see File
- if (mp instanceof MetaBeanProperty) {
- MetaBeanProperty mbp = (MetaBeanProperty) mp;
+ if (mp instanceof MetaBeanProperty mbp) {
if (mbp.getField() == null && mbp.getGetter() == null) continue;
}
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
index c4563c7316..4fd097ebf1 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
@@ -317,8 +317,7 @@ public class JsonBuilder extends GroovyObjectSupport implements Writable {
} else if (arr.length == 2) {
final Object first = arr[0];
final Object second = arr[1];
- if (second instanceof Closure) {
- final Closure closure = (Closure)second;
+ if (second instanceof Closure closure) {
if (first instanceof Map) {
Map<String, Object> subMap = new LinkedHashMap<>();
subMap.putAll(asMap(first));
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
index 7d442490ce..380ad48630 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
@@ -463,8 +463,7 @@ public class StreamingJsonBuilder extends GroovyObjectSupport {
call(name);
break;
case 1:
- if (arr[0] instanceof Closure) {
- final Closure callable = (Closure) arr[0];
+ if (arr[0] instanceof Closure callable) {
call(name, callable);
} else if (arr[0] instanceof Map) {
final Map<String, Map> map = Collections.singletonMap(name, (Map) arr[0]);
@@ -482,8 +481,7 @@ public class StreamingJsonBuilder extends GroovyObjectSupport {
final Closure callable = (Closure) second;
call(name, (Map)first, callable);
}
- else if(isClosure && first instanceof Iterable) {
- final Iterable coll = (Iterable) first;
+ else if(isClosure && first instanceof Iterable coll) {
final Closure callable = (Closure) second;
call(name, coll, callable);
}
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
index e7d9373b29..26fff71fae 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/LazyValueMap.java
@@ -121,11 +121,9 @@ public class LazyValueMap extends AbstractMap<String, Object> implements ValueMa
*/
private void lazyChopIfNeeded(Object object) {
if (lazyChop) {
- if (object instanceof LazyValueMap) {
- LazyValueMap m = (LazyValueMap) object;
+ if (object instanceof LazyValueMap m) {
m.chopMap();
- } else if (object instanceof ValueList) {
- ValueList list = (ValueList) object;
+ } else if (object instanceof ValueList list) {
list.chopList();
}
}
@@ -159,18 +157,15 @@ public class LazyValueMap extends AbstractMap<String, Object> implements ValueMa
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object object = entry.getValue();
- if (object instanceof Value) {
- Value value = (Value) object;
+ if (object instanceof Value value) {
if (value.isContainer()) {
chopContainer(value);
} else {
value.chop();
}
- } else if (object instanceof LazyValueMap) {
- LazyValueMap m = (LazyValueMap) object;
+ } else if (object instanceof LazyValueMap m) {
m.chopMap();
- } else if (object instanceof ValueList) {
- ValueList list = (ValueList) object;
+ } else if (object instanceof ValueList list) {
list.chopList();
}
}
@@ -180,11 +175,9 @@ public class LazyValueMap extends AbstractMap<String, Object> implements ValueMa
/* We need to chop up this child container. */
private static void chopContainer(Value value) {
Object obj = value.toValue();
- if (obj instanceof LazyValueMap) {
- LazyValueMap map = (LazyValueMap) obj;
+ if (obj instanceof LazyValueMap map) {
map.chopMap();
- } else if (obj instanceof ValueList) {
- ValueList list = (ValueList) obj;
+ } else if (obj instanceof ValueList list) {
list.chopList();
}
}
diff --git a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
index 489cd2c2b2..568d8bfab3 100644
--- a/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
+++ b/subprojects/groovy-json/src/main/java/org/apache/groovy/json/internal/ValueList.java
@@ -85,8 +85,7 @@ public class ValueList extends AbstractList<Object> {
for (Object obj : list) {
if (obj == null) continue;
- if (obj instanceof Value) {
- Value value = (Value) obj;
+ if (obj instanceof Value value) {
if (value.isContainer()) {
chopContainer(value);
} else {
@@ -98,11 +97,9 @@ public class ValueList extends AbstractList<Object> {
private void chopIfNeeded(Object object) {
if (lazyChop) {
- if (object instanceof LazyValueMap) {
- LazyValueMap m = (LazyValueMap) object;
+ if (object instanceof LazyValueMap m) {
m.chopMap();
- } else if (object instanceof ValueList) {
- ValueList list = (ValueList) object;
+ } else if (object instanceof ValueList list) {
list.chopList();
}
}
@@ -110,11 +107,9 @@ public class ValueList extends AbstractList<Object> {
static void chopContainer(Value value) {
Object obj = value.toValue();
- if (obj instanceof LazyValueMap) {
- LazyValueMap map = (LazyValueMap) obj;
+ if (obj instanceof LazyValueMap map) {
map.chopMap();
- } else if (obj instanceof ValueList) {
- ValueList list = (ValueList) obj;
+ } else if (obj instanceof ValueList list) {
list.chopList();
}
}
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
index 6a8480ee33..264cf22ccc 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java
@@ -177,13 +177,11 @@ public class MacroGroovyMethods {
return null;
}
- if (!(macroCallArguments instanceof TupleExpression)) {
+ if (!(macroCallArguments instanceof TupleExpression tupleArguments)) {
source.addError(new SyntaxException("Call should have TupleExpression as arguments" + '\n', macroCallArguments));
return null;
}
- TupleExpression tupleArguments = (TupleExpression) macroCallArguments;
-
if (tupleArguments.getExpressions() == null) {
source.addError(new SyntaxException("Call arguments should have expressions" + '\n', tupleArguments));
return null;
diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
index 89ccb524ae..b4b9f437dd 100644
--- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
+++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/runtime/MacroBuilder.java
@@ -99,12 +99,10 @@ public enum MacroBuilder {
ClassCodeExpressionTransformer trn = new ClassCodeExpressionTransformer() {
@Override
public Expression transform(Expression expression) {
- if (!(expression instanceof MethodCallExpression)) {
+ if (!(expression instanceof MethodCallExpression call)) {
return super.transform(expression);
}
- MethodCallExpression call = (MethodCallExpression) expression;
-
if (!DOLLAR_VALUE.equals(call.getMethodAsString())) {
return super.transform(expression);
}
diff --git a/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java b/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
index 37c970c106..2cf87875d8 100644
--- a/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
+++ b/subprojects/groovy-sql/src/main/java/groovy/sql/Sql.java
@@ -4334,8 +4334,7 @@ public class Sql implements AutoCloseable {
int i = 1;
ParameterMetaData metaData = getParameterMetaDataSafe(statement);
if (metaData != null) {
- if (metaData.getParameterCount() == 0 && params.size() == 1 && params.get(0) instanceof Map) {
- Map paramsMap = (Map) params.get(0);
+ if (metaData.getParameterCount() == 0 && params.size() == 1 && params.get(0) instanceof Map paramsMap) {
if (paramsMap.isEmpty()) return;
}
// GROOVY-8174: we'd like stricter checking here but many drivers currently in use just aren't consistent enough, so we log
@@ -4369,8 +4368,7 @@ public class Sql implements AutoCloseable {
protected void setObject(PreparedStatement statement, int i, Object value)
throws SQLException {
if (value instanceof InParameter || value instanceof OutParameter) {
- if (value instanceof InParameter) {
- InParameter in = (InParameter) value;
+ if (value instanceof InParameter in) {
Object val = in.getValue();
if (null == val) {
statement.setNull(i, in.getType());
@@ -4378,9 +4376,8 @@ public class Sql implements AutoCloseable {
statement.setObject(i, val, in.getType());
}
}
- if (value instanceof OutParameter) {
+ if (value instanceof OutParameter out) {
try {
- OutParameter out = (OutParameter) value;
((CallableStatement) statement).registerOutParameter(i, out.getType());
} catch (ClassCastException e) {
throw new SQLException("Cannot register out parameter.");
diff --git a/subprojects/groovy-swing/src/main/java/groovy/swing/model/DefaultTableColumn.java b/subprojects/groovy-swing/src/main/java/groovy/swing/model/DefaultTableColumn.java
index e51af1efda..faf1014fa4 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/swing/model/DefaultTableColumn.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/swing/model/DefaultTableColumn.java
@@ -20,12 +20,12 @@ package groovy.swing.model;
import javax.swing.table.TableColumn;
-/**
+/**
* Represents a column using a ValueModel to extract the value.
*/
public class DefaultTableColumn extends TableColumn {
- private ValueModel valueModel;
+ private ValueModel valueModel;
public DefaultTableColumn(ValueModel valueModel) {
this.valueModel = valueModel;
@@ -53,18 +53,16 @@ public class DefaultTableColumn extends TableColumn {
* @param row the row of interest
* @param rowIndex the index of the row of interest
* @param columnIndex the column of interest
- */
+ */
public Object getValue(Object row, int rowIndex, int columnIndex) {
- if (valueModel instanceof NestedValueModel) {
- NestedValueModel nestedModel = (NestedValueModel) valueModel;
+ if (valueModel instanceof NestedValueModel nestedModel) {
nestedModel.getSourceModel().setValue(row);
}
return valueModel.getValue();
}
public void setValue(Object row, Object value, int rowIndex, int columnIndex) {
- if (valueModel instanceof NestedValueModel) {
- NestedValueModel nestedModel = (NestedValueModel) valueModel;
+ if (valueModel instanceof NestedValueModel nestedModel) {
nestedModel.getSourceModel().setValue(row);
}
valueModel.setValue(value);
@@ -81,4 +79,4 @@ public class DefaultTableColumn extends TableColumn {
return valueModel;
}
-}
\ No newline at end of file
+}
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
index 7eb165ded9..a38f432a16 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/XmlTemplateEngine.java
@@ -239,8 +239,7 @@ public class XmlTemplateEngine extends TemplateEngine {
@Override
protected boolean printSpecialNode(Node node) {
Object name = node.name();
- if (name instanceof QName) {
- QName qn = (QName) name;
+ if (name instanceof QName qn) {
// check uri and for legacy cases just check prefix name (not recommended)
if ("http://groovy.codehaus.org/2005/gsp".equals(qn.getNamespaceURI()) || "gsp".equals(qn.getPrefix())) {
String s = qn.getLocalPart();
diff --git a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
index aa4f1b424a..c3f7915e2a 100644
--- a/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
+++ b/subprojects/groovy-templates/src/main/groovy/groovy/text/markup/MarkupBuilderCodeTransformer.java
@@ -86,13 +86,11 @@ class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
if (exp instanceof MethodCallExpression) {
return transformMethodCall((MethodCallExpression) exp);
}
- if (exp instanceof ClosureExpression) {
- ClosureExpression cl = (ClosureExpression) exp;
+ if (exp instanceof ClosureExpression cl) {
cl.getCode().visit(this);
return cl;
}
- if (exp instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) exp;
+ if (exp instanceof VariableExpression var) {
if (var.getAccessedVariable() instanceof DynamicVariable) {
MethodCallExpression callGetModel = new MethodCallExpression(
new VariableExpression("this"),
@@ -130,8 +128,7 @@ class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
Expression left = bin.getLeftExpression();
Expression right = bin.getRightExpression();
boolean assignment = bin.getOperation().getType() == Types.ASSIGN;
- if (assignment && left instanceof VariableExpression) {
- VariableExpression var = (VariableExpression) left;
+ if (assignment && left instanceof VariableExpression var) {
if (var.getAccessedVariable() instanceof DynamicVariable) {
String varName = var.getName();
if (!"modelTypes".equals(varName)) {
@@ -153,8 +150,7 @@ class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
}
}
}
- if (assignment && left instanceof VariableExpression && right instanceof ClosureExpression) {
- VariableExpression var = (VariableExpression) left;
+ if (assignment && left instanceof VariableExpression var && right instanceof ClosureExpression) {
if ("modelTypes".equals(var.getName())) {
// template declaring its expected types from model directly
// modelTypes = {
@@ -177,8 +173,7 @@ class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
}
private void extractModelTypesFromStatement(final Statement code, final Map<String, ClassNode> model) {
- if (code instanceof BlockStatement) {
- BlockStatement block = (BlockStatement) code;
+ if (code instanceof BlockStatement block) {
for (Statement statement : block.getStatements()) {
extractModelTypesFromStatement(statement, model);
}
@@ -240,8 +235,7 @@ class MarkupBuilderCodeTransformer extends ClassCodeExpressionTransformer {
Expression arguments = exp.getArguments();
if (arguments instanceof TupleExpression) {
List<Expression> expressions = ((TupleExpression) arguments).getExpressions();
- if (expressions.size() == 1 && expressions.get(0) instanceof MapExpression) {
- MapExpression map = (MapExpression) expressions.get(0);
+ if (expressions.size() == 1 && expressions.get(0) instanceof MapExpression map) {
List<MapEntryExpression> entries = map.getMapEntryExpressions();
if (entries.size() == 1) {
MapEntryExpression mapEntry = entries.get(0);
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
index 3a818f553c..8bfd974eed 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/DOMBuilder.java
@@ -73,7 +73,7 @@ public class DOMBuilder extends BuilderSupport {
/**
* Creates a DocumentBuilder and uses it to parse the XML text read from the given reader, allowing
- * parser validation and namespace awareness to be controlled. Documents are not allowed to contain
+ * parser validation and namespace awareness to be controlled. Documents are not allowed to contain
* DOCYTYPE declarations.
*
* @param reader the reader to read the XML text from
@@ -154,8 +154,7 @@ public class DOMBuilder extends BuilderSupport {
if (document == null) {
document = createDocument();
}
- if (name instanceof QName) {
- QName qname = (QName) name;
+ if (name instanceof QName qname) {
return document.createElementNS(qname.getNamespaceURI(), qname.getQualifiedName());
} else {
return document.createElement(name.toString());
@@ -218,8 +217,7 @@ public class DOMBuilder extends BuilderSupport {
}
if (key instanceof String) {
setStringNS(element, key, value);
- } else if (key instanceof QName) {
- QName qname = (QName) key;
+ } else if (key instanceof QName qname) {
element.setAttributeNS(qname.getNamespaceURI(), qname.getQualifiedName(), value.toString());
} else {
throw new IllegalArgumentException("The key: " + key + " should be an instance of " + QName.class);
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
index 4e86dc97c3..823accdbdb 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/SAXBuilder.java
@@ -134,8 +134,7 @@ public class SAXBuilder extends BuilderSupport {
String localName;
String qualifiedName;
- if (name instanceof QName) {
- QName qname = (QName) name;
+ if (name instanceof QName qname) {
uri = qname.getNamespaceURI();
localName = qname.getLocalPart();
qualifiedName = qname.getQualifiedName();
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlNodePrinter.java b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlNodePrinter.java
index 9225a2fcab..5814596640 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/XmlNodePrinter.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/XmlNodePrinter.java
@@ -294,8 +294,7 @@ public class XmlNodePrinter {
if (namespaceAware) {
if (object instanceof Node) {
printNamespace(((Node) object).name(), ctx);
- } else if (object instanceof QName) {
- QName qname = (QName) object;
+ } else if (object instanceof QName qname) {
String namespaceUri = qname.getNamespaceURI();
if (namespaceUri != null) {
String prefix = qname.getPrefix();
@@ -350,8 +349,7 @@ public class XmlNodePrinter {
protected String getName(Object object) {
if (object instanceof String) {
return (String) object;
- } else if (object instanceof QName) {
- QName qname = (QName) object;
+ } else if (object instanceof QName qname) {
if (!namespaceAware) {
return qname.getLocalPart();
}
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java b/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
index fe44186178..1a6608d621 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/dom/DOMCategory.java
@@ -327,8 +327,7 @@ public class DOMCategory {
public static Element appendNode(Element self, Object name, String value) {
Document doc = self.getOwnerDocument();
Element newChild;
- if (name instanceof QName) {
- QName qn = (QName) name;
+ if (name instanceof QName qn) {
newChild = doc.createElementNS(qn.getNamespaceURI(), qn.getQualifiedName());
} else {
newChild = doc.createElement(name.toString());
diff --git a/subprojects/groovy-xml/src/main/java/groovy/xml/streamingmarkupsupport/BaseMarkupBuilder.java b/subprojects/groovy-xml/src/main/java/groovy/xml/streamingmarkupsupport/BaseMarkupBuilder.java
index 7375f93dfb..f6e46b1540 100644
--- a/subprojects/groovy-xml/src/main/java/groovy/xml/streamingmarkupsupport/BaseMarkupBuilder.java
+++ b/subprojects/groovy-xml/src/main/java/groovy/xml/streamingmarkupsupport/BaseMarkupBuilder.java
@@ -123,8 +123,7 @@ public class BaseMarkupBuilder extends Builder {
if (arg instanceof Map) {
attrs = (Map) arg;
- } else if (arg instanceof Closure) {
- final Closure c = ((Closure) arg);
+ } else if (arg instanceof Closure c) {
c.setDelegate(this);
body = c.asWritable();
diff --git a/subprojects/groovy-xml/src/main/java/org/apache/groovy/xml/tools/DomToGroovy.java b/subprojects/groovy-xml/src/main/java/org/apache/groovy/xml/tools/DomToGroovy.java
index 5e5017ce55..3abe115afd 100644
--- a/subprojects/groovy-xml/src/main/java/org/apache/groovy/xml/tools/DomToGroovy.java
+++ b/subprojects/groovy-xml/src/main/java/org/apache/groovy/xml/tools/DomToGroovy.java
@@ -178,8 +178,7 @@ public class DomToGroovy {
private void printChildren(Element element, Map namespaces, boolean endWithComma, boolean hasAttributes, NodeList list, int length) {
Node node = list.item(0);
- if (length == 1 && node instanceof Text) {
- Text textNode = (Text) node;
+ if (length == 1 && node instanceof Text textNode) {
String text = getTextNodeData(textNode);
if (hasAttributes) print(", ");
printQuoted(text);