//~ execute:no struct Foo { s: Bar } struct Bar { } def foo(foo: Foo) { let a = foo.s //~ HOVER: shared Bar let p = foo //~ HOVER: Foo let q = p.s bar(q) } def bar(s: Bar) { }