此堆栈 _5BDSg
的状态为 reported by telemetry:
gopls/bug
golang.org/x/tools/gopls/internal/util/bug.report:+35
golang.org/x/tools/gopls/internal/util/bug.Reportf:+1
golang.org/x/tools/gopls/internal/cache.typeErrorsToDiagnostics.func1:+28
golang.org/x/tools/gopls/internal/cache.typeErrorsToDiagnostics:+119
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage:+127
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage:+70
golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2:+1
golang.org/x/sync/errgroup.(*Group).Go.func1:+3
runtime.goexit:+0
golang.org/x/tools/gopls@v0.15.0-pre.4 go1.21.5 darwin/amd64 vscode (1)
问题是由 golang.org/x/tools/gopls/internal/telemetry/cmd/stacks 创建的。
重复项:T_TswA ypJFHg
与以下内容密切相关:
5条答案
按热度按时间uubf1zoe1#
目前运气不佳。崩溃表明有一个引用的
ast.Ident{Name: "_"}
,其位置无效,要么是因为它是0,要么超出了 FileSet 范围。我不明白解析器是如何创建一个的;可以设想fixAST
可以:例如,fixInitStmt
在文件结束时尝试通过解析文本i := 0
(一个 BadExpr)作为语句来解析if i := 0
,但它在一个丢弃的 FileSet 中这样做,因此生成的位置是垃圾。它们可能是较小的值,在普通 FileSet 的第一文件中有很高的有效位置概率,但是 gopls 类型检查构建的具体 FileSet 是一个合成的 one,只挑选当前类型检查批次中的文件,所以它可能在底部有一个缺口。dnph8jn42#
此堆栈
T_TswA
的状态为 reported by telemetry :由 golang.org/x/tools/gopls/internal/telemetry/cmd/stacks 创建的问题。
2ekbmq323#
此堆栈
ypJFHg
的状态为 reported by telemetry :由 golang.org/x/tools/gopls/internal/telemetry/cmd/stacks 创建的问题。
qacovj5a4#
此堆栈
T_TswA
的状态为 reported by telemetry :由 golang.org/x/tools/gopls/internal/telemetry/cmd/stacks 创建的问题。
7hiiyaii5#
在查看调试服务器时偶然发现:
gopls/internal/cache/check.go:1890:内部错误:类型检查器错误 "-:不能在Fset之外使用_作为值或类型"
将尝试重现。