Skip to content

Commit b2cb25e

Browse files
Merge pull request rust-lang#22804 from ChayimFriedman2/array-repeat-closure
fix: Only write anon const ty in parent's inference result if it doesn't have its own inference
2 parents 591e2fe + edd45ef commit b2cb25e

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

crates/hir-ty/src/infer.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2011,9 +2011,10 @@ impl<'body, 'db> InferenceContext<'body, 'db> {
20112011
&& let GeneralConstId::AnonConstId(konst) = konst.def.0
20122012
{
20132013
self.defined_anon_consts.borrow_mut().push(konst);
2014+
} else {
2015+
self.write_expr_ty(expr, expected_ty);
20142016
}
20152017

2016-
self.write_expr_ty(expr, expected_ty);
20172018
// FIXME: Report an error if needed.
20182019
konst.unwrap_or_else(|_| self.table.next_const_var(Span::Dummy))
20192020
}

crates/hir-ty/src/tests/regression.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2983,3 +2983,13 @@ fn migrations_preserve_index() {
29832983
"#,
29842984
);
29852985
}
2986+
2987+
#[test]
2988+
fn array_repeat_closure() {
2989+
check(
2990+
r#"
2991+
fn f() {[_; || ()]}
2992+
// ^^^^^^^^^^ expected (), got [{unknown}; _]
2993+
"#,
2994+
);
2995+
}

0 commit comments

Comments
 (0)