Struct 为什么';当结构成员未读时,编译器不会发出警告吗?

Struct 为什么';当结构成员未读时,编译器不会发出警告吗?,struct,rust,unused-variables,Struct,Rust,Unused Variables,我有以下两段代码: fn main() { let mut x: int = 5; x = 6; println!("value {}", x); } 使用此代码,编译器将发出警告: 在设置x:int=5时从不读取该值 但是对于下面的代码,编译器不会 struct Point { x: int, y: int, } fn main() { let mut p = Point {x: 1i, y: 2i}; p.x = 5; p

我有以下两段代码:

fn main() {
    let mut x: int = 5;
    x = 6;
    println!("value {}", x);
}  
使用此代码,编译器将发出警告:

设置x:int=5时从不读取该值

但是对于下面的代码,编译器不会

struct Point {
    x: int,
    y: int,
}
fn main() {
    let mut p = Point {x: 1i, y: 2i};
    p.x = 5;
    println!("value {}, {}", p.x, p.y);
}

为什么会这样?当
x=1i
时,我们从不读取值。相反,我们读取
x=5i
处的值。那么为什么编译器不会像以前的代码那样发出警告呢?

我认为这是因为编译器只分析直接的局部变量,而不深入结构。我想,全面分析需要一个相当复杂的算法,几乎不需要它


或者它可能是编译器中的一个bug,或者更可能是一个未实现的特性。如果您认为这很重要,您可以向提交一张罚单。

不,这不是一个bug,只是一些未得到充分实施的问题。我可能没有正确地表达自己。在“bug”下,我指的正是一个未实现的特性。