![](/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.