Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ private boolean isMarker(Expression expression) {

private static class RemoveToStringVisitor extends JavaVisitor<ExecutionContext> {
private final JavaTemplate t = JavaTemplate.builder("#{any(java.lang.String)}").build();
private final MethodMatcher TO_STRING = new MethodMatcher("java.lang.Object toString()");
private final MethodMatcher TO_STRING = new MethodMatcher("*..* toString()");

@Override
public J visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,37 @@ static void method(Logger logger, Object person) {
);
}

@SuppressWarnings("UnnecessaryToStringCall")
@Test
void noNeedToCallToStringOnParameterizedArgumentOfAnyType() {
rewriteRun(
spec -> spec.recipe(new ParameterizedLogging("org.slf4j.Logger info(..)", true)),
//language=java
java(
"""
import java.util.stream.Stream;
import org.slf4j.Logger;

class Test {
static void method(Logger logger, Stream person) {
logger.info("Hello " + person.toString() + ", your name has " + person.toString().length() + " characters. Just counting " + person.toString());
}
}
""",
"""
import java.util.stream.Stream;
import org.slf4j.Logger;

class Test {
static void method(Logger logger, Stream person) {
logger.info("Hello {}, your name has {} characters. Just counting {}", person, person.toString().length(), person);
}
}
"""
)
);
}

@Test
void doNotRemoveStringOnParameterizedArgument() {
rewriteRun(
Expand Down