// run-pass // compile-flags: -Z trait-solver=chalk trait Foo { } impl Foo for i32 { } struct S { x: T, } fn only_foo(_x: &T) { } impl S { // Test that we have the correct environment inside an inherent method. fn dummy_foo(&self) { only_foo(&self.x) } } trait Bar { } impl Bar for u32 { } fn only_bar() { } impl S { // Test that the environment of `dummy_bar` adds up with the environment // of the inherent impl. fn dummy_bar(&self) { only_foo(&self.x); only_bar::(); } } fn main() { let s = S { x: 5, }; s.dummy_bar::(); s.dummy_foo(); }