如何禁用“不必要的路径消歧器”警告?

Posted

技术标签:

【中文标题】如何禁用“不必要的路径消歧器”警告?【英文标题】:How to disable "unnecessary path disambiguator" warning? 【发布时间】:2019-07-09 16:24:33 【问题描述】:

我正在使用宏生成代码,其中包含完全限定的类型路径,如下所示:

let vec: Vec::<String>;

注意&lt;String&gt; 之前的额外::。这是必要的,因此相同的输入标记也可以用于构造函数,方法是附加 ::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 */ `?

如何仅针对这一行禁用警告?

【问题讨论】:

我想这似乎是一个悬而未决的问题,因为它从deny(warnings)allow(warnings) 滑落。这是open_issue 【参考方案1】:

目前这是一个未解决的问题。

此 lint 当前正在忽略这些属性,例如 #![allow(warnings)]

Reference

【讨论】:

以上是关于如何禁用“不必要的路径消歧器”警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 TSLint 警告 - 深度导入

如何禁用 sublime 3 上的红旗警告?

通过(全局)shell脚本启动节点时如何禁用警告

如何禁用#pragma 警告?

如何查找和禁用特定的 NVCC 警告?

如何在本机反应中仅禁用 setState 消息警告