Merge pull request #4356 from fix-closeresource-rule

[java] Fix NPE in CloseResourceRule #4356
This commit is contained in:
Andreas Dangel committed 2023-01-30 11:22:35 +01:00
commit 0547d907b0
2 files changed
+17 -1

No files matched your search

@@ -216,7 +216,7 @@ public class CloseResourceRule extends AbstractJavaRule {
private TypeNode getRuntimeTypeOfVariable(ASTVariableDeclaratorId var) {
ASTExpression initExpr = var.getInitializer();
return isRuntimeType(initExpr) ? initExpr : null;
return var.isTypeInferred() || isRuntimeType(initExpr) ? initExpr : null;
}
private boolean isRuntimeType(ASTExpression expr) {
@@ -2010,6 +2010,22 @@ public record MyRecord(boolean a) {
private static Object test;
}
}
}
]]></code>
</test-code>
<test-code>
<description>NullPointerException with type inference</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
import java.util.ArrayList;
public class LocalVariableTypeInference {
public void aMethod() {
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream(); // infers Stream<String>, is never closed
}
}
]]></code>
</test-code>