mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	 183458263b
			
		
	
	
		183458263b
		
			
		
	
	
	
	
		
			
			These tests just need blessing, they don't have any interesting behaviour changes. Some of these tests have new errors because `LegacyReceiver` cannot be proven to be implemented now that it is also testing for `MetaSized` - but this is just a consequence of the other errors in the test.
		
			
				
	
	
		
			1410 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			1410 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // This test case tests the incremental compilation hash (ICH) implementation
 | |
| // for trait definitions.
 | |
| 
 | |
| // The general pattern followed here is: Change one thing between rev1 and rev2
 | |
| // and make sure that the hash has changed, then change nothing between rev2 and
 | |
| // rev3 and make sure that the hash has not changed.
 | |
| 
 | |
| // We also test the ICH for trait definitions exported in metadata. Same as
 | |
| // above, we want to make sure that the change between rev1 and rev2 also
 | |
| // results in a change of the ICH for the trait's metadata, and that it stays
 | |
| // the same between rev2 and rev3.
 | |
| 
 | |
| //@ build-pass (FIXME(62277): could be check-pass?)
 | |
| //@ revisions: cfail1 cfail2 cfail3 cfail4 cfail5 cfail6
 | |
| //@ compile-flags: -Z query-dep-graph -O
 | |
| //@ [cfail1]compile-flags: -Zincremental-ignore-spans
 | |
| //@ [cfail2]compile-flags: -Zincremental-ignore-spans
 | |
| //@ [cfail3]compile-flags: -Zincremental-ignore-spans
 | |
| 
 | |
| #![allow(warnings)]
 | |
| #![feature(rustc_attrs)]
 | |
| #![crate_type="rlib"]
 | |
| #![feature(associated_type_defaults)]
 | |
| 
 | |
| 
 | |
| // Change trait visibility
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitVisibility { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5", except="opt_hir_owner_nodes,predicates_of")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| pub trait TraitVisibility { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change trait unsafety
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitUnsafety { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| unsafe trait TraitUnsafety { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddMethod {
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| pub trait TraitAddMethod {
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change name of method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeMethodName {
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeMethodName {
 | |
|     fn methodChanged();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add return type to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddReturnType {
 | |
|     //---------------------------------------------------------------
 | |
|     //--------------------------
 | |
|     //---------------------------------------------------------------
 | |
|     //--------------------------
 | |
|     fn method()       ;
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddReturnType {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method() -> u32;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change return type of method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeReturnType {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method() -> u32;
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeReturnType {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method() -> u64;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add parameter to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddParameterToMethod {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(      );
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddParameterToMethod {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(a: u32);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change name of method parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeMethodParameterName {
 | |
|     //------------------------------------------------------
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     fn method(a: u32);
 | |
| 
 | |
|     //----------------------------------------------------------------------
 | |
|     //--------------------------
 | |
|     //----------------------------------------------------------------------
 | |
|     //--------------------------
 | |
|     fn with_default(x: i32) {}
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeMethodParameterName {
 | |
|     // FIXME(#38501) This should preferably always be clean.
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(b: u32);
 | |
| 
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,optimized_mir", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,optimized_mir", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn with_default(y: i32) {}
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change type of method parameter (i32 => i64)
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeMethodParameterType {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(a: i32);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeMethodParameterType {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(a: i64);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change type of method parameter (&i32 => &mut i32)
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeMethodParameterTypeRef {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(a: &    i32);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeMethodParameterTypeRef {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(a: &mut i32);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change order of method parameters
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeMethodParametersOrder {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(a: i32, b: i64);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeMethodParametersOrder {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(b: i64, a: i32);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add default implementation to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddMethodAutoImplementation {
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method()  ;
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddMethodAutoImplementation {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method() {}
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change order of methods
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeOrderOfMethods {
 | |
|     fn method0();
 | |
|     fn method1();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeOrderOfMethods {
 | |
|     fn method1();
 | |
|     fn method0();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change mode of self parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeModeSelfRefToMut {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(&    self);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeModeSelfRefToMut {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(&mut self);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeModeSelfOwnToMut: Sized {
 | |
|     // ----------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ----------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method(    self) {}
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeModeSelfOwnToMut: Sized {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,typeck,optimized_mir", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,typeck,optimized_mir", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(mut self) {}
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeModeSelfOwnToRef {
 | |
|     // --------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method( self);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeModeSelfOwnToRef {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig,generics_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig,generics_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method(&self);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add unsafe modifier to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddUnsafeModifier {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn        method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddUnsafeModifier {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     unsafe fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add extern modifier to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddExternModifier {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn            method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddExternModifier {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     extern "C" fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change extern "C" to extern "stdcall"
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeExternCToExternSystem {
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     extern "C"       fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeExternCToRustIntrinsic {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     extern "system" fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add type parameter to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTypeParameterToMethod {
 | |
|     // --------------------------------------------------------------------------
 | |
|     // ---------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------------------
 | |
|     // ---------------
 | |
|     // -------------------------
 | |
|     fn method   ();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTypeParameterToMethod {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of,type_of",
 | |
|         cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of,type_of",
 | |
|         cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<T>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime parameter to method
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeParameterToMethod {
 | |
|     // --------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // --------------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method    ();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeParameterToMethod {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig,generics_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,fn_sig,generics_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<'a>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // dummy trait for bound
 | |
| trait ReferencedTrait0 { }
 | |
| trait ReferencedTrait1 { }
 | |
| 
 | |
| // Add trait bound to method type parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitBoundToMethodTypeParameter {
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method<T                  >();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitBoundToMethodTypeParameter {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<T: ReferencedTrait0>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add builtin bound to method type parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltinBoundToMethodTypeParameter {
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method<T       >();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltinBoundToMethodTypeParameter {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<T: Sized>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to method lifetime parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToMethodLifetimeParameter {
 | |
|     // -----------
 | |
|     // -----------------------------------------------------------------------
 | |
|     // --------------
 | |
|     //
 | |
|     // -------------------------
 | |
|     // -----------
 | |
|     // -----------------------------------------------------------------------
 | |
|     // --------------
 | |
|     //
 | |
|     // -------------------------
 | |
|     fn method<'a, 'b    >(a: &'a u32, b: &'b u32);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToMethodLifetimeParameter {
 | |
|     #[rustc_clean(
 | |
|         except="opt_hir_owner_nodes,generics_of,predicates_of,fn_sig,type_of",
 | |
|         cfg="cfail2",
 | |
|     )]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(
 | |
|         except="opt_hir_owner_nodes,generics_of,predicates_of,fn_sig,type_of",
 | |
|         cfg="cfail5",
 | |
|     )]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<'a, 'b: 'a>(a: &'a u32, b: &'b u32);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second trait bound to method type parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondTraitBoundToMethodTypeParameter {
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method<T: ReferencedTrait0                   >();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondTraitBoundToMethodTypeParameter {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<T: ReferencedTrait0 + ReferencedTrait1>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second builtin bound to method type parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondBuiltinBoundToMethodTypeParameter {
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ---------------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     fn method<T: Sized       >();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondBuiltinBoundToMethodTypeParameter {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<T: Sized + Sync>();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime bound to method lifetime parameter
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeBoundToMethodLifetimeParameter {
 | |
|     // -----------
 | |
|     // -----------------------------------------------------------------------
 | |
|     // --------------
 | |
|     //
 | |
|     // -------------------------
 | |
|     // -----------
 | |
|     // -----------------------------------------------------------------------
 | |
|     // --------------
 | |
|     //
 | |
|     // -------------------------
 | |
|     fn method<'a, 'b, 'c: 'a     >(a: &'a u32, b: &'b u32, c: &'c u32);
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeBoundToMethodLifetimeParameter {
 | |
|     #[rustc_clean(
 | |
|         except="opt_hir_owner_nodes,generics_of,predicates_of,fn_sig,type_of",
 | |
|         cfg="cfail2",
 | |
|     )]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(
 | |
|         except="opt_hir_owner_nodes,generics_of,predicates_of,fn_sig,type_of",
 | |
|         cfg="cfail5",
 | |
|     )]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method<'a, 'b, 'c: 'a + 'b>(a: &'a u32, b: &'b u32, c: &'c u32);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add associated type
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddAssociatedType {
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     // -------------
 | |
| 
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddAssociatedType {
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     type Associated;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add trait bound to associated type
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitBoundToAssociatedType {
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     type Associated                  ;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| // Apparently the type bound contributes to the predicates of the trait, but
 | |
| // does not change the associated item itself.
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitBoundToAssociatedType {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     type Associated: ReferencedTrait0;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to associated type
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToAssociatedType<'a> {
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // -------------------------------------------------------
 | |
|     // -------------------------
 | |
|     type Associated    ;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToAssociatedType<'a> {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     type Associated: 'a;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add default to associated type
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddDefaultToAssociatedType {
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     type Associated                 ;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddDefaultToAssociatedType {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     type Associated = ReferenceType0;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add associated constant
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddAssociatedConstant {
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,associated_item_def_ids,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddAssociatedConstant {
 | |
|     const Value: u32;
 | |
| 
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add initializer to associated constant
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddInitializerToAssociatedConstant {
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------------------------------------
 | |
|     //--------------------------
 | |
|     const Value: u32    ;
 | |
| 
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     //--------------------------
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddInitializerToAssociatedConstant {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     const Value: u32 = 1;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change type of associated constant
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitChangeTypeOfAssociatedConstant {
 | |
|     // ---------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     // ---------------------------------------------------------------
 | |
|     // -------------------------
 | |
|     const Value: u32;
 | |
| 
 | |
|     // -------------------------
 | |
|     // -------------------------
 | |
|     // -------------------------
 | |
|     // -------------------------
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitChangeTypeOfAssociatedConstant {
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,type_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,type_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     const Value: f64;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     fn method();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add super trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSuperTrait { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSuperTrait : ReferencedTrait0 { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add builtin bound (Send or Copy)
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltiBound { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltiBound : Send { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add 'static lifetime bound to trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddStaticLifetimeBound { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddStaticLifetimeBound : 'static { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add super trait as second bound
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitAsSecondBound : ReferencedTrait0 { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitAsSecondBound : ReferencedTrait0 + ReferencedTrait1 { }
 | |
| 
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitAsSecondBoundFromBuiltin : Send { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitAsSecondBoundFromBuiltin : Send + ReferencedTrait0 { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add builtin bound as second bound
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltinBoundAsSecondBound : ReferencedTrait0 { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltinBoundAsSecondBound : ReferencedTrait0 + Send { }
 | |
| 
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltinBoundAsSecondBoundFromBuiltin : Send { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltinBoundAsSecondBoundFromBuiltin: Send + Copy { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add 'static bounds as second bound
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddStaticBoundAsSecondBound : ReferencedTrait0 { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddStaticBoundAsSecondBound : ReferencedTrait0 + 'static { }
 | |
| 
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddStaticBoundAsSecondBoundFromBuiltin : Send { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddStaticBoundAsSecondBoundFromBuiltin : Send + 'static { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add type parameter to trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTypeParameterToTrait { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTypeParameterToTrait<T> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime parameter to trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeParameterToTrait { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeParameterToTrait<'a> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add trait bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitBoundToTypeParameterOfTrait<T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitBoundToTypeParameterOfTrait<T: ReferencedTrait0> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToTypeParameterOfTrait<'a, T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToTypeParameterOfTrait<'a, T: 'a> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to lifetime parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToLifetimeParameterOfTrait<'a, 'b> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToLifetimeParameterOfTrait<'a: 'b, 'b> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add builtin bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltinBoundToTypeParameterOfTrait<T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltinBoundToTypeParameterOfTrait<T: Send> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second type parameter to trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondTypeParameterToTrait<T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondTypeParameterToTrait<T, S> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime parameter to trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeParameterToTrait<'a> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,generics_of,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeParameterToTrait<'a, 'b> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second trait bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondTraitBoundToTypeParameterOfTrait<T: ReferencedTrait0> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondTraitBoundToTypeParameterOfTrait<T: ReferencedTrait0 + ReferencedTrait1> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeBoundToTypeParameterOfTrait<'a, 'b, T: 'a> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeBoundToTypeParameterOfTrait<'a, 'b, T: 'a + 'b> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime bound to lifetime parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeBoundToLifetimeParameterOfTrait<'a: 'b, 'b, 'c> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeBoundToLifetimeParameterOfTrait<'a: 'b + 'c, 'b, 'c> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second builtin bound to type parameter of trait
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondBuiltinBoundToTypeParameterOfTrait<T: Send> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondBuiltinBoundToTypeParameterOfTrait<T: Send + Sync> { }
 | |
| 
 | |
| 
 | |
| 
 | |
| struct ReferenceType0 {}
 | |
| struct ReferenceType1 {}
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add trait bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddTraitBoundToTypeParameterOfTraitWhere<T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddTraitBoundToTypeParameterOfTraitWhere<T> where T: ReferencedTrait0 { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToTypeParameterOfTraitWhere<'a, T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToTypeParameterOfTraitWhere<'a, T> where T: 'a { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add lifetime bound to lifetime parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddLifetimeBoundToLifetimeParameterOfTraitWhere<'a, 'b> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddLifetimeBoundToLifetimeParameterOfTraitWhere<'a, 'b> where 'a: 'b { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add builtin bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddBuiltinBoundToTypeParameterOfTraitWhere<T> { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddBuiltinBoundToTypeParameterOfTraitWhere<T> where T: Send { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second trait bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondTraitBoundToTypeParameterOfTraitWhere<T> where T: ReferencedTrait0 { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondTraitBoundToTypeParameterOfTraitWhere<T>
 | |
|     where T: ReferencedTrait0 + ReferencedTrait1 { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeBoundToTypeParameterOfTraitWhere<'a, 'b, T> where T: 'a { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeBoundToTypeParameterOfTraitWhere<'a, 'b, T> where T: 'a + 'b { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second lifetime bound to lifetime parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondLifetimeBoundToLifetimeParameterOfTraitWhere<'a, 'b, 'c> where 'a: 'b { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondLifetimeBoundToLifetimeParameterOfTraitWhere<'a, 'b, 'c> where 'a: 'b + 'c { }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Add second builtin bound to type parameter of trait in where clause
 | |
| #[cfg(any(cfail1,cfail4))]
 | |
| trait TraitAddSecondBuiltinBoundToTypeParameterOfTraitWhere<T> where T: Send { }
 | |
| 
 | |
| #[cfg(not(any(cfail1,cfail4)))]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
| #[rustc_clean(cfg="cfail3")]
 | |
| #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
| #[rustc_clean(cfg="cfail6")]
 | |
| trait TraitAddSecondBuiltinBoundToTypeParameterOfTraitWhere<T> where T: Send + Sync { }
 | |
| 
 | |
| 
 | |
| // Change return type of method indirectly by modifying a use statement
 | |
| mod change_return_type_of_method_indirectly_use {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferenceType0 as ReturnType;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferenceType1 as ReturnType;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeReturnType {
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|         #[rustc_clean(cfg="cfail3")]
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|         #[rustc_clean(cfg="cfail6")]
 | |
|         fn method() -> ReturnType;
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change type of method parameter indirectly by modifying a use statement
 | |
| mod change_method_parameter_type_indirectly_by_use {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferenceType0 as ArgType;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferenceType1 as ArgType;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeArgType {
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail2")]
 | |
|         #[rustc_clean(cfg="cfail3")]
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,fn_sig", cfg="cfail5")]
 | |
|         #[rustc_clean(cfg="cfail6")]
 | |
|         fn method(a: ArgType);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change trait bound of method type parameter indirectly by modifying a use statement
 | |
| mod change_method_parameter_type_bound_indirectly_by_use {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferencedTrait0 as Bound;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferencedTrait1 as Bound;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeBoundOfMethodTypeParameter {
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|         #[rustc_clean(cfg="cfail3")]
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|         #[rustc_clean(cfg="cfail6")]
 | |
|         fn method<T: Bound>(a: T);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change trait bound of method type parameter in where clause indirectly
 | |
| // by modifying a use statement
 | |
| mod change_method_parameter_type_bound_indirectly_by_use_where {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferencedTrait0 as Bound;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferencedTrait1 as Bound;
 | |
| 
 | |
|     #[rustc_clean(cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeBoundOfMethodTypeParameterWhere {
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|         #[rustc_clean(cfg="cfail3")]
 | |
|         #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|         #[rustc_clean(cfg="cfail6")]
 | |
|         fn method<T>(a: T) where T: Bound;
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change trait bound of trait type parameter indirectly by modifying a use statement
 | |
| mod change_method_type_parameter_bound_indirectly {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferencedTrait0 as Bound;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferencedTrait1 as Bound;
 | |
| 
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeTraitBound<T: Bound> {
 | |
|         fn method(a: T);
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // Change trait bound of trait type parameter in where clause indirectly
 | |
| // by modifying a use statement
 | |
| mod change_method_type_parameter_bound_indirectly_where {
 | |
|     #[cfg(any(cfail1,cfail4))]
 | |
|     use super::ReferencedTrait0 as Bound;
 | |
|     #[cfg(not(any(cfail1,cfail4)))]
 | |
|     use super::ReferencedTrait1 as Bound;
 | |
| 
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail2")]
 | |
|     #[rustc_clean(cfg="cfail3")]
 | |
|     #[rustc_clean(except="opt_hir_owner_nodes,predicates_of", cfg="cfail5")]
 | |
|     #[rustc_clean(cfg="cfail6")]
 | |
|     trait TraitChangeTraitBoundWhere<T> where T: Bound {
 | |
|         fn method(a: T);
 | |
|     }
 | |
| }
 |