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 2024/10/27 05:25:19 UTC
(groovy) branch master updated: Flip operands of `equals` to avoid potential NPE
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 1ad5b8f160 Flip operands of `equals` to avoid potential NPE
1ad5b8f160 is described below
commit 1ad5b8f1606db5f9814f490881c166c8ff0857e2
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Oct 27 13:24:15 2024 +0800
Flip operands of `equals` to avoid potential NPE
---
.../groovy/beans/BindableASTTransformation.java | 6 ++---
.../groovy/beans/VetoableASTTransformation.java | 6 ++---
.../groovy/grape/GrabAnnotationTransformation.java | 2 +-
src/main/java/groovy/lang/GroovyClassLoader.java | 2 +-
.../java/groovy/lang/GroovyRuntimeException.java | 2 +-
src/main/java/groovy/lang/GroovyShell.java | 2 +-
src/main/java/groovy/lang/MetaClassImpl.java | 4 +--
src/main/java/groovy/namespace/QName.java | 10 +++----
.../groovy/transform/builder/ExternalStrategy.java | 6 ++---
src/main/java/groovy/util/GroovyScriptEngine.java | 2 +-
.../apache/groovy/ast/tools/ClassNodeUtils.java | 4 +--
.../groovy/ast/tools/ImmutablePropertyUtils.java | 2 +-
.../apache/groovy/ast/tools/VisibilityUtils.java | 2 +-
.../java/org/codehaus/groovy/ast/ClassNode.java | 2 +-
.../java/org/codehaus/groovy/ast/FieldNode.java | 2 +-
.../groovy/ast/MixinASTTransformation.java | 2 +-
.../java/org/codehaus/groovy/ast/ModuleNode.java | 8 +++---
.../groovy/ast/decompiled/DecompiledClassNode.java | 2 +-
.../org/codehaus/groovy/ast/tools/BeanUtils.java | 2 +-
.../codehaus/groovy/ast/tools/ClosureUtils.java | 4 +--
.../codehaus/groovy/ast/tools/GeneralUtils.java | 2 +-
.../org/codehaus/groovy/classgen/EnumVisitor.java | 31 +++++++++++++++++++---
.../codehaus/groovy/classgen/ExtendedVerifier.java | 8 +++---
.../codehaus/groovy/classgen/GeneratorContext.java | 2 +-
.../groovy/classgen/InnerClassVisitor.java | 2 +-
.../groovy/classgen/VariableScopeVisitor.java | 4 +--
.../org/codehaus/groovy/classgen/Verifier.java | 2 +-
.../codehaus/groovy/classgen/asm/CompileStack.java | 4 +--
.../codehaus/groovy/control/ClassNodeResolver.java | 2 +-
.../groovy/control/CompilerConfiguration.java | 14 +++++-----
.../groovy/control/PlaceholderVisitor.java | 8 +++---
.../codehaus/groovy/control/ResolveVisitor.java | 10 +++----
.../groovy/control/StaticImportVisitor.java | 2 +-
.../groovy/reflection/MixinInMetaClass.java | 2 +-
.../groovy/runtime/DefaultGroovyMethods.java | 2 +-
.../codehaus/groovy/runtime/MetaClassHelper.java | 4 +--
.../runtime/metaclass/ClosureMetaMethod.java | 2 +-
.../typehandling/DefaultTypeTransformation.java | 4 +--
.../org/codehaus/groovy/tools/DgmConverter.java | 4 +--
.../groovy/tools/javac/JavaStubGenerator.java | 13 +++++----
.../groovy/tools/javac/JavacJavaCompiler.java | 2 +-
.../transform/AutoCloneASTTransformation.java | 2 +-
.../transform/BaseScriptASTTransformation.java | 2 +-
.../EqualsAndHashCodeASTTransformation.java | 2 +-
.../ExternalizeMethodsASTTransformation.java | 16 +++++------
.../groovy/transform/NewifyASTTransformation.java | 2 +-
.../transform/PackageScopeASTTransformation.java | 2 +-
.../transform/RecordTypeASTTransformation.java | 2 +-
.../groovy/transform/SealedASTTransformation.java | 2 +-
.../transform/SynchronizedASTTransformation.java | 2 +-
.../transform/ToStringASTTransformation.java | 2 +-
.../TupleConstructorASTTransformation.java | 2 +-
.../transform/stc/StaticTypeCheckingVisitor.java | 22 +++++++--------
.../org/codehaus/groovy/vmplugin/v8/Java8.java | 4 +--
.../vmplugin/v8/PluginDefaultGroovyMethods.java | 4 +--
.../org/codehaus/groovy/vmplugin/v8/Selector.java | 8 +++---
.../org/codehaus/groovy/vmplugin/v9/Java9.java | 2 +-
57 files changed, 148 insertions(+), 124 deletions(-)
diff --git a/src/main/java/groovy/beans/BindableASTTransformation.java b/src/main/java/groovy/beans/BindableASTTransformation.java
index 4e13e5eec8..d362e37c71 100644
--- a/src/main/java/groovy/beans/BindableASTTransformation.java
+++ b/src/main/java/groovy/beans/BindableASTTransformation.java
@@ -263,9 +263,9 @@ public class BindableASTTransformation implements ASTTransformation, Opcodes {
while (consideredClass!= null) {
for (MethodNode method : consideredClass.getMethods()) {
// just check length, MOP will match it up
- foundAdd = foundAdd || method.getName().equals("addPropertyChangeListener") && method.getParameters().length == 1;
- foundRemove = foundRemove || method.getName().equals("removePropertyChangeListener") && method.getParameters().length == 1;
- foundFire = foundFire || method.getName().equals("firePropertyChange") && method.getParameters().length == 3;
+ foundAdd = foundAdd || "addPropertyChangeListener".equals(method.getName()) && method.getParameters().length == 1;
+ foundRemove = foundRemove || "removePropertyChangeListener".equals(method.getName()) && method.getParameters().length == 1;
+ foundFire = foundFire || "firePropertyChange".equals(method.getName()) && method.getParameters().length == 3;
if (foundAdd && foundRemove && foundFire) {
return false;
}
diff --git a/src/main/java/groovy/beans/VetoableASTTransformation.java b/src/main/java/groovy/beans/VetoableASTTransformation.java
index ea37877758..24774f283a 100644
--- a/src/main/java/groovy/beans/VetoableASTTransformation.java
+++ b/src/main/java/groovy/beans/VetoableASTTransformation.java
@@ -257,9 +257,9 @@ public class VetoableASTTransformation extends BindableASTTransformation {
while (consideredClass!= null) {
for (MethodNode method : consideredClass.getMethods()) {
// just check length, MOP will match it up
- foundAdd = foundAdd || method.getName().equals("addVetoableChangeListener") && method.getParameters().length == 1;
- foundRemove = foundRemove || method.getName().equals("removeVetoableChangeListener") && method.getParameters().length == 1;
- foundFire = foundFire || method.getName().equals("fireVetoableChange") && method.getParameters().length == 3;
+ foundAdd = foundAdd || "addVetoableChangeListener".equals(method.getName()) && method.getParameters().length == 1;
+ foundRemove = foundRemove || "removeVetoableChangeListener".equals(method.getName()) && method.getParameters().length == 1;
+ foundFire = foundFire || "fireVetoableChange".equals(method.getName()) && method.getParameters().length == 3;
if (foundAdd && foundRemove && foundFire) {
return false;
}
diff --git a/src/main/java/groovy/grape/GrabAnnotationTransformation.java b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
index fb318126e2..1190c95b8b 100644
--- a/src/main/java/groovy/grape/GrabAnnotationTransformation.java
+++ b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
@@ -566,7 +566,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
for (Map.Entry<String, Object> entry : parts.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
- if (!key.equals("version") || !value.equals("*") || !exclude) {
+ if (!"version".equals(key) || !"*".equals(value) || !exclude) {
node.addMember(key, constX(value));
}
}
diff --git a/src/main/java/groovy/lang/GroovyClassLoader.java b/src/main/java/groovy/lang/GroovyClassLoader.java
index 3b734ced40..afaa29bb01 100644
--- a/src/main/java/groovy/lang/GroovyClassLoader.java
+++ b/src/main/java/groovy/lang/GroovyClassLoader.java
@@ -774,7 +774,7 @@ public class GroovyClassLoader extends URLClassLoader {
}
private static boolean isFile(final URL ret) {
- return ret != null && ret.getProtocol().equals("file");
+ return ret != null && "file".equals(ret.getProtocol());
}
private static File getFileForUrl(final URL ret, final String filename) {
diff --git a/src/main/java/groovy/lang/GroovyRuntimeException.java b/src/main/java/groovy/lang/GroovyRuntimeException.java
index 1cac6fc506..421efef6d6 100644
--- a/src/main/java/groovy/lang/GroovyRuntimeException.java
+++ b/src/main/java/groovy/lang/GroovyRuntimeException.java
@@ -85,7 +85,7 @@ public class GroovyRuntimeException extends RuntimeException {
if (module != null) {
answer += module.getDescription();
}
- if (answer.equals(". ")) {
+ if (". ".equals(answer)) {
return "";
}
return answer;
diff --git a/src/main/java/groovy/lang/GroovyShell.java b/src/main/java/groovy/lang/GroovyShell.java
index c6bd035ffe..97922fb828 100644
--- a/src/main/java/groovy/lang/GroovyShell.java
+++ b/src/main/java/groovy/lang/GroovyShell.java
@@ -211,7 +211,7 @@ public class GroovyShell extends GroovyObjectSupport {
String scriptName = scriptFile.getName();
int p = scriptName.lastIndexOf('.');
if (p++ >= 0) {
- if (scriptName.substring(p).equals("java")) {
+ if ("java".equals(scriptName.substring(p))) {
throw new CompilationFailedException(0, null);
}
}
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index d483e3a9d3..427d4b4e60 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -1220,7 +1220,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
if (method != null) {
- if (arguments.length == 0 && methodName.equals("clone") && method.getDeclaringClass() == ReflectionCache.OBJECT_CLASS) {
+ if (arguments.length == 0 && "clone".equals(methodName) && method.getDeclaringClass() == ReflectionCache.OBJECT_CLASS) {
throw method.processDoMethodInvokeException(new CloneNotSupportedException(), object, arguments);
}
MetaMethod transformedMetaMethod = VM_PLUGIN.transformMetaMethod(this, method);
@@ -3331,7 +3331,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
}
private static boolean isGenericGetMethod(MetaMethod method) {
- if (method.getName().equals("get")) {
+ if ("get".equals(method.getName())) {
CachedClass[] parameterTypes = method.getParameterTypes();
return parameterTypes.length == 1 && parameterTypes[0].getTheClass() == String.class;
}
diff --git a/src/main/java/groovy/namespace/QName.java b/src/main/java/groovy/namespace/QName.java
index 28181afb54..4ba0fb0b3d 100644
--- a/src/main/java/groovy/namespace/QName.java
+++ b/src/main/java/groovy/namespace/QName.java
@@ -215,8 +215,8 @@ public class QName implements Serializable {
if (o == null) return false;
if (o instanceof QName) {
final QName qName = (QName) o;
- if (!namespaceURI.equals(qName.namespaceURI) && !namespaceURI.equals("*") && !qName.namespaceURI.equals("*")) return false;
- return localPart.equals(qName.localPart) || localPart.equals("*") || qName.localPart.equals("*");
+ 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;
if (string.length() == 0) return false;
@@ -226,8 +226,8 @@ public class QName implements Serializable {
if (lastColonIndex < 0 || lastColonIndex == string.length() - 1) return false;
final String stringPrefix = string.substring(0,lastColonIndex);
final String stringLocalPart = string.substring(lastColonIndex + 1);
- if (stringPrefix.equals(prefix) || stringPrefix.equals(namespaceURI) || stringPrefix.equals("*")) {
- return localPart.equals(stringLocalPart) || stringLocalPart.equals("*");
+ if (stringPrefix.equals(prefix) || stringPrefix.equals(namespaceURI) || "*".equals(stringPrefix)) {
+ return localPart.equals(stringLocalPart) || "*".equals(stringLocalPart);
}
}
return false;
@@ -287,4 +287,4 @@ public class QName implements Serializable {
result = 29 * result + localPart.hashCode();
return result;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/groovy/transform/builder/ExternalStrategy.java b/src/main/java/groovy/transform/builder/ExternalStrategy.java
index 8be1dfb29c..f5076e93f9 100644
--- a/src/main/java/groovy/transform/builder/ExternalStrategy.java
+++ b/src/main/java/groovy/transform/builder/ExternalStrategy.java
@@ -137,7 +137,7 @@ public class ExternalStrategy extends BuilderASTTransformation.AbstractBuilderSt
}
private MethodNode createBuilderMethodForField(ClassNode builderClass, PropertyInfo prop, String prefix) {
- String propName = prop.getName().equals("class") ? "clazz" : prop.getName();
+ String propName = "class".equals(prop.getName()) ? "clazz" : prop.getName();
String setterName = getSetterName(prefix, prop.getName());
return new MethodNode(setterName, ACC_PUBLIC, newClass(builderClass), params(param(newClass(prop.getType()), propName)), NO_EXCEPTIONS, block(
stmt(assignX(propX(varX("this"), constX(propName)), varX(propName))),
@@ -147,14 +147,14 @@ public class ExternalStrategy extends BuilderASTTransformation.AbstractBuilderSt
private static FieldNode createFieldCopy(ClassNode builderClass, PropertyInfo prop) {
String propName = prop.getName();
- return new FieldNode(propName.equals("class") ? "clazz" : propName, ACC_PRIVATE, newClass(prop.getType()), builderClass, DEFAULT_INITIAL_VALUE);
+ return new FieldNode("class".equals(propName) ? "clazz" : propName, ACC_PRIVATE, newClass(prop.getType()), builderClass, DEFAULT_INITIAL_VALUE);
}
private static Expression initializeInstance(ClassNode sourceClass, List<PropertyInfo> props, BlockStatement body) {
Expression instance = localVarX("_the" + sourceClass.getNameWithoutPackage(), sourceClass);
body.addStatement(declS(instance, ctorX(sourceClass)));
for (PropertyInfo prop : props) {
- body.addStatement(stmt(assignX(propX(instance, prop.getName()), varX(prop.getName().equals("class") ? "clazz" : prop.getName(), newClass(prop.getType())))));
+ body.addStatement(stmt(assignX(propX(instance, prop.getName()), varX("class".equals(prop.getName()) ? "clazz" : prop.getName(), newClass(prop.getType())))));
}
return instance;
}
diff --git a/src/main/java/groovy/util/GroovyScriptEngine.java b/src/main/java/groovy/util/GroovyScriptEngine.java
index c0f37ff348..15775d8752 100644
--- a/src/main/java/groovy/util/GroovyScriptEngine.java
+++ b/src/main/java/groovy/util/GroovyScriptEngine.java
@@ -319,7 +319,7 @@ public class GroovyScriptEngine implements ResourceConnector {
String line;
while (true) {
System.out.print("groovy> ");
- if ((line = br.readLine()) == null || line.equals("quit")) {
+ if ((line = br.readLine()) == null || "quit".equals(line)) {
break;
}
try {
diff --git a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
index 03e0e9ffcb..2ad8badba1 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
@@ -596,8 +596,8 @@ public class ClassNodeUtils {
//--------------------------------------------------------------------------
private static boolean isPackagePrivate(final AnnotatedNode aNode) {
- return aNode.getAnnotations().stream().anyMatch(anno -> anno.getClassNode().getName().equals("groovy.transform.PackageScope"))
- || aNode.getDeclaringClass().getAnnotations().stream().anyMatch(anno -> anno.getClassNode().getName().equals("groovy.transform.PackageScope")
+ return aNode.getAnnotations().stream().anyMatch(anno -> "groovy.transform.PackageScope".equals(anno.getClassNode().getName()))
+ || aNode.getDeclaringClass().getAnnotations().stream().anyMatch(anno -> "groovy.transform.PackageScope".equals(anno.getClassNode().getName())
&& Optional.ofNullable(anno.getMember("value")).filter(expr -> expr.getText().contains("FIELDS")).isPresent());
}
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 711fcf7e2e..a79d845545 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
@@ -204,7 +204,7 @@ public class ImmutablePropertyUtils {
}
private static String prettyTypeName(final String name) {
- return name.equals("java.lang.Object") ? name + " or def" : name;
+ return "java.lang.Object".equals(name) ? name + " or def" : name;
}
public static boolean isKnownImmutableType(final ClassNode fieldType, final List<String> knownImmutableClasses) {
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 b750b01c16..24006689ae 100644
--- a/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/VisibilityUtils.java
@@ -96,7 +96,7 @@ public class VisibilityUtils {
private static Visibility getVisibility(final Expression e) {
if (e instanceof PropertyExpression) {
PropertyExpression pe = (PropertyExpression) e;
- if (pe.getObjectExpression() instanceof ClassExpression && pe.getObjectExpression().getText().equals("groovy.transform.options.Visibility")) {
+ 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/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index af6c5709a3..a5a789d4d4 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -714,7 +714,7 @@ public class ClassNode extends AnnotatedNode {
BinaryExpression bExp = (BinaryExpression) ((ExpressionStatement) stmt).getExpression();
if (bExp.getLeftExpression() instanceof FieldExpression) {
FieldExpression fExp = (FieldExpression) bExp.getLeftExpression();
- if (fExp.getFieldName().equals("$VALUES")) {
+ if ("$VALUES".equals(fExp.getFieldName())) {
for (Statement initStmt : staticFieldInitializerStatements) {
it.add(initStmt);
}
diff --git a/src/main/java/org/codehaus/groovy/ast/FieldNode.java b/src/main/java/org/codehaus/groovy/ast/FieldNode.java
index b8d1e12a5c..4f33f65d3c 100644
--- a/src/main/java/org/codehaus/groovy/ast/FieldNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/FieldNode.java
@@ -137,7 +137,7 @@ public class FieldNode extends AnnotatedNode implements Variable {
@Override
public boolean equals(Object obj) {
- if (obj != null && obj.getClass().getName().equals("org.codehaus.groovy.ast.decompiled.LazyFieldNode")) {
+ if (obj != null && "org.codehaus.groovy.ast.decompiled.LazyFieldNode".equals(obj.getClass().getName())) {
return obj.equals(this);
}
return super.equals(obj);
diff --git a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
index db86fe1809..a98e53ba45 100644
--- a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
@@ -43,7 +43,7 @@ public class MixinASTTransformation extends AbstractASTTransformation {
init(nodes, source);
AnnotationNode node = (AnnotationNode) nodes[0];
AnnotatedNode target = (AnnotatedNode) nodes[1];
- if (!node.getClassNode().getName().equals("groovy.lang.Mixin"))
+ if (!"groovy.lang.Mixin".equals(node.getClassNode().getName()))
return;
Expression value = node.getMember("value");
diff --git a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
index 3a923cb853..8c7edf3bf2 100644
--- a/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ModuleNode.java
@@ -488,7 +488,7 @@ public class ModuleNode extends ASTNode {
private MethodNode findRun() {
for (MethodNode node : methods) {
- if (node.getName().equals("run") && node.getParameters().length == 0) {
+ if ("run".equals(node.getName()) && node.getParameters().length == 0) {
return node;
}
}
@@ -505,14 +505,14 @@ public class ModuleNode extends ASTNode {
boolean foundStatic = false;
MethodNode result = null;
for (MethodNode node : methods) {
- if (node.getName().equals("main") && !node.isPrivate()) {
+ if ("main".equals(node.getName()) && !node.isPrivate()) {
int numParams = node.getParameters().length;
if (numParams < 2) {
ClassNode argType = numParams > 0 ? node.getParameters()[0].getType() : null;
ClassNode retType = node.getReturnType();
- boolean argTypeMatches = argType == null || argType.getNameWithoutPackage().equals("Object") || (argType.isArray() && argType.getComponentType().getNameWithoutPackage().equals("String"));
- boolean retTypeMatches = ClassHelper.isPrimitiveVoid(retType) || retType.getNameWithoutPackage().equals("Object");
+ boolean argTypeMatches = argType == null || "Object".equals(argType.getNameWithoutPackage()) || (argType.isArray() && "String".equals(argType.getComponentType().getNameWithoutPackage()));
+ boolean retTypeMatches = ClassHelper.isPrimitiveVoid(retType) || "Object".equals(retType.getNameWithoutPackage());
if (retTypeMatches && argTypeMatches) {
if (node.isStatic() ? foundStatic : foundInstance) {
throw new RuntimeException("Repetitive main method found.");
diff --git a/src/main/java/org/codehaus/groovy/ast/decompiled/DecompiledClassNode.java b/src/main/java/org/codehaus/groovy/ast/decompiled/DecompiledClassNode.java
index e919d090db..1957cd46bb 100644
--- a/src/main/java/org/codehaus/groovy/ast/decompiled/DecompiledClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/decompiled/DecompiledClassNode.java
@@ -96,7 +96,7 @@ public class DecompiledClassNode extends ClassNode {
List<AnnotationStub> annotations = classData.annotations;
if (annotations != null) {
for (AnnotationStub stub : annotations) {
- if (stub.className.equals("groovy.transform.Sealed")) {
+ if ("groovy.transform.Sealed".equals(stub.className)) {
return true;
}
}
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
index 9ddf976a51..0e68469484 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/BeanUtils.java
@@ -111,7 +111,7 @@ public class BeanUtils {
if (!includeStatic && mNode.isStatic()) continue;
if (hasAnnotation(mNode, INTERNAL_TYPE)) continue;
String name = mNode.getName();
- if ((name.length() <= 3 && !name.startsWith(IS_PREFIX)) || name.equals("getClass") || name.equals("getMetaClass") || name.equals("getDeclaringClass")) {
+ if ((name.length() <= 3 && !name.startsWith(IS_PREFIX)) || "getClass".equals(name) || "getMetaClass".equals(name) || "getDeclaringClass".equals(name)) {
// Optimization: skip invalid propertyNames
continue;
}
diff --git a/src/main/java/org/codehaus/groovy/ast/tools/ClosureUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/ClosureUtils.java
index f9e59d54c5..d0788f6fa4 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/ClosureUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/ClosureUtils.java
@@ -53,7 +53,7 @@ public class ClosureUtils {
public static boolean hasSingleCharacterArg(final Closure c) {
if (c.getMaximumNumberOfParameters() != 1) return false;
String typeName = c.getParameterTypes()[0].getName();
- return typeName.equals("char") || typeName.equals("java.lang.Character");
+ return "char".equals(typeName) || "java.lang.Character".equals(typeName);
}
/**
@@ -64,7 +64,7 @@ public class ClosureUtils {
public static boolean hasSingleStringArg(final Closure c) {
if (c.getMaximumNumberOfParameters() != 1) return false;
String typeName = c.getParameterTypes()[0].getName();
- return typeName.equals("java.lang.String");
+ return "java.lang.String".equals(typeName);
}
/**
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 f94be91dc7..fb56bded7a 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -960,7 +960,7 @@ public class GeneralUtils {
continue;
}
- if (!includeGenerated && annotation.getClassNode().getName().equals("groovy.transform.Generated")) {
+ if (!includeGenerated && "groovy.transform.Generated".equals(annotation.getClassNode().getName())) {
continue;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
index 6ac3c48b7e..a29076de97 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java
@@ -47,7 +47,32 @@ import java.util.List;
import static org.apache.groovy.ast.tools.ClassNodeUtils.addGeneratedMethod;
import static org.codehaus.groovy.ast.ClassHelper.int_TYPE;
-import static org.codehaus.groovy.ast.tools.GeneralUtils.*;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.args;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.arrayX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.assignS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.block;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.callThisX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.callX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.classX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.constX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.ctorThisX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.declS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.fieldX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.geX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.ifS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.indexX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.localVarX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.ltX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.mapX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.minusX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.nullX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.param;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.params;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.plusX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.propX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.returnS;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.spreadX;
+import static org.codehaus.groovy.ast.tools.GeneralUtils.varX;
import static org.objectweb.asm.Opcodes.ACC_ABSTRACT;
import static org.objectweb.asm.Opcodes.ACC_FINAL;
import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
@@ -116,8 +141,8 @@ public class EnumVisitor extends ClassCodeVisitorSupport {
boolean hasNext = false;
boolean hasPrevious = false;
for (MethodNode m : enumClass.getMethods()) {
- if (m.getName().equals("next") && m.getParameters().length == 0) hasNext = true;
- if (m.getName().equals("previous") && m.getParameters().length == 0) hasPrevious = true;
+ if ("next".equals(m.getName()) && m.getParameters().length == 0) hasNext = true;
+ if ("previous".equals(m.getName()) && m.getParameters().length == 0) hasPrevious = true;
if (hasNext && hasPrevious) break;
}
boolean empty = true;
diff --git a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
index a153b64233..5e761c0240 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
@@ -312,7 +312,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
// Check if the annotation target is correct, unless it's the target annotating an annotation definition
// defining on which target elements the annotation applies
- boolean isTargetAnnotation = name.equals("java.lang.annotation.Target");
+ boolean isTargetAnnotation = "java.lang.annotation.Target".equals(name);
if (!isTargetAnnotation && !visited.isTargetAllowed(target) && !isTypeUseScenario(visited, target)) {
addError("Annotation @" + name + " is not allowed on element " + AnnotationNode.targetToName(target), visited);
}
@@ -337,7 +337,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
if (!repeatableCache.containsKey(name)) {
boolean result = false;
for (AnnotationNode anno : annoClassNode.getAnnotations()) {
- if (anno.getClassNode().getName().equals("java.lang.annotation.Repeatable")) {
+ if ("java.lang.annotation.Repeatable".equals(anno.getClassNode().getName())) {
result = true;
break;
}
@@ -358,7 +358,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
ClassNode repeatable = null;
AnnotationNode repeatee = entry.getValue().get(0);
for (AnnotationNode anno : repeatee.getClassNode().getAnnotations()) {
- if (anno.getClassNode().getName().equals("java.lang.annotation.Repeatable")) {
+ if ("java.lang.annotation.Repeatable".equals(anno.getClassNode().getName())) {
Expression value = anno.getMember("value");
if (value instanceof ClassExpression && value.getType().isAnnotationDefinition()) {
repeatable = value.getType();
@@ -418,7 +418,7 @@ public class ExtendedVerifier extends ClassCodeVisitorSupport {
// TODO GROOVY-5011 handle case of @Override on a property
private void visitOverride(final AnnotatedNode node, final AnnotationNode visited) {
ClassNode annotationType = visited.getClassNode();
- if (annotationType.isResolved() && annotationType.getName().equals("java.lang.Override")) {
+ if (annotationType.isResolved() && "java.lang.Override".equals(annotationType.getName())) {
if (node instanceof MethodNode && !Boolean.TRUE.equals(node.getNodeMetaData(Verifier.DEFAULT_PARAMETER_GENERATED))) {
boolean override = false;
MethodNode origMethod = (MethodNode) node;
diff --git a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
index 0a0b78b270..ab21252094 100644
--- a/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
+++ b/src/main/java/org/codehaus/groovy/classgen/GeneratorContext.java
@@ -95,7 +95,7 @@ public class GeneratorContext {
}
public static String encodeAsValidClassName(final String name) {
- if (name.equals("module-info") || name.equals("package-info")) return name;
+ if ("module-info".equals(name) || "package-info".equals(name)) return name;
int lastEscape = -1;
StringBuilder b = null;
diff --git a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
index 4134db9039..0281bfc0a9 100644
--- a/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/InnerClassVisitor.java
@@ -259,7 +259,7 @@ public class InnerClassVisitor extends InnerClassVisitorHelper {
}
// GROOVY-8433: Category transform implies static method
isStatic = isStatic || innerClass.getOuterClass().getAnnotations().stream()
- .anyMatch(a -> a.getClassNode().getName().equals("groovy.lang.Category"));
+ .anyMatch(a -> "groovy.lang.Category".equals(a.getClassNode().getName()));
return isStatic;
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
index 51d26ada89..34105073e8 100644
--- a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
@@ -362,9 +362,9 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
Expression object = expression.getObjectExpression();
if (!(object instanceof VariableExpression)) return;
VariableExpression ve = (VariableExpression) object;
- if (!ve.getName().equals("this")) return;
+ if (!"this".equals(ve.getName())) return;
String name = expression.getPropertyAsString();
- if (name == null || name.equals("class")) return;
+ if (name == null || "class".equals(name)) return;
Variable member = findClassMember(currentClass, name);
if (member == null) return;
checkVariableContextAccess(member, expression);
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index 1f7c001abe..1368603938 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -734,7 +734,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
}
private static void adjustTypesIfMainMethod(final MethodNode node) {
- if (node.isPublic() && node.isStatic() && node.getName().equals("main")) {
+ if (node.isPublic() && node.isStatic() && "main".equals(node.getName())) {
Parameter[] params = node.getParameters();
if (params.length == 1) {
Parameter param = params[0];
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
index e302b48cad..edfc98f603 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CompileStack.java
@@ -297,8 +297,8 @@ public class CompileStack {
* @return the normal variable or null if not found (and <code>mustExist</code> not true)
*/
public BytecodeVariable getVariable(final String variableName, final boolean mustExist) {
- if (variableName.equals("this")) return BytecodeVariable.THIS_VARIABLE;
- if (variableName.equals("super")) return BytecodeVariable.SUPER_VARIABLE;
+ if ("this".equals(variableName)) return BytecodeVariable.THIS_VARIABLE;
+ if ("super".equals(variableName)) return BytecodeVariable.SUPER_VARIABLE;
BytecodeVariable v = stackVariables.get(variableName);
if (v == null && mustExist)
throw new GroovyBugError("tried to get a variable with the name " + variableName + " as stack variable, but a variable with this name was not created");
diff --git a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
index 94e8317853..7a9c037d07 100644
--- a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
+++ b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
@@ -337,7 +337,7 @@ public class ClassNodeResolver {
long lastMod;
// Special handling for file:// protocol, as getLastModified() often reports
// incorrect results (-1)
- if (source.getProtocol().equals("file")) {
+ if ("file".equals(source.getProtocol())) {
// Coerce the file URL to a File
String path = source.getPath().replace('/', File.separatorChar).replace('|', ':');
File file = new File(path);
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index f2036dca89..ee54727ab0 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -738,7 +738,7 @@ public class CompilerConfiguration {
numeric = Integer.parseInt(text);
} catch (NumberFormatException e) {
text = text.toLowerCase();
- if (text.equals("none")) {
+ if ("none".equals(text)) {
numeric = WarningMessage.NONE;
} else if (text.startsWith("likely")) {
numeric = WarningMessage.LIKELY_ERRORS;
@@ -765,13 +765,13 @@ public class CompilerConfiguration {
if (text != null) setTargetBytecode(text);
text = configuration.getProperty("groovy.parameters");
- if (text != null) setParameters(text.equalsIgnoreCase("true"));
+ if (text != null) setParameters("true".equalsIgnoreCase(text));
text = configuration.getProperty("groovy.preview.features");
- if (text != null) setPreviewFeatures(text.equalsIgnoreCase("true"));
+ if (text != null) setPreviewFeatures("true".equalsIgnoreCase(text));
text = configuration.getProperty("groovy.log.classgen");
- if (text != null) setLogClassgen(text.equalsIgnoreCase("true"));
+ if (text != null) setLogClassgen("true".equalsIgnoreCase(text));
text = configuration.getProperty("groovy.log.classgen.stacktrace.max.depth");
if (text != null) {
@@ -787,10 +787,10 @@ public class CompilerConfiguration {
if (text != null) setClasspath(text);
text = configuration.getProperty("groovy.output.verbose");
- if (text != null) setVerbose(text.equalsIgnoreCase("true"));
+ if (text != null) setVerbose("true".equalsIgnoreCase(text));
text = configuration.getProperty("groovy.output.debug");
- if (text != null) setDebug(text.equalsIgnoreCase("true"));
+ if (text != null) setDebug("true".equalsIgnoreCase(text));
numeric = 10;
text = configuration.getProperty("groovy.errors.tolerance", "10");
@@ -808,7 +808,7 @@ public class CompilerConfiguration {
if (text != null) setScriptBaseClass(text);
text = configuration.getProperty("groovy.recompile");
- if (text != null) setRecompileGroovySource(text.equalsIgnoreCase("true"));
+ if (text != null) setRecompileGroovySource("true".equalsIgnoreCase(text));
numeric = 100;
text = configuration.getProperty("groovy.recompile.minimumIntervall"); // legacy misspelling
diff --git a/src/main/java/org/codehaus/groovy/control/PlaceholderVisitor.java b/src/main/java/org/codehaus/groovy/control/PlaceholderVisitor.java
index 7beea392ec..d0e5a44c7a 100644
--- a/src/main/java/org/codehaus/groovy/control/PlaceholderVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/PlaceholderVisitor.java
@@ -51,11 +51,11 @@ public class PlaceholderVisitor extends ClassCodeVisitorSupport {
if (expression.isMultipleAssignmentDeclaration() && expression.getTupleExpression().getExpressions().size() > 1) {
long underscoreCount = StreamSupport.stream(expression.getTupleExpression().spliterator(), false)
.map(e -> ((VariableExpression) e).getName())
- .filter(s -> s.equals("_"))
+ .filter(s -> "_".equals(s))
.count();
if (underscoreCount > 1) {
expression.getTupleExpression().getExpressions().forEach(e -> {
- if (((VariableExpression) e).getName().equals("_")) {
+ if ("_".equals(((VariableExpression) e).getName())) {
markAsPlaceholder(e);
}
});
@@ -74,11 +74,11 @@ public class PlaceholderVisitor extends ClassCodeVisitorSupport {
if (expression.getParameters() != null) {
long underscoreCount = Arrays.stream(expression.getParameters())
.map(Parameter::getName)
- .filter(s -> s.equals("_"))
+ .filter(s -> "_".equals(s))
.count();
if (underscoreCount > 1) {
for (Parameter param : expression.getParameters()) {
- if (param.getName().equals("_")) {
+ if ("_".equals(param.getName())) {
markAsPlaceholder(param);
}
}
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index b638af3f3f..9921c0b40c 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -848,7 +848,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
String property = ((PropertyExpression) expr).getPropertyAsString();
// the class property stops resolving, dynamic property names too
- if (property == null || property.equals("class")) {
+ if (property == null || "class".equals(property)) {
return null;
}
Tuple2<StringBuilder, Boolean> classNameInfo = makeClassName(doInitialClassTest, name, property);
@@ -898,7 +898,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
String propertyName = classProperty.getPropertyAsString();
// if it's "Type.foo.bar" or something else return PropertyExpression
- if (propertyName == null || !propertyName.equals("class")) return pe;
+ if (propertyName == null || !"class".equals(propertyName)) return pe;
// if it's "Type.class" or "pack.Type.class" return ClassExpression
ce.setSourcePosition(classProperty);
if (stack.isEmpty()) return ce;
@@ -973,7 +973,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
if (expression.isImplicitThis()) return;
String prop = expression.getPropertyAsString();
if (prop == null) return;
- if (!prop.equals("this") && !prop.equals("super")) return;
+ if (!"this".equals(prop) && !"super".equals(prop)) return;
ClassNode type = expression.getObjectExpression().getType();
if (expression.getObjectExpression() instanceof ClassExpression && !isSuperCallToDefaultMethod(expression) && !isThisCallToPrivateInterfaceMethod(expression)) {
@@ -1003,13 +1003,13 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
private boolean isSuperCallToDefaultMethod(PropertyExpression expression) {
// a more sophisticated check might be required in the future
ClassExpression clazzExpression = (ClassExpression) expression.getObjectExpression();
- return clazzExpression.getType().isInterface() && expression.getPropertyAsString().equals("super");
+ return clazzExpression.getType().isInterface() && "super".equals(expression.getPropertyAsString());
}
private boolean isThisCallToPrivateInterfaceMethod(PropertyExpression expression) {
// a more sophisticated check might be required in the future
ClassExpression clazzExpression = (ClassExpression) expression.getObjectExpression();
- return clazzExpression.getType().isInterface() && expression.getPropertyAsString().equals("this");
+ return clazzExpression.getType().isInterface() && "this".equals(expression.getPropertyAsString());
}
protected Expression transformVariableExpression(final VariableExpression ve) {
diff --git a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
index 999f945231..dc4dd8e96f 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
@@ -300,7 +300,7 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
return result;
}
}
- } else if (inSpecialConstructorCall || (!inClosure && !foundInstanceMethod && !name.equals("call"))) {
+ } else if (inSpecialConstructorCall || (!inClosure && !foundInstanceMethod && !"call".equals(name))) {
// check for reference to static method in this(...) or super(...) or when call not resolved
if (hasPossibleStaticMember.test(currentClass)) {
Expression result = new StaticMethodCallExpression(currentClass, name, args);
diff --git a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
index 13e7d22c10..90fc73d1d2 100644
--- a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
@@ -140,7 +140,7 @@ public class MixinInMetaClass {
if (method.isStatic()) {
if (method instanceof CachedMethod)
staticMethod(self, arr, (CachedMethod) method);
- } else if (method.getDeclaringClass().getTheClass() != Object.class || method.getName().equals("toString")) {
+ } else if (method.getDeclaringClass().getTheClass() != Object.class || "toString".equals(method.getName())) {
//if (self.pickMethod(method.getName(), method.getNativeParameterTypes()) == null) {
arr.add(new MixinInstanceMetaMethod(method, mixin));
//}
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 88c984c388..f7ed8afc61 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -4014,7 +4014,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
boolean groovyObject = self instanceof GroovyObject;
while (klass != null) {
for (Field field : klass.getDeclaredFields()) {
- if (Modifier.isStatic(field.getModifiers()) || (groovyObject && field.getName().equals("metaClass"))) {
+ if (Modifier.isStatic(field.getModifiers()) || (groovyObject && "metaClass".equals(field.getName()))) {
continue;
}
buffer.append(" ");
diff --git a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
index 735aa0c569..d74e032a93 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
@@ -297,7 +297,7 @@ public class MetaClassHelper {
if (GeneratedClosure.class.isAssignableFrom(closureOrLambdaClass)) {
// determine parameter count from generated "doCall" method(s)
for (Method m : closureOrLambdaClass.getDeclaredMethods()) {
- if (m.getName().equals("doCall")) {
+ if ("doCall".equals(m.getName())) {
if (parameterCount != -2) {
parameterCount = -1; // 0 or 1
} else {
@@ -808,7 +808,7 @@ public class MetaClassHelper {
}
public static boolean isGenericSetMethod(MetaMethod method) {
- return (method.getName().equals("set"))
+ return ("set".equals(method.getName()))
&& method.getParameterTypes().length == 2;
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
index 037080aabb..3af6d3242d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/metaclass/ClosureMetaMethod.java
@@ -111,7 +111,7 @@ public class ClosureMetaMethod extends MetaMethod implements ClosureInvokingMeth
}
} else if (closure instanceof GeneratedClosure) {
for (CachedMethod method : ReflectionCache.getCachedClass(closure.getClass()).getMethods()) {
- if (method.getName().equals("doCall")) {
+ if ("doCall".equals(method.getName())) {
MetaMethod metaMethod = new ClosureMetaMethod(name, declaringClass, closure, method);
mms.add(adjustParamTypesForStdMethods(metaMethod, name));
}
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 dc7674daaa..74ec06c908 100644
--- a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -539,7 +539,7 @@ public class DefaultTypeTransformation {
if (value instanceof Class) {
Class superclass = ((Class) value).getSuperclass();
while (superclass != null) {
- if (superclass.getName().equals("java.lang.Enum")) {
+ if ("java.lang.Enum".equals(superclass.getName())) {
return true;
}
superclass = superclass.getSuperclass();
@@ -899,7 +899,7 @@ public class DefaultTypeTransformation {
int[] ans = null;
// conservative coding
- if (a.getClass().getName().equals("[I")) {
+ if ("[I".equals(a.getClass().getName())) {
ans = (int[]) a;
} else {
Object[] ia = (Object[]) a;
diff --git a/src/main/java/org/codehaus/groovy/tools/DgmConverter.java b/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
index 32d2b9b1d6..c9cc4b5b01 100644
--- a/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
+++ b/src/main/java/org/codehaus/groovy/tools/DgmConverter.java
@@ -58,8 +58,8 @@ public class DgmConverter {
public static void main(String[] args) throws IOException {
String targetDirectory = "build/classes/";
- boolean info = (args.length == 1 && args[0].equals("--info"))
- || (args.length==2 && args[0].equals("--info"));
+ boolean info = (args.length == 1 && "--info".equals(args[0]))
+ || (args.length==2 && "--info".equals(args[0]));
if (info && args.length==2) {
targetDirectory = args[1];
if (!targetDirectory.endsWith("/")) targetDirectory += "/";
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 ea24247a83..c0a1cdd0bc 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavaStubGenerator.java
@@ -61,7 +61,6 @@ import org.objectweb.asm.Opcodes;
import javax.tools.FileObject;
import javax.tools.JavaFileObject;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -509,9 +508,9 @@ public class JavaStubGenerator {
// skip values() method and valueOf(String)
String name = method.getName();
Parameter[] params = method.getParameters();
- if (params.length == 0 && name.equals("values")) continue;
+ if (params.length == 0 && "values".equals(name)) continue;
if (params.length == 1
- && name.equals("valueOf")
+ && "valueOf".equals(name)
&& isStringType(params[0].getType())) {
continue;
}
@@ -720,7 +719,7 @@ public class JavaStubGenerator {
private void printMethod(final PrintWriter out, final ClassNode classNode, final MethodNode methodNode) {
if (methodNode.isStaticConstructor()) return;
if (methodNode.isPrivate() || !Utilities.isJavaIdentifier(methodNode.getName())) return;
- if (methodNode.isSynthetic() && (methodNode.getName().equals("$getStaticMetaClass"))) return;
+ if (methodNode.isSynthetic() && ("$getStaticMetaClass".equals(methodNode.getName()))) return;
printAnnotations(out, methodNode);
if (!isInterfaceOrTrait(classNode)) {
@@ -768,7 +767,7 @@ public class JavaStubGenerator {
ClassNode rt = methodNode.getReturnType();
Consumer<Expression> valuePrinter = (value) -> {
if (isClassType(rt) || (rt.isArray() && isClassType(rt.getComponentType()))) {
- if (value.getType().getName().equals("groovy.lang.Closure")) {
+ if ("groovy.lang.Closure".equals(value.getType().getName())) {
out.print("groovy.lang.Closure.class");
return;
}
@@ -1115,7 +1114,7 @@ public class JavaStubGenerator {
expr.visit(new CodeVisitorSupport() {
@Override
public void visitPropertyExpression(final PropertyExpression property) {
- if (property.getObjectExpression().getText().equals("groovy.transform.PackageScopeTarget")
+ if ("groovy.transform.PackageScopeTarget".equals(property.getObjectExpression().getText())
&& property.getPropertyAsString().equals(type.name())) {
val[0] = true;
}
@@ -1124,7 +1123,7 @@ public class JavaStubGenerator {
public void visitVariableExpression(final VariableExpression variable) {
if (variable.getName().equals(type.name())) {
ImportNode imp = currentModule.getStaticImports().get(type.name());
- if (imp != null && imp.getType().getName().equals("groovy.transform.PackageScopeTarget")) {
+ if (imp != null && "groovy.transform.PackageScopeTarget".equals(imp.getType().getName())) {
val[0] = true;
} else if (imp == null && currentModule.getStaticStarImports().get("groovy.transform.PackageScopeTarget") != null) {
val[0] = true;
diff --git a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index c49dc2bc5e..ef7835e820 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -164,7 +164,7 @@ public class JavacJavaCompiler implements JavaCompiler {
if (namedValues != null) {
for (int i = 0, n = namedValues.length; i < n; i += 2) {
String name = namedValues[i];
- if (name.equals("classpath")) hadClasspath = true;
+ if ("classpath".equals(name)) hadClasspath = true;
params.add("-" + name);
params.add(namedValues[i + 1]);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
index 0916d79dcc..7f631f56a2 100644
--- a/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/AutoCloneASTTransformation.java
@@ -318,7 +318,7 @@ public class AutoCloneASTTransformation extends AbstractASTTransformation {
Expression oe = prop.getObjectExpression();
if (oe instanceof ClassExpression) {
ClassExpression ce = (ClassExpression) oe;
- if (ce.getType().getName().equals("groovy.transform.AutoCloneStyle")) {
+ if ("groovy.transform.AutoCloneStyle".equals(ce.getType().getName())) {
return AutoCloneStyle.valueOf(prop.getPropertyAsString());
}
}
diff --git a/src/main/java/org/codehaus/groovy/transform/BaseScriptASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/BaseScriptASTTransformation.java
index 55a193821a..ed89ebd301 100644
--- a/src/main/java/org/codehaus/groovy/transform/BaseScriptASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/BaseScriptASTTransformation.java
@@ -159,7 +159,7 @@ public class BaseScriptASTTransformation extends AbstractASTTransformation {
}
private static boolean isCustomScriptBodyMethod(final MethodNode mn) {
- return mn != null && !(mn.getName().equals("run")
+ return mn != null && !("run".equals(mn.getName())
&& mn.getParameters().length == 0
&& mn.getDeclaringClass().equals(ClassHelper.SCRIPT_TYPE));
}
diff --git a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
index 0d5bd80d67..cf724f8356 100644
--- a/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/EqualsAndHashCodeASTTransformation.java
@@ -131,7 +131,7 @@ public class EqualsAndHashCodeASTTransformation extends AbstractASTTransformatio
pojo = (boolean) pojoMember;
}
boolean useCanEqual = !memberHasValue(anno, "useCanEqual", false);
- if (callSuper && cNode.getSuperClass().getName().equals("java.lang.Object")) {
+ if (callSuper && "java.lang.Object".equals(cNode.getSuperClass().getName())) {
addError("Error during " + MY_TYPE_NAME + " processing: callSuper=true but '" + cNode.getName() + "' has no super class.", anno);
}
boolean includeFields = memberHasValue(anno, "includeFields", true);
diff --git a/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
index 5b7a6f950d..6fdc4e5f25 100644
--- a/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ExternalizeMethodsASTTransformation.java
@@ -39,6 +39,13 @@ import java.io.ObjectOutput;
import java.util.List;
import static org.apache.groovy.ast.tools.ClassNodeUtils.addGeneratedMethod;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveBoolean;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveByte;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveDouble;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveFloat;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveInt;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveLong;
+import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveShort;
import static org.codehaus.groovy.ast.ClassHelper.make;
import static org.codehaus.groovy.ast.tools.GeneralUtils.assignS;
import static org.codehaus.groovy.ast.tools.GeneralUtils.callX;
@@ -49,13 +56,6 @@ import static org.codehaus.groovy.ast.tools.GeneralUtils.param;
import static org.codehaus.groovy.ast.tools.GeneralUtils.params;
import static org.codehaus.groovy.ast.tools.GeneralUtils.stmt;
import static org.codehaus.groovy.ast.tools.GeneralUtils.varX;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveBoolean;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveByte;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveDouble;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveFloat;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveInt;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveLong;
-import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveShort;
import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
import static org.objectweb.asm.Opcodes.ACC_TRANSIENT;
@@ -117,7 +117,7 @@ public class ExternalizeMethodsASTTransformation extends AbstractASTTransformati
String suffix = suffixForField(fNode);
MethodCallExpression readObject = callX(varX(oin), "read" + suffix);
readObject.setImplicitThis(false);
- body.addStatement(assignS(varX(fNode), suffix.equals("Object") ? castX(GenericsUtils.nonGeneric(fNode.getType()), readObject) : readObject));
+ body.addStatement(assignS(varX(fNode), "Object".equals(suffix) ? castX(GenericsUtils.nonGeneric(fNode.getType()), readObject) : readObject));
}
addGeneratedMethod(cNode, "readExternal", ACC_PUBLIC, ClassHelper.VOID_TYPE, params(oin), ClassNode.EMPTY_ARRAY, body);
}
diff --git a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
index 9ad3dafa5e..745bdd6919 100644
--- a/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/NewifyASTTransformation.java
@@ -387,7 +387,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
final Expression obj = mce.getObjectExpression();
final Expression meth = mce.getMethod();
return (obj instanceof ClassExpression && meth instanceof ConstantExpression
- && ((ConstantExpression) meth).getValue().equals("new"));
+ && "new".equals(((ConstantExpression) meth).getValue()));
}
private Expression transformMethodCall(MethodCallExpression mce, Expression argsExp) {
diff --git a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
index 0515f6ade8..cc67c0910b 100644
--- a/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/PackageScopeASTTransformation.java
@@ -205,7 +205,7 @@ public class PackageScopeASTTransformation extends AbstractASTTransformation {
Expression oe = expr.getObjectExpression();
if (oe instanceof ClassExpression) {
ClassExpression ce = (ClassExpression) oe;
- if (ce.getType().getName().equals("groovy.transform.PackageScopeTarget")) {
+ if ("groovy.transform.PackageScopeTarget".equals(ce.getType().getName())) {
Expression prop = expr.getProperty();
if (prop instanceof ConstantExpression) {
String propName = (String) ((ConstantExpression) prop).getValue();
diff --git a/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
index ff7ca91e46..09e7d579a0 100644
--- a/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/RecordTypeASTTransformation.java
@@ -501,7 +501,7 @@ public class RecordTypeASTTransformation extends AbstractASTTransformation imple
Expression oe = prop.getObjectExpression();
if (oe instanceof ClassExpression) {
ClassExpression ce = (ClassExpression) oe;
- if (ce.getType().getName().equals("groovy.transform.RecordTypeMode")) {
+ 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 eba9f5454e..bdc351a558 100644
--- a/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SealedASTTransformation.java
@@ -135,7 +135,7 @@ public class SealedASTTransformation extends AbstractASTTransformation {
Expression oe = prop.getObjectExpression();
if (oe instanceof ClassExpression) {
ClassExpression ce = (ClassExpression) oe;
- if (ce.getType().getName().equals("groovy.transform.SealedMode")) {
+ if ("groovy.transform.SealedMode".equals(ce.getType().getName())) {
return SealedMode.valueOf(prop.getPropertyAsString());
}
}
diff --git a/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
index 9ed3efa996..fd280a2c7d 100644
--- a/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/SynchronizedASTTransformation.java
@@ -77,7 +77,7 @@ public class SynchronizedASTTransformation extends AbstractASTTransformation {
private String determineLock(String value, ClassNode cNode, MethodNode mNode) {
boolean isStatic = mNode.isStatic();
- if (value != null && value.length() > 0 && !value.equalsIgnoreCase("$lock")) {
+ if (value != null && value.length() > 0 && !"$lock".equalsIgnoreCase(value)) {
if (cNode.getDeclaredField(value) == null) {
addError("Error during " + MY_TYPE_NAME + " processing: lock field with name '" + value + "' not found in class " + cNode.getName(), mNode);
return null;
diff --git a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
index 9f060445bd..c1ee64c85f 100644
--- a/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/ToStringASTTransformation.java
@@ -113,7 +113,7 @@ public class ToStringASTTransformation extends AbstractASTTransformation {
if (includes != null && includes.contains("super")) {
includeSuper = true;
}
- if (includeSuper && cNode.getSuperClass().getName().equals("java.lang.Object")) {
+ if (includeSuper && "java.lang.Object".equals(cNode.getSuperClass().getName())) {
addError("Error during " + MY_TYPE_NAME + " processing: includeSuper=true but '" + cNode.getName() + "' has no super class.", anno);
}
boolean includeNames = memberHasValue(anno, "includeNames", true);
diff --git a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
index 6aefc8afd6..e6d6fc4746 100644
--- a/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/transform/TupleConstructorASTTransformation.java
@@ -393,7 +393,7 @@ public class TupleConstructorASTTransformation extends AbstractASTTransformation
Expression oe = prop.getObjectExpression();
if (oe instanceof ClassExpression) {
ClassExpression ce = (ClassExpression) oe;
- if (ce.getType().getName().equals("groovy.transform.DefaultsMode")) {
+ if ("groovy.transform.DefaultsMode".equals(ce.getType().getName())) {
return DefaultsMode.valueOf(prop.getPropertyAsString());
}
}
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 781835dfc9..80a8318b45 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -1554,7 +1554,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
enclosingTypes.addAll(enclosingTypes.iterator().next().getOuterClasses());
if (objectExpression instanceof ClassExpression) {
- if (propertyName.equals("this")) {
+ if ("this".equals(propertyName)) {
// handle "Outer.this" for any level of nesting
ClassNode outer = getType(objectExpression).getGenericsTypes()[0].getType();
@@ -1569,7 +1569,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
storeType(pexp, outer);
return true;
}
- } else if (propertyName.equals("super")) {
+ } else if ("super".equals(propertyName)) {
// GROOVY-8299: handle "Iface.super" for interface default methods
ClassNode enclosingType = typeCheckingContext.getEnclosingClassNode();
ClassNode accessingType = getType(objectExpression).getGenericsTypes()[0].getType();
@@ -1593,7 +1593,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
for (Receiver<String> receiver : receivers) {
ClassNode receiverType = receiver.getType();
- if (receiverType.isArray() && propertyName.equals("length")) {
+ if (receiverType.isArray() && "length".equals(propertyName)) {
pexp.putNodeMetaData(READONLY_PROPERTY, Boolean.TRUE);
storeType(pexp, int_TYPE);
if (visitor != null) {
@@ -1671,7 +1671,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
getter = current.getGetterMethod(getterName);
getter = allowStaticAccessToMember(getter, staticOnly);
}
- if (getter != null && ((publicOnly && (!getter.isPublic() || propertyName.equals("class") || propertyName.equals("empty")))
+ if (getter != null && ((publicOnly && (!getter.isPublic() || "class".equals(propertyName) || "empty".equals(propertyName)))
// GROOVY-11319:
|| !hasAccessToMember(typeCheckingContext.getEnclosingClassNode(), getter.getDeclaringClass(), getter.getModifiers()))) {
getter = null;
@@ -2934,7 +2934,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
return;
}
ClassNode type = call.getOwnerType();
- if (type.isEnum() && name.equals("$INIT")) { // GROOVY-10845: $INIT(Object[]) delegates to constructor
+ if (type.isEnum() && "$INIT".equals(name)) { // GROOVY-10845: $INIT(Object[]) delegates to constructor
Expression target = typeCheckingContext.getEnclosingBinaryExpression().getLeftExpression();
ConstructorCallExpression cce = new ConstructorCallExpression(type, call.getArguments());
cce.setSourcePosition(((FieldExpression) target).getField());
@@ -3663,7 +3663,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
ClassNode[] args = getArgumentTypes(argumentList);
boolean functorsVisited = false;
if (!isThisObjectExpression && receiver.equals(CLOSURE_TYPE)
- && (name.equals("call") || name.equals("doCall"))) {
+ && ("call".equals(name) || "doCall".equals(name))) {
if (objectExpression instanceof VariableExpression) {
Variable variable = findTargetVariable((VariableExpression) objectExpression);
if (variable instanceof ASTNode) {
@@ -3707,7 +3707,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
// GROOVY-11386:
if (isThisObjectExpression && call.isImplicitThis()
&& typeCheckingContext.getEnclosingClosure() != null
- && !name.equals("call") && !name.equals("doCall")) { // GROOVY-9662
+ && !"call".equals(name) && !"doCall".equals(name)) { // GROOVY-9662
mn = CLOSURE_TYPE.getMethods(name);
if (!mn.isEmpty()) {
receiver = CLOSURE_TYPE.getPlainNodeReference();
@@ -3737,7 +3737,7 @@ out: if ((samParameterTypes.length == 1 && isOrImplements(samParameterTypes[0
}
}
}
- if (mn.isEmpty() && !name.equals("call")) {
+ if (mn.isEmpty() && !"call".equals(name)) {
// GROOVY-5705, GROOVY-5881, GROOVY-6324, GROOVY-11366: closure property
var property = propX(objectExpression, call.getMethod(), call.isSafe());
property.setImplicitThis(call.isImplicitThis());
@@ -3969,7 +3969,7 @@ out: if (mn.size() != 1) {
List<Receiver<String>> owners = new ArrayList<>();
if (typeCheckingContext.delegationMetadata != null
&& objectExpression instanceof VariableExpression
- && ((Variable) objectExpression).getName().equals("owner")
+ && "owner".equals(((Variable) objectExpression).getName())
&& /*isNested:*/typeCheckingContext.delegationMetadata.getParent() != null) {
owners.add(new Receiver<>(receiver, "owner")); // if nested, Closure is the first owner
List<Receiver<String>> thisType = new ArrayList<>(2); // and the enclosing class is the
@@ -4967,7 +4967,7 @@ trying: for (ClassNode[] signature : signatures) {
*/
protected List<MethodNode> findMethodsWithGenerated(final ClassNode receiver, final String name) {
if (receiver.isArray()) {
- if (name.equals("clone")) { // GROOVY-10319: array clone -- <https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.7>
+ if ("clone".equals(name)) { // GROOVY-10319: array clone -- <https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.7>
MethodNode clone = new MethodNode("clone", Opcodes.ACC_PUBLIC, OBJECT_TYPE, Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, null);
clone.setDeclaringClass(OBJECT_TYPE); // retain Object for declaringClass and returnType
clone.setNodeMetaData(INFERRED_RETURN_TYPE, receiver);
@@ -5283,7 +5283,7 @@ trying: for (ClassNode[] signature : signatures) {
if (parameters != null) {
final int n = parameters.length;
String parameterName = parameter.getName();
- if (n == 0 && parameterName.equals("it")) {
+ if (n == 0 && "it".equals(parameterName)) {
return closureParamTypes.length > 0 ? closureParamTypes[0] : null;
}
for (int i = 0; i < n; i += 1) {
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 8f01493820..0b674c117a 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java
@@ -200,7 +200,7 @@ public class Java8 implements VMPlugin {
ClassNode[] lowers = configureTypes(wildcardType.getLowerBounds());
ClassNode[] uppers = configureTypes(wildcardType.getUpperBounds());
// beware of [Object] upper bounds; often it's <?> or <? super T>
- if (lowers != null || wildcardType.getTypeName().equals("?")) {
+ if (lowers != null || "?".equals(wildcardType.getTypeName())) {
uppers = null;
}
@@ -257,7 +257,7 @@ public class Java8 implements VMPlugin {
for (AnnotationNode an : annotations) {
plugin.configureAnnotationNodeFromDefinition(an, node);
}
- if (!node.getClassNode().getName().equals("java.lang.annotation.Retention")) {
+ if (!"java.lang.annotation.Retention".equals(node.getClassNode().getName())) {
plugin.configureAnnotationNodeFromDefinition(node, node);
}
}
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
index c5f10ded70..cb73423a87 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
@@ -92,7 +92,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
*/
public static Object next(final Enum self) {
for (Method method : self.getClass().getMethods()) {
- if (method.getName().equals("next") && method.getParameterCount() == 0) {
+ if ("next".equals(method.getName()) && method.getParameterCount() == 0) {
return InvokerHelper.invokeMethod(self, "next", InvokerHelper.EMPTY_ARGS);
}
}
@@ -112,7 +112,7 @@ public class PluginDefaultGroovyMethods extends DefaultGroovyMethodsSupport {
*/
public static Object previous(final Enum self) {
for (Method method : self.getClass().getMethods()) {
- if (method.getName().equals("previous") && method.getParameterCount() == 0) {
+ if ("previous".equals(method.getName()) && method.getParameterCount() == 0) {
return InvokerHelper.invokeMethod(self, "previous", InvokerHelper.EMPTY_ARGS);
}
}
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 ad23a106de..ff81afc9cf 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Selector.java
@@ -619,7 +619,7 @@ public abstract class Selector {
}
else if (!mci.hasCustomInvokeMethod()) {
String name = this.name;
- if (name.equals("call") && receiver instanceof GeneratedClosure) {
+ if ("call".equals(name) && receiver instanceof GeneratedClosure) {
name = "doCall";
}
method = mci.getMethodWithCaching(selectionBase, name, newArgs, false);
@@ -639,7 +639,7 @@ public abstract class Selector {
isCategoryMethod = (method instanceof CategoryMethod);
if (metaMethod instanceof NumberNumberMetaMethod
- || (method instanceof GeneratedMetaMethod && (name.equals("next") || name.equals("previous")))) {
+ || (method instanceof GeneratedMetaMethod && ("next".equals(name) || "previous".equals(name)))) {
if (LOG_ENABLED) LOG.info("meta method is number method");
if (IndyMath.chooseMathMethod(this, metaMethod)) {
catchException = false;
@@ -666,7 +666,7 @@ public abstract class Selector {
try {
var declaringClass = cm.getDeclaringClass().getTheClass();
int parameterCount = cm.getParamsCount();
- if (parameterCount == 0 && name.equals("clone") && declaringClass == Object.class) {
+ if (parameterCount == 0 && "clone".equals(name) && declaringClass == Object.class) {
var receiverClass = getCorrectedReceiver().getClass();
if (receiverClass.isArray()) { // GROOVY-10733, et al.
handle = MethodHandles.publicLookup().findVirtual(receiverClass, "clone", MethodType.methodType(Object.class));
@@ -675,7 +675,7 @@ public abstract class Selector {
.bindTo(new CloneNotSupportedException());
handle = MethodHandles.dropArguments(handle, 0, Object.class); // discard receiver
}
- } else if (parameterCount == 1 && name.equals("forName") && declaringClass == Class.class) {
+ } else if (parameterCount == 1 && "forName".equals(name) && declaringClass == Class.class) {
handle = MethodHandles.insertArguments(CLASS_FOR_NAME, 1, Boolean.TRUE, sender.getClassLoader());
} else {
handle = unreflect(cm.getCachedMethod());
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 646605a7d6..a0f6b3c569 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java
@@ -216,7 +216,7 @@ public class Java9 extends Java8 {
private Optional<CachedMethod> transformDirectAccess(final Class<?> metaClass, final CachedMethod metaMethod, final Class<?> caller) {
Class<?>[] paramTypes = metaMethod.getPT();
- if (metaClass == BigInteger.class && paramTypes.length == 1 && metaMethod.getName().equals("multiply")) {
+ if (metaClass == BigInteger.class && paramTypes.length == 1 && "multiply".equals(metaMethod.getName())) {
Class<?> type = paramTypes[0];
if (type == Long.class || type == long.class
|| type == Integer.class || type == int.class