Fix unwrap on None
This commit is contained in:
parent
34ccd04859
commit
97aa4ba171
@ -1620,8 +1620,7 @@ fn note_type_is_not_clone_inner_expr<'b>(
|
|||||||
.iter()
|
.iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.filter(|x| x.1.hir_id == *hir_id)
|
.filter(|x| x.1.hir_id == *hir_id)
|
||||||
.map(|(i, _)| init_tup.get(i).unwrap())
|
.find_map(|(i, _)| init_tup.get(i))
|
||||||
.next()
|
|
||||||
{
|
{
|
||||||
self.note_type_is_not_clone_inner_expr(init)
|
self.note_type_is_not_clone_inner_expr(init)
|
||||||
} else {
|
} else {
|
||||||
|
15
tests/ui/typeck/issue-114423.rs
Normal file
15
tests/ui/typeck/issue-114423.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
struct RGB {
|
||||||
|
g: f64,
|
||||||
|
b: f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let (r, alone_in_path, b): (f32, f32, f32) = (e.clone(), e.clone());
|
||||||
|
//~^ ERROR cannot find value `e` in this scope
|
||||||
|
//~| ERROR cannot find value `e` in this scope
|
||||||
|
//~| ERROR mismatched types
|
||||||
|
let _ = RGB { r, g, b };
|
||||||
|
//~^ ERROR cannot find value `g` in this scope
|
||||||
|
//~| ERROR struct `RGB` has no field named `r`
|
||||||
|
//~| ERROR mismatched types
|
||||||
|
}
|
52
tests/ui/typeck/issue-114423.stderr
Normal file
52
tests/ui/typeck/issue-114423.stderr
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
error[E0425]: cannot find value `e` in this scope
|
||||||
|
--> $DIR/issue-114423.rs:7:51
|
||||||
|
|
|
||||||
|
LL | let (r, alone_in_path, b): (f32, f32, f32) = (e.clone(), e.clone());
|
||||||
|
| ^ not found in this scope
|
||||||
|
|
||||||
|
error[E0425]: cannot find value `e` in this scope
|
||||||
|
--> $DIR/issue-114423.rs:7:62
|
||||||
|
|
|
||||||
|
LL | let (r, alone_in_path, b): (f32, f32, f32) = (e.clone(), e.clone());
|
||||||
|
| ^ not found in this scope
|
||||||
|
|
||||||
|
error[E0425]: cannot find value `g` in this scope
|
||||||
|
--> $DIR/issue-114423.rs:11:22
|
||||||
|
|
|
||||||
|
LL | let _ = RGB { r, g, b };
|
||||||
|
| ^ help: a local variable with a similar name exists: `b`
|
||||||
|
|
||||||
|
error[E0308]: mismatched types
|
||||||
|
--> $DIR/issue-114423.rs:7:50
|
||||||
|
|
|
||||||
|
LL | let (r, alone_in_path, b): (f32, f32, f32) = (e.clone(), e.clone());
|
||||||
|
| --------------- ^^^^^^^^^^^^^^^^^^^^^^ expected a tuple with 3 elements, found one with 2 elements
|
||||||
|
| |
|
||||||
|
| expected due to this
|
||||||
|
|
|
||||||
|
= note: expected tuple `(f32, f32, f32)`
|
||||||
|
found tuple `(f32, f32)`
|
||||||
|
|
||||||
|
error[E0560]: struct `RGB` has no field named `r`
|
||||||
|
--> $DIR/issue-114423.rs:11:19
|
||||||
|
|
|
||||||
|
LL | let _ = RGB { r, g, b };
|
||||||
|
| ^ `RGB` does not have this field
|
||||||
|
|
|
||||||
|
= note: all struct fields are already assigned
|
||||||
|
|
||||||
|
error[E0308]: mismatched types
|
||||||
|
--> $DIR/issue-114423.rs:11:25
|
||||||
|
|
|
||||||
|
LL | let _ = RGB { r, g, b };
|
||||||
|
| ^ expected `f64`, found `f32`
|
||||||
|
|
|
||||||
|
help: you can convert an `f32` to an `f64`
|
||||||
|
|
|
||||||
|
LL | let _ = RGB { r, g, b: b.into() };
|
||||||
|
| ++ +++++++
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0308, E0425, E0560.
|
||||||
|
For more information about an error, try `rustc --explain E0308`.
|
Loading…
Reference in New Issue
Block a user