为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
胡子哥哥 2022-05-10 15:58:44
我正在测试代码生成功能并故意创建非常大的 .go 源文件。但是,我在行1048575(即0xFFFFF)处看到 go 编译器的错误,例如:generated.go:1048575:75: invalid character U+0040 '@'generated.go:1048575:76: const declaration cannot have type without expressiongenerated.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 为问题提供正确的行号?
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这是一个已知的限制吗?

不。


查看完整回答
反对 回复 2022-05-10
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

根本原因是:


查看完整回答
反对 回复 2022-05-10
  • 2 回答
  • 0 关注
  • 363 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信