Fix Chalk panic

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.
This commit is contained in:
Florian Diebold 2020-04-06 17:24:08 +02:00
parent 109bb1a793
commit 236ac630f6
3 changed files with 33 additions and 2 deletions

View file

@ -2021,3 +2021,28 @@ fn main() {
"###
);
}
#[test]
fn dyn_trait_through_chalk() {
let t = type_at(
r#"
//- /main.rs
struct Box<T> {}
#[lang = "deref"]
trait Deref {
type Target;
}
impl<T> Deref for Box<T> {
type Target = T;
}
trait Trait {
fn foo(&self);
}
fn test(x: Box<dyn Trait>) {
x.foo()<|>;
}
"#,
);
assert_eq!(t, "()");
}