diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilder.java b/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilder.java index 57dd19f8846..c09e011b86d 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilder.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilder.java @@ -117,6 +117,9 @@ public Description matchNewClass(NewClassTree tree, VisitorState state) { } } ASTHelpers.TargetType target = ASTHelpers.targetType(state.withPath(path)); + if (target == null) { + return NO_MATCH; + } if (!isUsedAsStringBuilder(state, target)) { return describeMatch( path.getLeaf(), SuggestedFix.replace(path.getLeaf(), replacement(state, parts))); diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilderTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilderTest.java index a022aae7247..fc96ab21d2d 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilderTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/UnnecessaryStringBuilderTest.java @@ -164,4 +164,17 @@ public void varType() { "}") .doTest(); } + + @Test + public void unusedReturnValue() { + testHelper + .addSourceLines( + "Test.java", + "class Test {", + " void f() {", + " new StringBuilder().append(\"foo\");", + " }", + "}") + .doTest(); + } }