5

次のような完全修飾型パスを含むマクロを使用してコードを生成しています。

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行だけの警告を無効にするにはどうすればよいですか?

4

1 に答える 1