如何禁用 "unnecessary path disambiguator" 警告?
How to disable "unnecessary path disambiguator" warning?
我正在使用宏生成代码,其中包含完全限定的类型路径,如下所示:
let vec: Vec::<String>;
注意 <String>
之前的额外 ::
。这是必要的,以便相同的输入标记也可以用于构造函数,通过附加 ::new()
:
Vec::<String>::new()
但是,这会产生警告:
warning: unnecessary path disambiguator
--> src/main.rs:4:17
|
4 | let vec: Vec::<String>;
| ^^ try removing `::`
我无法删除 ::
因为那样我会收到错误消息:
error: chained comparison operators require parentheses
--> src/main.rs:6:14
|
6 | vec = Vec<String>::new();
| ^^^^^^^^^^
|
= help: use `::<...>` instead of `<...>` if you meant to specify type arguments
= help: or use `(...)` if you meant to specify fn arguments
error[E0423]: expected value, found struct `Vec`
--> src/main.rs:6:11
|
6 | vec = Vec<String>::new();
| ^^^
| |
| did you mean `vec`?
| did you mean `Vec { /* fields */ }`?
如何只针对这一行禁用警告?
目前是一个悬而未决的问题。
此 lint 当前正在滑动这些属性,例如 #![allow(warnings)]
我正在使用宏生成代码,其中包含完全限定的类型路径,如下所示:
let vec: Vec::<String>;
注意 <String>
之前的额外 ::
。这是必要的,以便相同的输入标记也可以用于构造函数,通过附加 ::new()
:
Vec::<String>::new()
但是,这会产生警告:
warning: unnecessary path disambiguator
--> src/main.rs:4:17
|
4 | let vec: Vec::<String>;
| ^^ try removing `::`
我无法删除 ::
因为那样我会收到错误消息:
error: chained comparison operators require parentheses
--> src/main.rs:6:14
|
6 | vec = Vec<String>::new();
| ^^^^^^^^^^
|
= help: use `::<...>` instead of `<...>` if you meant to specify type arguments
= help: or use `(...)` if you meant to specify fn arguments
error[E0423]: expected value, found struct `Vec`
--> src/main.rs:6:11
|
6 | vec = Vec<String>::new();
| ^^^
| |
| did you mean `vec`?
| did you mean `Vec { /* fields */ }`?
如何只针对这一行禁用警告?
目前是一个悬而未决的问题。
此 lint 当前正在滑动这些属性,例如 #![allow(warnings)]