Skip to content

Commit ab94576

Browse files
committed
Fixes #360
1 parent a71c9b2 commit ab94576

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## [2.7.1] - 2025-XX-XX
4+
- Fix issue [#360](https://github.com/intersystems/language-server/issues/360): Infinite recursion in local variable type inference
5+
36
## [2.7.0] - 2025-02-03
47
- Fix issue [#258](https://github.com/intersystems/language-server/issues/258): Support Windows Arm
58
- Fix issue [#351](https://github.com/intersystems/language-server/issues/351): Memory leak in parser module

server/src/utils/functions.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1900,7 +1900,10 @@ async function parseSetCommand(
19001900
nextTkn[0],parsed[nextTkn[0]][nextTkn[1]].p,nextTkn[0],
19011901
parsed[nextTkn[0]][nextTkn[1]].p+parsed[nextTkn[0]][nextTkn[1]].c)
19021902
) == ","
1903-
))) {
1903+
// Protect against infinite recursion
1904+
)) && doc.getText(
1905+
Range.create(exprLn,parsed[exprLn][exprTkn].p,exprLn,parsed[exprLn][exprTkn].p+parsed[exprLn][exprTkn].c)
1906+
) != selector) {
19041907
// The expression is an unsubscripted variable reference
19051908
result = await determineVariableClass(doc,parsed,exprLn,exprTkn,server);
19061909
}

0 commit comments

Comments
 (0)