Skip to content

Commit e8ab801

Browse files
committed
Схлопывание ArrayList после расчета дерева
1 parent f4255b0 commit e8ab801

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/SymbolTreeComputer.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public SymbolTree compute() {
6464
currentParent = placeSymbol(topLevelSymbols, currentParent, symbol);
6565
}
6666

67+
collapseChildrenCollection(moduleSymbol);
68+
6769
return new SymbolTree(moduleSymbol);
6870
}
6971

@@ -89,4 +91,12 @@ private static SourceDefinedSymbol placeSymbol(
8991
return placeSymbol(topLevelSymbols, maybeParent.get(), symbol);
9092
}
9193

94+
private static void collapseChildrenCollection(SourceDefinedSymbol symbol) {
95+
var children = symbol.getChildren();
96+
if (children instanceof ArrayList) {
97+
((ArrayList<SourceDefinedSymbol>) children).trimToSize();
98+
}
99+
100+
children.forEach(SymbolTreeComputer::collapseChildrenCollection);
101+
}
92102
}

0 commit comments

Comments
 (0)