mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
//@ revisions: rpass1 cfail2
 | 
						|
//@ compile-flags: -Z query-dep-graph
 | 
						|
 | 
						|
#![allow(warnings)]
 | 
						|
#![feature(rustc_attrs)]
 | 
						|
 | 
						|
// Sanity check for the dirty-clean system. Give the opposite
 | 
						|
// annotations that we expect to see, so that we check that errors are
 | 
						|
// reported.
 | 
						|
 | 
						|
fn main() { }
 | 
						|
 | 
						|
mod x {
 | 
						|
    #[cfg(rpass1)]
 | 
						|
    pub fn x() -> usize {
 | 
						|
        22
 | 
						|
    }
 | 
						|
 | 
						|
    #[cfg(cfail2)]
 | 
						|
    pub fn x() -> u32 {
 | 
						|
        22
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
mod y {
 | 
						|
    use x;
 | 
						|
 | 
						|
    #[rustc_clean(
 | 
						|
        except="opt_hir_owner_nodes,generics_of,predicates_of,type_of,fn_sig",
 | 
						|
        cfg="cfail2",
 | 
						|
    )]
 | 
						|
    pub fn y() {
 | 
						|
        //[cfail2]~^ ERROR `opt_hir_owner_nodes(y)` should be dirty but is not
 | 
						|
        //[cfail2]~| ERROR `generics_of(y)` should be dirty but is not
 | 
						|
        //[cfail2]~| ERROR `predicates_of(y)` should be dirty but is not
 | 
						|
        //[cfail2]~| ERROR `type_of(y)` should be dirty but is not
 | 
						|
        //[cfail2]~| ERROR `fn_sig(y)` should be dirty but is not
 | 
						|
        //[cfail2]~| ERROR `typeck(y)` should be clean but is not
 | 
						|
        x::x();
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
mod z {
 | 
						|
    #[rustc_clean(except="typeck", cfg="cfail2")]
 | 
						|
    pub fn z() {
 | 
						|
        //[cfail2]~^ ERROR `typeck(z)` should be dirty but is not
 | 
						|
    }
 | 
						|
}
 |