// compile-flags: -Z unstable-options

#![feature(rustc_private)]
#![deny(rustc::usage_of_qualified_ty)]
#![allow(unused)]

extern crate rustc_middle;

use rustc_middle::ty::{self, Ty, TyCtxt};

macro_rules! qualified_macro {
    ($a:ident) => {
        fn ty_in_macro(
            ty_q: ty::Ty<'_>,
            ty: Ty<'_>,
            ty_ctxt_q: ty::TyCtxt<'_>,
            ty_ctxt: TyCtxt<'_>,
        ) {
            println!("{}", stringify!($a));
        }
    };
}

fn ty_qualified(
    ty_q: ty::Ty<'_>, //~ ERROR usage of qualified `ty::Ty<'_>`
    ty: Ty<'_>,
    ty_ctxt_q: ty::TyCtxt<'_>, //~ ERROR usage of qualified `ty::TyCtxt<'_>`
    ty_ctxt: TyCtxt<'_>,
) {
}


fn main() {
    qualified_macro!(a);
}
