рдпрд╣ рдХреЛрдб: ( рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд▓рд┐рдВрдХ )
fn main() {
let tiles = Default::default();
for row in &mut tiles {
for tile in row {
*tile = 0;
}
}
let tiles: [[usize; 3]; 3] = tiles;
}
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓:
error[E0282]: type annotations needed
--> src/main.rs:5:13
|
4 | for tile in row {
| ---- consider giving `__next` a type
5 | *tile = 0;
| ^^^^^ cannot infer type for `_`
рдЗрд╕ рдХреЛрдб рдкрд░ рдЯрд╛рдЗрдк рдЕрдиреБрдорд╛рди (рдареАрдХ рд╣реИ) рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗрд░рд┐рдПрдмрд▓ рдЬреЛ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдЙрд╕реЗ __next
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдЪрд░ рд╣реИред
рдЦреИрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рджреЗрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛрдЧрд╛-
diff --git a/src/librustc/infer/error_reporting/need_type_info.rs b/src/librustc/infer/error_reporting/need_type_info.rs
index 7352c14..25bfb3e 100644
--- a/src/librustc/infer/error_reporting/need_type_info.rs
+++ b/src/librustc/infer/error_reporting/need_type_info.rs
@@ -131,7 +131,10 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
labels.clear();
labels.push((pattern.span, format!("consider giving this closure parameter a type")));
} else if let Some(pattern) = local_visitor.found_local_pattern {
- if let Some(simple_name) = pattern.simple_name() {
+ // don't put internal desugared-loop identifier in user-facing
+ // message (Issue #51116)
+ let simple_name = pattern.simple_name().filter(|n| n.as_str() != "__next");
+ if let Some(simple_name) = simple_name {
labels.push((pattern.span, format!("consider giving `{}` a type", simple_name)));
} else {
labels.push((pattern.span, format!("consider giving the pattern a type")));
рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓реВрдк рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдмрд▓ рдирд╣реАрдВ рд╣реИ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реВрдк рд╡реИрд░рд┐рдПрдмрд▓ рдЯрд╛рдЗрдк-рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рд╣реИред
__next
desugaring рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ:
рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓реВрдк рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдмрд▓ рдирд╣реАрдВ рд╣реИ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реВрдк рд╡реИрд░рд┐рдПрдмрд▓ рдЯрд╛рдЗрдк-рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рд╣реИред
рд╕рд╣рдордд рд╣реВрдВ, рд╣рдореЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
#52418 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдбред