mirror of
https://github.com/jlengrand/error-prone-support.git
synced 2026-03-10 08:11:25 +00:00
Introduce RedundantStringEscape check (#1138)
This check aims to simplify string constants by dropping redundant single quote escape sequences. The check is optimized for performance. While there, update existing checks such that they do not introduce violations of the type flagged by this new check.
This commit is contained in:
committed by
GitHub
parent
27e9fe79a5
commit
fc9c20062a
@@ -30,8 +30,8 @@ import com.sun.source.tree.BinaryTree;
|
||||
import com.sun.source.tree.ClassTree;
|
||||
import com.sun.source.tree.ExpressionTree;
|
||||
import com.sun.source.tree.Tree.Kind;
|
||||
import com.sun.tools.javac.util.Constants;
|
||||
import javax.lang.model.element.Name;
|
||||
import tech.picnic.errorprone.utils.SourceCode;
|
||||
|
||||
/**
|
||||
* A {@link BugChecker} that flags {@link BugChecker} declarations inside {@code
|
||||
@@ -126,7 +126,9 @@ public final class BugPatternLink extends BugChecker implements ClassTreeMatcher
|
||||
state,
|
||||
"link",
|
||||
ImmutableList.of(
|
||||
linkPrefix + " + " + Constants.format(tree.getSimpleName().toString()))));
|
||||
linkPrefix
|
||||
+ " + "
|
||||
+ SourceCode.toStringConstantExpression(tree.getSimpleName(), state))));
|
||||
|
||||
String linkType =
|
||||
SuggestedFixes.qualifyStaticImport(
|
||||
|
||||
@@ -26,8 +26,8 @@ import com.sun.source.tree.LiteralTree;
|
||||
import com.sun.source.tree.MethodInvocationTree;
|
||||
import com.sun.tools.javac.code.Symbol;
|
||||
import com.sun.tools.javac.code.Symbol.ClassSymbol;
|
||||
import com.sun.tools.javac.util.Constants;
|
||||
import java.util.regex.Pattern;
|
||||
import tech.picnic.errorprone.utils.SourceCode;
|
||||
import tech.picnic.errorprone.utils.ThirdPartyLibrary;
|
||||
|
||||
/**
|
||||
@@ -123,7 +123,8 @@ public final class ErrorProneRuntimeClasspath extends BugChecker
|
||||
.setMessage("This type may not be on the runtime classpath; use a string literal instead")
|
||||
.addFix(
|
||||
SuggestedFix.replace(
|
||||
tree, Constants.format(receiver.owner.getQualifiedName().toString())))
|
||||
tree,
|
||||
SourceCode.toStringConstantExpression(receiver.owner.getQualifiedName(), state)))
|
||||
.build();
|
||||
}
|
||||
|
||||
@@ -150,7 +151,9 @@ public final class ErrorProneRuntimeClasspath extends BugChecker
|
||||
original,
|
||||
identifier
|
||||
+ ".class.getCanonicalName()"
|
||||
+ (suffix.isEmpty() ? "" : (" + " + Constants.format(suffix))))
|
||||
+ (suffix.isEmpty()
|
||||
? ""
|
||||
: (" + " + SourceCode.toStringConstantExpression(suffix, state))))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ import com.sun.tools.javac.code.Attribute;
|
||||
import com.sun.tools.javac.code.Symbol.ClassSymbol;
|
||||
import com.sun.tools.javac.code.Symbol.MethodSymbol;
|
||||
import com.sun.tools.javac.code.Symbol.TypeSymbol;
|
||||
import com.sun.tools.javac.util.Constants;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -49,6 +48,7 @@ import javax.lang.model.element.AnnotationMirror;
|
||||
import javax.lang.model.element.AnnotationValue;
|
||||
import javax.lang.model.element.Modifier;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
import tech.picnic.errorprone.utils.SourceCode;
|
||||
|
||||
/**
|
||||
* A {@link BugChecker} that validates the claim made by {@link
|
||||
@@ -129,7 +129,9 @@ public final class ExhaustiveRefasterTypeMigration extends BugChecker implements
|
||||
migrationAnnotation,
|
||||
state,
|
||||
TYPE_MIGRATION_UNMIGRATED_METHODS_ELEMENT,
|
||||
unmigratedMethods.stream().map(Constants::format).collect(toImmutableList()))
|
||||
unmigratedMethods.stream()
|
||||
.map(m -> SourceCode.toStringConstantExpression(m, state))
|
||||
.collect(toImmutableList()))
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user