Auto merge of #88266 - nikomatsakis:issue-87879, r=jackh726
resolve type variables after checking casts r? `@jackh726` Fixes #87814 Fixes #88118 Supercedes #87879 (cc `@ldm0)`
This commit is contained in:
commit
b03ccace57
11 changed files with 69 additions and 8 deletions
15
src/test/ui/closures/2229_closure_analysis/issue_88118.rs
Normal file
15
src/test/ui/closures/2229_closure_analysis/issue_88118.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Regression test for #88118. Used to ICE.
|
||||
//
|
||||
// check-pass
|
||||
|
||||
#![allow(incomplete_features)]
|
||||
#![feature(capture_disjoint_fields)]
|
||||
|
||||
fn foo<MsU>(handler: impl FnOnce() -> MsU + Clone + 'static) {
|
||||
Box::new(move |value| {
|
||||
(|_| handler.clone()())(value);
|
||||
None
|
||||
}) as Box<dyn Fn(i32) -> Option<i32>>;
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
8
src/test/ui/closures/issue-87814-1.rs
Normal file
8
src/test/ui/closures/issue-87814-1.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// check-pass
|
||||
fn main() {
|
||||
let mut schema_all = vec![];
|
||||
(0..42).for_each(|_x| match Err(()) as Result<(), _> {
|
||||
Ok(()) => schema_all.push(()),
|
||||
Err(_) => (),
|
||||
});
|
||||
}
|
||||
11
src/test/ui/closures/issue-87814-2.rs
Normal file
11
src/test/ui/closures/issue-87814-2.rs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
// check-pass
|
||||
#![feature(try_reserve)]
|
||||
|
||||
fn main() {
|
||||
let mut schema_all: (Vec<String>, Vec<String>) = (vec![], vec![]);
|
||||
|
||||
let _c = || match schema_all.0.try_reserve(1) as Result<(), _> {
|
||||
Ok(()) => (),
|
||||
Err(_) => (),
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue