![](/img/trans.png)
[英]Intellij IDE, how to disable 'Unexpected Token' warning inspection result
[英]Rust IDE not detecting Result from error_chain, thinks I'm using the std::result::Result
我有一个带error_chain! {}
的errors.rs
文件error_chain! {}
error_chain! {}
,导出Result
, ResultExt
, Error
和ErrorKind
。
如果我use self::errors::*
,IntelliJ认为我使用的是默认Result
( std::result::Result
,我认为)。 但是,如果我使用use self::errors::{Result, ...}
显式导入类型,那么一切都会变成hunky dory。
我可以告诉,因为标准结果有两个类型参数,但error_chain
只有一个。
在任何一种情况下,它仍然编译。
我正在使用标准的Rust IntelliJ插件,版本0.1.0.1991
。
救命! 有谁知道如何让插件了解宏正在做什么?
IntelliJ-Rust插件使用自己的代码解析器。 它允许利用所有IntelliJ平台功能(如代码导航,格式化,重构,检查,快速文档,标记和许多其他功能),但需要实现所有语言功能,这对Rust来说不是一项简单的任务(你可以找到更多在这个reddit帖子中深入讨论Rust编译器解析器与IDE解析器的关系。
宏扩展可能是目前插件解析器不支持的最大语言功能。 也就是说,插件看到了这个error_chain!
call,可以将其解析为其定义,但不会将其扩展为实际代码,因此不知道从stdlib中隐藏一个的新Result
结构。 不幸的是,在某些情况下,它会导致这种误报错误消息。
我已将此错误注释转换为检查,因此在下一个插件版本中,您将能够完全关闭它或为特定代码块关闭它。 宏扩展的工作也在进行中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.