我不允许在变量声明中进行不相关的隐藏。
但是现在这个规则在这两行上给出了一个错误
let overflow: bool;
(self.standing, overflow) = self.standing.overflowing_add(reason.to_severity());我得到的皮毛错误是:
error: `overflow` shadows a previous, unrelated binding
--> src/models/peer.rs:73:25
|
73 | (self.standing, overflow) = self.standing.overflowing_add(reason.to_severity());
| ^^^^^^^^
|
note: the lint level is defined here
--> src/lib.rs:1:9
|
1 | #![deny(clippy::shadow_unrelated)]
| ^^^^^^^^^^^^^^^^^^^^^^^^
note: previous binding is here
--> src/models/peer.rs:73:10
|
73 | (self.standing, overflow) = self.standing.overflowing_add(reason.to_severity());
| ^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated我使用的是锈蚀编译器的1.62.0版本。
我的想法是这种行为是错误的。在这个规则下,应该允许上面的行。我说错了吗?
这里可以看到这个问题。感谢@Jmp为这个问题写了一幅插图。
发布于 2022-07-11 12:00:09
这是一个报告的bug - 防锈#6141。
我认为问题在于,销毁赋值被分解为重用相同跨度的let声明,这会导致clippy认为它具有相同的名称,从而隐藏起来。
https://stackoverflow.com/questions/72938116
复制相似问题