From 1003d47f544f0cc920d2a31e97a83d384d72512a Mon Sep 17 00:00:00 2001 From: Andrea Guarino Date: Wed, 17 Jun 2020 13:41:06 +0200 Subject: [PATCH 1/2] Fix memory leak in BuiltinShadowingAssignmentCheck (S5806) --- .../org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java | 1 + 1 file changed, 1 insertion(+) diff --git a/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java b/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java index d305041b47..28964e421b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java @@ -66,6 +66,7 @@ public class BuiltinShadowingAssignmentCheck extends PythonSubscriptionCheck { @Override public void initialize(Context context) { + variableIssuesRaised.clear(); context.registerSyntaxNodeConsumer(Tree.Kind.ASSIGNMENT_STMT, this::checkAssignment); context.registerSyntaxNodeConsumer(Tree.Kind.ANNOTATED_ASSIGNMENT, this::checkAnnotatedAssignment); context.registerSyntaxNodeConsumer(Tree.Kind.ASSIGNMENT_EXPRESSION, this::checkAssignmentExpression); From 0ef1ab317c09e9836fcd9ac5c2fb6a7ebd0145e1 Mon Sep 17 00:00:00 2001 From: Andrea Guarino Date: Wed, 17 Jun 2020 14:13:04 +0200 Subject: [PATCH 2/2] Fixes after review --- .../sonar/python/checks/BuiltinShadowingAssignmentCheck.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java b/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java index 28964e421b..a86e9d2336 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/BuiltinShadowingAssignmentCheck.java @@ -66,7 +66,7 @@ public class BuiltinShadowingAssignmentCheck extends PythonSubscriptionCheck { @Override public void initialize(Context context) { - variableIssuesRaised.clear(); + context.registerSyntaxNodeConsumer(Tree.Kind.FILE_INPUT, ctx -> variableIssuesRaised.clear()); context.registerSyntaxNodeConsumer(Tree.Kind.ASSIGNMENT_STMT, this::checkAssignment); context.registerSyntaxNodeConsumer(Tree.Kind.ANNOTATED_ASSIGNMENT, this::checkAnnotatedAssignment); context.registerSyntaxNodeConsumer(Tree.Kind.ASSIGNMENT_EXPRESSION, this::checkAssignmentExpression);