Skip to content

Crash via checkExternalEmitHelpers #3878

@DanielRosenwasser

Description

@DanielRosenwasser

Found a few instances where requests are falling over on a stack like the following.

Diagnostics:

internal/ast.IsStringLiteralLike()
	internal/ast/utilities.go:324
internal/checker.(*Checker).resolveExternalModule()
	internal/checker/checker.go:15023
internal/checker.(*Checker).resolveHelpersModule()
	internal/checker/checker.go:28300
internal/checker.(*Checker).checkExternalEmitHelpers()
	internal/checker/checker.go:28207
internal/checker.(*Checker).checkDecorators()
	internal/checker/checker.go:5999
internal/checker.(*Checker).checkClassLikeDeclaration()
	internal/checker/checker.go:4264
internal/checker.(*Checker).checkClassDeclaration()
	internal/checker/checker.go:4257
internal/checker.(*Checker).checkSourceElementWorker()
	internal/checker/checker.go:2340
internal/checker.(*Checker).checkSourceElement()
	internal/checker/checker.go:2225
internal/checker.(*Checker).checkSourceElements()
	internal/checker/checker.go:2215
internal/checker.(*Checker).checkSourceFile()
	internal/checker/checker.go:2183
internal/checker.(*Checker).getDiagnostics()
	internal/checker/checker.go:13847
internal/checker.(*Checker).GetDiagnostics()
	internal/checker/checker.go:13837
internal/compiler.(*Program).getBindAndCheckDiagnosticsWithChecker()
	internal/compiler/program.go:1307
internal/compiler.(*Program).getSemanticDiagnosticsWithChecker()
	internal/compiler/program.go:1291
internal/compiler.(*Program).collectCheckerDiagnostics()
	internal/compiler/program.go:542
internal/compiler.(*Program).GetSemanticDiagnostics()
	internal/compiler/program.go:629
internal/ls.getAllDiagnostics()
	internal/ls/diagnostics.go:17
internal/ls.(*LanguageService).ProvideDiagnostics()
	internal/ls/diagnostics.go:28

Semantic tokens:

internal/ast.IsStringLiteralLike()
	internal/ast/utilities.go:324
internal/checker.(*Checker).resolveExternalModule()
	internal/checker/checker.go:15023
internal/checker.(*Checker).resolveHelpersModule()
	internal/checker/checker.go:28300
internal/checker.(*Checker).checkExternalEmitHelpers()
	internal/checker/checker.go:28207
internal/checker.(*Checker).checkPropertyAccessExpressionOrQualifiedName()
	internal/checker/checker.go:11212
internal/checker.(*Checker).checkPropertyAccessExpression()
	internal/checker/checker.go:11185
internal/checker.(*Checker).checkExpressionWorker()
	internal/checker/checker.go:7731
internal/checker.(*Checker).checkExpressionEx()
	internal/checker/checker.go:7528
internal/checker.(*Checker).checkExpressionCachedEx()
	internal/checker/checker.go:7494
internal/checker.(*Checker).checkAndAggregateReturnExpressionTypes.func1()
	internal/checker/checker.go:20109
internal/ast.ForEachReturnStatement.func1()
	internal/ast/utilities.go:1128
internal/ast.visitNodes()
	internal/ast/ast.go:38
internal/ast.visitNodeList()
	internal/ast/ast.go:47
internal/ast.(*Block).ForEachChild()
	internal/ast/ast_generated.go:1798
...

Ideally we would have a compiler test for these - they might be server-specific meaning we'd need a fourslash test.

Metadata

Metadata

Labels

CrashbugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions