diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-04-06 16:28:42 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-04-06 16:28:42 +0100 |
commit | c859a6480af7baece2eec38c19f71cb714db9e3b (patch) | |
tree | 57e2591705e62e646f1dea42c65bda04042e66fb /crates/ra_hir_ty/src/traits | |
parent | 109bb1a7935e31d4ee3c036775a89ad0ac0e012b (diff) | |
parent | 236ac630f6ffc403257d4c77e6187819432956cf (diff) |
Merge #3868
3868: Fix Chalk panic r=flodiebold a=flodiebold
Fixes #3865. Basically I forgot to shift 'back' when we got `dyn Trait`s back from Chalk, so after going through Chalk a few times, the panic happened.
And yes, I did run `analysis-stats` now ;)
cc @edwin0cheng
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty/src/traits')
-rw-r--r-- | crates/ra_hir_ty/src/traits/chalk.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/ra_hir_ty/src/traits/chalk.rs b/crates/ra_hir_ty/src/traits/chalk.rs index 53ce362ea..1bc0f0713 100644 --- a/crates/ra_hir_ty/src/traits/chalk.rs +++ b/crates/ra_hir_ty/src/traits/chalk.rs | |||
@@ -427,7 +427,12 @@ impl ToChalk for GenericPredicate { | |||
427 | db: &dyn HirDatabase, | 427 | db: &dyn HirDatabase, |
428 | where_clause: chalk_ir::QuantifiedWhereClause<Interner>, | 428 | where_clause: chalk_ir::QuantifiedWhereClause<Interner>, |
429 | ) -> GenericPredicate { | 429 | ) -> GenericPredicate { |
430 | match where_clause.value { | 430 | // we don't produce any where clauses with binders and can't currently deal with them |
431 | match where_clause | ||
432 | .value | ||
433 | .shifted_out(&Interner) | ||
434 | .expect("unexpected bound vars in where clause") | ||
435 | { | ||
431 | chalk_ir::WhereClause::Implemented(tr) => { | 436 | chalk_ir::WhereClause::Implemented(tr) => { |
432 | GenericPredicate::Implemented(from_chalk(db, tr)) | 437 | GenericPredicate::Implemented(from_chalk(db, tr)) |
433 | } | 438 | } |