From d7c12dad6929787d36439dbb2da65763d28ab3e0 Mon Sep 17 00:00:00 2001 From: Mohit Attry Date: Sun, 27 Oct 2024 10:15:13 +0530 Subject: [PATCH] Issue #14814: refactor containsStaticField into iterative method --- .../checkstyle/checks/coding/HiddenFieldCheck.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/HiddenFieldCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/HiddenFieldCheck.java index 44609b6027f..d5925aa0325 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/HiddenFieldCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/HiddenFieldCheck.java @@ -670,13 +670,15 @@ public boolean containsInstanceField(String field) { * * @param field the field to check * @return true if this FieldFrame contains static field - * @noinspection TailRecursion - * @noinspectionreason TailRecursion - until issue #14814 */ public boolean containsStaticField(String field) { - return staticFields.contains(field) - || parent != null - && parent.containsStaticField(field); + FieldFrame currentParent = parent; + boolean contains = staticFields.contains(field); + while (currentParent != null && !contains) { + contains = currentParent.staticFields.contains(field); + currentParent = currentParent.parent; + } + return contains; } /**