Skip to content

Commit 5759921

Browse files
authored
Merge pull request #1583 from codeflash-ai/codeflash/optimize-pr1199-2026-02-20T06.21.37
⚡️ Speed up function `_extract_type_names_from_code` by 44,595% in PR #1199 (`omni-java`)
2 parents 020ae70 + 08ac779 commit 5759921

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

codeflash/languages/java/context.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -869,17 +869,16 @@ def _extract_type_names_from_code(code: str, analyzer: JavaAnalyzer) -> set[str]
869869

870870
type_names: set[str] = set()
871871
try:
872-
tree = analyzer.parse(code)
873872
source_bytes = code.encode("utf8")
873+
tree = analyzer.parse(source_bytes)
874874

875-
def collect_type_identifiers(node: Node) -> None:
875+
stack = [tree.root_node]
876+
while stack:
877+
node = stack.pop()
876878
if node.type == "type_identifier":
877879
name = source_bytes[node.start_byte : node.end_byte].decode("utf8")
878880
type_names.add(name)
879-
for child in node.children:
880-
collect_type_identifiers(child)
881-
882-
collect_type_identifiers(tree.root_node)
881+
stack.extend(node.children)
883882
except Exception:
884883
pass
885884

0 commit comments

Comments
 (0)