Skip to content

Commit 6bf24cc

Browse files
authored
fix(3622): prevent panic in signature help for import.defer (#3626)
1 parent b5cece1 commit 6bf24cc

3 files changed

Lines changed: 44 additions & 0 deletions

File tree

internal/checker/checker.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8309,6 +8309,9 @@ func (c *Checker) resolveCallExpression(node *ast.Node, candidatesOutArray *[]*S
83098309
}
83108310
return c.resolveUntypedCall(node)
83118311
}
8312+
if ast.IsImportCall(node) {
8313+
return c.resolveUntypedCall(node)
8314+
}
83128315
var callChainFlags SignatureFlags
83138316
funcType := c.checkExpression(node.Expression())
83148317
if isCallChain(node) {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package fourslash_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/microsoft/typescript-go/internal/fourslash"
7+
"github.com/microsoft/typescript-go/internal/testutil"
8+
)
9+
10+
func TestSignatureHelpOnImportDefer(t *testing.T) {
11+
t.Parallel()
12+
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
13+
const content = `let m = import.defer(/**/)`
14+
15+
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
16+
defer done()
17+
18+
f.GoToMarker(t, "")
19+
f.VerifyBaselineSignatureHelp(t)
20+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// === SignatureHelp ===
2+
=== /signatureHelpOnImportDefer.ts ===
3+
// let m = import.defer()
4+
// ^
5+
// | ----------------------------------------------------------------------
6+
// | No signaturehelp at /**/.
7+
// | ----------------------------------------------------------------------
8+
[
9+
{
10+
"marker": {
11+
"Position": 21,
12+
"LSPosition": {
13+
"line": 0,
14+
"character": 21
15+
},
16+
"Name": "",
17+
"Data": {}
18+
},
19+
"item": null
20+
}
21+
]

0 commit comments

Comments
 (0)