μ΄ μ½λ: ( νλ μ΄κ·ΈλΌμ΄λ λ§ν¬ )
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
λ μ€ν μ κ±°μμ λμ΅λλ€.
κ·Έλ¬λ λ κ·Όλ³Έμ μΌλ‘ μ΄κ²μ 루νμ μ€μ νκΈ°μ μ’μ λ μ΄λΈμ΄ μλλλ€. 루ν λ³μμ μ ν μ£Όμμ μΆκ°νλ κ΅¬λ¬Έμ΄ μμ΅λλ€.
λμν©λλ€. μ΄ κ²½μ°λ₯Ό νμΈν΄μΌ ν©λλ€.
#52418μμ μμ λμμ΅λλ€.