| use a::TyCtxt; |
| |
| mod a { |
| use std::ops::Deref; |
| pub struct TyCtxt<'tcx> { |
| gcx: &'tcx GlobalCtxt<'tcx>, |
| } |
| |
| impl<'tcx> Deref for TyCtxt<'tcx> { |
| type Target = &'tcx GlobalCtxt<'tcx>; |
| |
| fn deref(&self) -> &Self::Target { |
| &self.gcx |
| } |
| } |
| |
| pub struct GlobalCtxt<'tcx> { |
| pub sess: &'tcx Session, |
| _t: &'tcx (), |
| } |
| |
| pub struct Session { |
| pub opts: (), |
| } |
| } |
| |
| mod b { |
| fn foo<'tcx>(tcx: crate::TyCtxt<'tcx>) { |
| tcx.opts; |
| //~^ ERROR no field `opts` on type `TyCtxt<'tcx>` |
| //~| HELP one of the expressions' fields has a field of the same name |
| } |
| } |
| |
| fn main() {} |