Как отключить предупреждение «Неправильный путь устранения неоднозначности»? - PullRequest
0 голосов
/ 15 февраля 2019

Я генерирую код с помощью макроса, который содержит полные пути типов, такие как:

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 */ }`?

Как отключить предупреждение только для этой одной строки?

1 Ответ

0 голосов
/ 15 февраля 2019

В настоящее время это открытый вопрос.

Этот ворс в настоящее время ускользает от таких атрибутов, как #![allow(warnings)]

Ссылка

...