about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/expr.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-11-04 00:51:37 +0000
committerbors <bors@rust-lang.org>2022-11-04 00:51:37 +0000
commit6718ea1cff98da785c10079cac1c1ecc30c12d52 (patch)
treed179bc4bac78c8f4694be899cf28128220bb87fd /compiler/rustc_parse/src/parser/expr.rs
parent215e3cd218b83b8a3152d84d92f17109253c25e1 (diff)
parentbc3516d474a6ab5e5116a2ec32f5d236d479cab3 (diff)
downloadrust-6718ea1cff98da785c10079cac1c1ecc30c12d52.tar.gz
rust-6718ea1cff98da785c10079cac1c1ecc30c12d52.zip
Auto merge of #101834 - compiler-errors:super-deduce-closure-sig, r=lcnr
Elaborate supertrait obligations when deducing closure signatures

We elaborate the supertrait obligations of any registered predicates for a closure to see if we can infer a closure signature.

This is not as general of a fix as it *could* be, since we just elaborate supertrait bounds instead of doing a theoretical walk of _all_ registered predicates that might cause us to deduce `Fn` trait information for a closure infer var. I don't even know how to come up with an example that fails here but would work with a more general system.

Fixes #23012
Also fixes the existing compile failure in #57611

r? `@ghost` for now until I do a perf run
cc `@nikomatsakis` since you commented on https://github.com/rust-lang/rust/issues/23012#issuecomment-1152397290
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
0 files changed, 0 insertions, 0 deletions