首页 > 解决方案 > Go 编译器:错误行号不正确,给出 1048575 即 0xFFFFF,当问题在文件中进一步出现时

问题描述

我正在测试代码生成功能并故意创建非常大的 .go 源文件。

但是,我在行1048575(即0xFFFFF)处看到 go 编译器的错误,例如:

generated.go:1048575:75: invalid character U+0040 '@'
generated.go:1048575:76: const declaration cannot have type without expression
generated.go:1048575:88: syntax error: unexpected E_Blah_Blah, expecting semicolon or newline or )

这是一个已知的限制吗?

EDIT-1:评论者要求提供有关生成文件内容的更多信息;进一步的测试表明,当我故意在第 1048573 行或第 1048574 行引入一个新错误时,它会按我的预期报告,但如果我1048575在行号或更高行号引入一个错误,我总是会在 1048575 处报告错误。

EDIT-2:我现在意识到最初的问题invalid character U+0040 '@'确实是我生成的文件中的一个错误,但它在编译器告诉我的行号下方。

EDIT-3:所以我想问题应该是:如果错误比第 0xFFFFF 行更远,有没有办法让 go-compiler 为问题提供正确的行号?

标签: gocompiler-errors

解决方案


这是一个已知的限制吗?

不。


推荐阅读