]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #13840 - lowr:fix/hir-callable-sig-escaping-boundvars, r=lowr
authorbors <bors@rust-lang.org>
Sun, 25 Dec 2022 14:53:16 +0000 (14:53 +0000)
committerbors <bors@rust-lang.org>
Sun, 25 Dec 2022 14:53:16 +0000 (14:53 +0000)
fix: handle lifetime variables in `CallableSig` query

Fixes #13838

The problem is similar to #13223: we've been skipping non-empty binders, letting lifetime bound variables escape.

I ended up refactoring `hir_ty::callable_sig_from_fnonce()`. Like #13223, I chose to make use of `InferenceTable` which is capable of handling variables (I feel we should always use it when we solve trait-related stuff instead of manually building obligations/queries).

I couldn't make up a test that crashes without this patch (since the function I'm fixing is only used *outside* `hir-ty`, simple `hir-ty` test wouldn't cause crash), but at least I tested with my local build and made sure it doesn't crash with the code in the original issue. I'd appreciate any help to find a regression test.

1  2 
crates/hir-ty/src/lib.rs

Simple merge