diff options
| author | bors <bors@rust-lang.org> | 2021-08-24 20:49:55 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-08-24 20:49:55 +0000 |
| commit | b03ccace573bb91e27625c190a0f7807045a1012 (patch) | |
| tree | adc092773653dca60719e5f20a09d258c3d7a8db /src | |
| parent | 0599f3403366d9c57f0625e6de3af214b5042a90 (diff) | |
| parent | ec9531bcb09e52c5fbbabbedc8927b99f7e6fd9c (diff) | |
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)`
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/closures/2229_closure_analysis/issue_88118.rs | 15 | ||||
| -rw-r--r-- | src/test/ui/closures/issue-87814-1.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/closures/issue-87814-2.rs | 11 |
3 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/closures/2229_closure_analysis/issue_88118.rs b/src/test/ui/closures/2229_closure_analysis/issue_88118.rs new file mode 100644 index 00000000000..453b7e04a36 --- /dev/null +++ b/src/test/ui/closures/2229_closure_analysis/issue_88118.rs @@ -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() {} diff --git a/src/test/ui/closures/issue-87814-1.rs b/src/test/ui/closures/issue-87814-1.rs new file mode 100644 index 00000000000..5cf01ddf5d7 --- /dev/null +++ b/src/test/ui/closures/issue-87814-1.rs @@ -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(_) => (), + }); +} diff --git a/src/test/ui/closures/issue-87814-2.rs b/src/test/ui/closures/issue-87814-2.rs new file mode 100644 index 00000000000..7a5facdac58 --- /dev/null +++ b/src/test/ui/closures/issue-87814-2.rs @@ -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(_) => (), + }; +} |
