(Now that variances are not part of signature.)
fn method(&self, x: u32) { }
}
- #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
struct WillChanges {
+ #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
x: WillChange,
+ #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
y: WillChange
}
- #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+ // The fields change, not the type itself.
+ #[rustc_then_this_would_need(ItemSignature)] //~ ERROR no path
fn indirect(x: WillChanges) { }
}
#[rustc_if_this_changed]
type TypeAlias = u32;
-#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+// The type alias directly affects the type of the field,
+// not the enclosing struct:
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR no path
struct Struct {
+ #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
x: TypeAlias,
y: u32
}
-#[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+#[rustc_then_this_would_need(ItemSignature)] //~ ERROR no path
enum Enum {
- Variant1(TypeAlias),
+ Variant1 {
+ #[rustc_then_this_would_need(ItemSignature)] //~ ERROR OK
+ t: TypeAlias
+ },
Variant2(i32)
}