From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- src/test/ui/deriving/auxiliary/derive-no-std.rs | 29 - src/test/ui/deriving/derive-no-std.rs | 12 - .../ui/deriving/derive-partialord-correctness.rs | 9 - src/test/ui/deriving/deriving-all-codegen.rs | 106 -- src/test/ui/deriving/deriving-all-codegen.stdout | 1073 -------------------- src/test/ui/deriving/deriving-associated-types.rs | 199 ---- src/test/ui/deriving/deriving-bounds.rs | 5 - src/test/ui/deriving/deriving-clone-array.rs | 10 - src/test/ui/deriving/deriving-clone-enum.rs | 14 - .../ui/deriving/deriving-clone-generic-enum.rs | 14 - .../ui/deriving/deriving-clone-generic-struct.rs | 15 - .../deriving-clone-generic-tuple-struct.rs | 10 - src/test/ui/deriving/deriving-clone-struct.rs | 28 - .../ui/deriving/deriving-clone-tuple-struct.rs | 9 - src/test/ui/deriving/deriving-cmp-generic-enum.rs | 44 - .../deriving/deriving-cmp-generic-struct-enum.rs | 48 - .../ui/deriving/deriving-cmp-generic-struct.rs | 40 - .../deriving/deriving-cmp-generic-tuple-struct.rs | 38 - src/test/ui/deriving/deriving-cmp-shortcircuit.rs | 37 - src/test/ui/deriving/deriving-copyclone.rs | 38 - src/test/ui/deriving/deriving-default-box.rs | 13 - src/test/ui/deriving/deriving-default-enum.rs | 27 - .../ui/deriving/deriving-enum-single-variant.rs | 12 - .../ui/deriving/deriving-eq-ord-boxed-slice.rs | 15 - src/test/ui/deriving/deriving-hash.rs | 96 -- src/test/ui/deriving/deriving-in-fn.rs | 13 - src/test/ui/deriving/deriving-in-macro.rs | 16 - src/test/ui/deriving/deriving-meta-multiple.rs | 26 - src/test/ui/deriving/deriving-meta.rs | 23 - .../deriving-self-lifetime-totalord-totaleq.rs | 16 - src/test/ui/deriving/deriving-show-2.rs | 54 - src/test/ui/deriving/deriving-show.rs | 35 - .../ui/deriving/deriving-via-extension-c-enum.rs | 17 - .../ui/deriving/deriving-via-extension-enum.rs | 16 - .../deriving/deriving-via-extension-hash-enum.rs | 17 - .../deriving/deriving-via-extension-hash-struct.rs | 12 - .../deriving-via-extension-struct-empty.rs | 8 - ...iving-via-extension-struct-like-enum-variant.rs | 13 - .../deriving-via-extension-struct-tuple.rs | 17 - .../ui/deriving/deriving-via-extension-struct.rs | 16 - .../deriving/deriving-via-extension-type-params.rs | 16 - src/test/ui/deriving/deriving-with-helper.rs | 36 - src/test/ui/deriving/deriving-with-repr-packed.rs | 36 - src/test/ui/deriving/issue-103157.rs | 12 - src/test/ui/deriving/issue-103157.stderr | 30 - src/test/ui/deriving/issue-105101.rs | 9 - src/test/ui/deriving/issue-105101.stderr | 29 - src/test/ui/deriving/issue-19358.rs | 23 - src/test/ui/deriving/issue-3935.rs | 13 - src/test/ui/deriving/issue-58319.rs | 622 ------------ src/test/ui/deriving/issue-6341.rs | 11 - src/test/ui/deriving/issue-89188-gat-hrtb.rs | 37 - 52 files changed, 3114 deletions(-) delete mode 100644 src/test/ui/deriving/auxiliary/derive-no-std.rs delete mode 100644 src/test/ui/deriving/derive-no-std.rs delete mode 100644 src/test/ui/deriving/derive-partialord-correctness.rs delete mode 100644 src/test/ui/deriving/deriving-all-codegen.rs delete mode 100644 src/test/ui/deriving/deriving-all-codegen.stdout delete mode 100644 src/test/ui/deriving/deriving-associated-types.rs delete mode 100644 src/test/ui/deriving/deriving-bounds.rs delete mode 100644 src/test/ui/deriving/deriving-clone-array.rs delete mode 100644 src/test/ui/deriving/deriving-clone-enum.rs delete mode 100644 src/test/ui/deriving/deriving-clone-generic-enum.rs delete mode 100644 src/test/ui/deriving/deriving-clone-generic-struct.rs delete mode 100644 src/test/ui/deriving/deriving-clone-generic-tuple-struct.rs delete mode 100644 src/test/ui/deriving/deriving-clone-struct.rs delete mode 100644 src/test/ui/deriving/deriving-clone-tuple-struct.rs delete mode 100644 src/test/ui/deriving/deriving-cmp-generic-enum.rs delete mode 100644 src/test/ui/deriving/deriving-cmp-generic-struct-enum.rs delete mode 100644 src/test/ui/deriving/deriving-cmp-generic-struct.rs delete mode 100644 src/test/ui/deriving/deriving-cmp-generic-tuple-struct.rs delete mode 100644 src/test/ui/deriving/deriving-cmp-shortcircuit.rs delete mode 100644 src/test/ui/deriving/deriving-copyclone.rs delete mode 100644 src/test/ui/deriving/deriving-default-box.rs delete mode 100644 src/test/ui/deriving/deriving-default-enum.rs delete mode 100644 src/test/ui/deriving/deriving-enum-single-variant.rs delete mode 100644 src/test/ui/deriving/deriving-eq-ord-boxed-slice.rs delete mode 100644 src/test/ui/deriving/deriving-hash.rs delete mode 100644 src/test/ui/deriving/deriving-in-fn.rs delete mode 100644 src/test/ui/deriving/deriving-in-macro.rs delete mode 100644 src/test/ui/deriving/deriving-meta-multiple.rs delete mode 100644 src/test/ui/deriving/deriving-meta.rs delete mode 100644 src/test/ui/deriving/deriving-self-lifetime-totalord-totaleq.rs delete mode 100644 src/test/ui/deriving/deriving-show-2.rs delete mode 100644 src/test/ui/deriving/deriving-show.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-c-enum.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-enum.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-hash-enum.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-hash-struct.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-struct-empty.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-struct-like-enum-variant.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-struct-tuple.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-struct.rs delete mode 100644 src/test/ui/deriving/deriving-via-extension-type-params.rs delete mode 100644 src/test/ui/deriving/deriving-with-helper.rs delete mode 100644 src/test/ui/deriving/deriving-with-repr-packed.rs delete mode 100644 src/test/ui/deriving/issue-103157.rs delete mode 100644 src/test/ui/deriving/issue-103157.stderr delete mode 100644 src/test/ui/deriving/issue-105101.rs delete mode 100644 src/test/ui/deriving/issue-105101.stderr delete mode 100644 src/test/ui/deriving/issue-19358.rs delete mode 100644 src/test/ui/deriving/issue-3935.rs delete mode 100644 src/test/ui/deriving/issue-58319.rs delete mode 100644 src/test/ui/deriving/issue-6341.rs delete mode 100644 src/test/ui/deriving/issue-89188-gat-hrtb.rs (limited to 'src/test/ui/deriving') diff --git a/src/test/ui/deriving/auxiliary/derive-no-std.rs b/src/test/ui/deriving/auxiliary/derive-no-std.rs deleted file mode 100644 index 3893dc1be..000000000 --- a/src/test/ui/deriving/auxiliary/derive-no-std.rs +++ /dev/null @@ -1,29 +0,0 @@ -// no-prefer-dynamic - -#![crate_type = "rlib"] -#![no_std] - -// Issue #16803 - -#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, - Debug, Default, Copy)] -pub struct Foo { - pub x: u32, -} - -#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, - Debug, Copy)] -pub enum Bar { - Qux, - Quux(u32), -} - -#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, - Debug, Copy)] -pub enum Void {} -#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, - Debug, Copy)] -pub struct Empty; -#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, - Debug, Copy)] -pub struct AlsoEmpty {} diff --git a/src/test/ui/deriving/derive-no-std.rs b/src/test/ui/deriving/derive-no-std.rs deleted file mode 100644 index 74c73b99c..000000000 --- a/src/test/ui/deriving/derive-no-std.rs +++ /dev/null @@ -1,12 +0,0 @@ -// run-pass -// aux-build:derive-no-std.rs - -extern crate derive_no_std; -use derive_no_std::*; - -fn main() { - let f = Foo { x: 0 }; - assert_eq!(f.clone(), Foo::default()); - - assert!(Bar::Qux < Bar::Quux(42)); -} diff --git a/src/test/ui/deriving/derive-partialord-correctness.rs b/src/test/ui/deriving/derive-partialord-correctness.rs deleted file mode 100644 index 36763eda1..000000000 --- a/src/test/ui/deriving/derive-partialord-correctness.rs +++ /dev/null @@ -1,9 +0,0 @@ -// run-pass -// Original issue: #49650 - -#[derive(PartialOrd, PartialEq)] -struct FloatWrapper(f64); - -fn main() { - assert!((0.0 / 0.0 >= 0.0) == (FloatWrapper(0.0 / 0.0) >= FloatWrapper(0.0))) -} diff --git a/src/test/ui/deriving/deriving-all-codegen.rs b/src/test/ui/deriving/deriving-all-codegen.rs deleted file mode 100644 index ba7809413..000000000 --- a/src/test/ui/deriving/deriving-all-codegen.rs +++ /dev/null @@ -1,106 +0,0 @@ -// check-pass -// compile-flags: -Zunpretty=expanded -// edition:2021 -// -// This test checks the code generated for all[*] the builtin derivable traits -// on a variety of structs and enums. It protects against accidental changes to -// the generated code, and makes deliberate changes to the generated code -// easier to review. -// -// [*] It excludes `Copy` in some cases, because that changes the code -// generated for `Clone`. -// -// [*] It excludes `RustcEncodable` and `RustDecodable`, which are obsolete and -// also require the `rustc_serialize` crate. - -#![crate_type = "lib"] -#![allow(dead_code)] -#![allow(deprecated)] - -// Empty struct. -#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -struct Empty; - -// A basic struct. -#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -struct Point { - x: u32, - y: u32, -} - -// A large struct. -#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -struct Big { - b1: u32, b2: u32, b3: u32, b4: u32, b5: u32, b6: u32, b7: u32, b8: u32, -} - -// A struct with an unsized field. Some derives are not usable in this case. -#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] -struct Unsized([u32]); - -// A packed tuple struct that impls `Copy`. -#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -#[repr(packed)] -struct PackedCopy(u32); - -// A packed tuple struct that does not impl `Copy`. Note that the alignment of -// the field must be 1 for this code to be valid. Otherwise it triggers an -// error "`#[derive]` can't be used on a `#[repr(packed)]` struct that does not -// derive Copy (error E0133)" at MIR building time. This is a weird case and -// it's possible that this struct is not supposed to work, but for now it does. -#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -#[repr(packed)] -struct PackedNonCopy(u8); - -// An empty enum. -#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Enum0 {} - -// A single-variant enum. -#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Enum1 { - Single { x: u32 } -} - -// A C-like, fieldless enum with a single variant. -#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Fieldless1 { - #[default] - A, -} - -// A C-like, fieldless enum. -#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Fieldless { - #[default] - A, - B, - C, -} - -// An enum with multiple fieldless and fielded variants. -#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Mixed { - #[default] - P, - Q, - R(u32), - S { d1: Option, d2: Option }, -} - -// An enum with no fieldless variants. Note that `Default` cannot be derived -// for this enum. -#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] -enum Fielded { - X(u32), - Y(bool), - Z(Option), -} - -// A union. Most builtin traits are not derivable for unions. -#[derive(Clone, Copy)] -pub union Union { - pub b: bool, - pub u: u32, - pub i: i32, -} diff --git a/src/test/ui/deriving/deriving-all-codegen.stdout b/src/test/ui/deriving/deriving-all-codegen.stdout deleted file mode 100644 index a63cbd4ca..000000000 --- a/src/test/ui/deriving/deriving-all-codegen.stdout +++ /dev/null @@ -1,1073 +0,0 @@ -#![feature(prelude_import)] -// check-pass -// compile-flags: -Zunpretty=expanded -// edition:2021 -// -// This test checks the code generated for all[*] the builtin derivable traits -// on a variety of structs and enums. It protects against accidental changes to -// the generated code, and makes deliberate changes to the generated code -// easier to review. -// -// [*] It excludes `Copy` in some cases, because that changes the code -// generated for `Clone`. -// -// [*] It excludes `RustcEncodable` and `RustDecodable`, which are obsolete and -// also require the `rustc_serialize` crate. - -#![crate_type = "lib"] -#![allow(dead_code)] -#![allow(deprecated)] -#[prelude_import] -use std::prelude::rust_2021::*; -#[macro_use] -extern crate std; - -// Empty struct. -struct Empty; -#[automatically_derived] -impl ::core::clone::Clone for Empty { - #[inline] - fn clone(&self) -> Empty { *self } -} -#[automatically_derived] -impl ::core::marker::Copy for Empty { } -#[automatically_derived] -impl ::core::fmt::Debug for Empty { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::write_str(f, "Empty") - } -} -#[automatically_derived] -impl ::core::default::Default for Empty { - #[inline] - fn default() -> Empty { Empty {} } -} -#[automatically_derived] -impl ::core::hash::Hash for Empty { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {} -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Empty { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Empty { - #[inline] - fn eq(&self, other: &Empty) -> bool { true } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Empty { } -#[automatically_derived] -impl ::core::cmp::Eq for Empty { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () {} -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Empty { - #[inline] - fn partial_cmp(&self, other: &Empty) - -> ::core::option::Option<::core::cmp::Ordering> { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Empty { - #[inline] - fn cmp(&self, other: &Empty) -> ::core::cmp::Ordering { - ::core::cmp::Ordering::Equal - } -} - -// A basic struct. -struct Point { - x: u32, - y: u32, -} -#[automatically_derived] -impl ::core::clone::Clone for Point { - #[inline] - fn clone(&self) -> Point { - let _: ::core::clone::AssertParamIsClone; - *self - } -} -#[automatically_derived] -impl ::core::marker::Copy for Point { } -#[automatically_derived] -impl ::core::fmt::Debug for Point { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::debug_struct_field2_finish(f, "Point", "x", - &&self.x, "y", &&self.y) - } -} -#[automatically_derived] -impl ::core::default::Default for Point { - #[inline] - fn default() -> Point { - Point { - x: ::core::default::Default::default(), - y: ::core::default::Default::default(), - } - } -} -#[automatically_derived] -impl ::core::hash::Hash for Point { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - ::core::hash::Hash::hash(&self.x, state); - ::core::hash::Hash::hash(&self.y, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Point { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Point { - #[inline] - fn eq(&self, other: &Point) -> bool { - self.x == other.x && self.y == other.y - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Point { } -#[automatically_derived] -impl ::core::cmp::Eq for Point { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Point { - #[inline] - fn partial_cmp(&self, other: &Point) - -> ::core::option::Option<::core::cmp::Ordering> { - match ::core::cmp::PartialOrd::partial_cmp(&self.x, &other.x) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) => - ::core::cmp::PartialOrd::partial_cmp(&self.y, &other.y), - cmp => cmp, - } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Point { - #[inline] - fn cmp(&self, other: &Point) -> ::core::cmp::Ordering { - match ::core::cmp::Ord::cmp(&self.x, &other.x) { - ::core::cmp::Ordering::Equal => - ::core::cmp::Ord::cmp(&self.y, &other.y), - cmp => cmp, - } - } -} - -// A large struct. -struct Big { - b1: u32, - b2: u32, - b3: u32, - b4: u32, - b5: u32, - b6: u32, - b7: u32, - b8: u32, -} -#[automatically_derived] -impl ::core::clone::Clone for Big { - #[inline] - fn clone(&self) -> Big { - Big { - b1: ::core::clone::Clone::clone(&self.b1), - b2: ::core::clone::Clone::clone(&self.b2), - b3: ::core::clone::Clone::clone(&self.b3), - b4: ::core::clone::Clone::clone(&self.b4), - b5: ::core::clone::Clone::clone(&self.b5), - b6: ::core::clone::Clone::clone(&self.b6), - b7: ::core::clone::Clone::clone(&self.b7), - b8: ::core::clone::Clone::clone(&self.b8), - } - } -} -#[automatically_derived] -impl ::core::fmt::Debug for Big { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - let names: &'static _ = - &["b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8"]; - let values: &[&dyn ::core::fmt::Debug] = - &[&&self.b1, &&self.b2, &&self.b3, &&self.b4, &&self.b5, - &&self.b6, &&self.b7, &&self.b8]; - ::core::fmt::Formatter::debug_struct_fields_finish(f, "Big", names, - values) - } -} -#[automatically_derived] -impl ::core::default::Default for Big { - #[inline] - fn default() -> Big { - Big { - b1: ::core::default::Default::default(), - b2: ::core::default::Default::default(), - b3: ::core::default::Default::default(), - b4: ::core::default::Default::default(), - b5: ::core::default::Default::default(), - b6: ::core::default::Default::default(), - b7: ::core::default::Default::default(), - b8: ::core::default::Default::default(), - } - } -} -#[automatically_derived] -impl ::core::hash::Hash for Big { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - ::core::hash::Hash::hash(&self.b1, state); - ::core::hash::Hash::hash(&self.b2, state); - ::core::hash::Hash::hash(&self.b3, state); - ::core::hash::Hash::hash(&self.b4, state); - ::core::hash::Hash::hash(&self.b5, state); - ::core::hash::Hash::hash(&self.b6, state); - ::core::hash::Hash::hash(&self.b7, state); - ::core::hash::Hash::hash(&self.b8, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Big { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Big { - #[inline] - fn eq(&self, other: &Big) -> bool { - self.b1 == other.b1 && self.b2 == other.b2 && self.b3 == other.b3 && - self.b4 == other.b4 && self.b5 == other.b5 && - self.b6 == other.b6 && self.b7 == other.b7 && - self.b8 == other.b8 - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Big { } -#[automatically_derived] -impl ::core::cmp::Eq for Big { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Big { - #[inline] - fn partial_cmp(&self, other: &Big) - -> ::core::option::Option<::core::cmp::Ordering> { - match ::core::cmp::PartialOrd::partial_cmp(&self.b1, &other.b1) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) => - match ::core::cmp::PartialOrd::partial_cmp(&self.b2, - &other.b2) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - match ::core::cmp::PartialOrd::partial_cmp(&self.b3, - &other.b3) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - match ::core::cmp::PartialOrd::partial_cmp(&self.b4, - &other.b4) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - match ::core::cmp::PartialOrd::partial_cmp(&self.b5, - &other.b5) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - match ::core::cmp::PartialOrd::partial_cmp(&self.b6, - &other.b6) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - match ::core::cmp::PartialOrd::partial_cmp(&self.b7, - &other.b7) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - ::core::cmp::PartialOrd::partial_cmp(&self.b8, &other.b8), - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Big { - #[inline] - fn cmp(&self, other: &Big) -> ::core::cmp::Ordering { - match ::core::cmp::Ord::cmp(&self.b1, &other.b1) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b2, &other.b2) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b3, &other.b3) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b4, &other.b4) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b5, &other.b5) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b6, &other.b6) { - ::core::cmp::Ordering::Equal => - match ::core::cmp::Ord::cmp(&self.b7, &other.b7) { - ::core::cmp::Ordering::Equal => - ::core::cmp::Ord::cmp(&self.b8, &other.b8), - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - }, - cmp => cmp, - } - } -} - -// A struct with an unsized field. Some derives are not usable in this case. -struct Unsized([u32]); -#[automatically_derived] -impl ::core::fmt::Debug for Unsized { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Unsized", - &&self.0) - } -} -#[automatically_derived] -impl ::core::hash::Hash for Unsized { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - ::core::hash::Hash::hash(&self.0, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Unsized { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Unsized { - #[inline] - fn eq(&self, other: &Unsized) -> bool { self.0 == other.0 } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Unsized { } -#[automatically_derived] -impl ::core::cmp::Eq for Unsized { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq<[u32]>; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Unsized { - #[inline] - fn partial_cmp(&self, other: &Unsized) - -> ::core::option::Option<::core::cmp::Ordering> { - ::core::cmp::PartialOrd::partial_cmp(&self.0, &other.0) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Unsized { - #[inline] - fn cmp(&self, other: &Unsized) -> ::core::cmp::Ordering { - ::core::cmp::Ord::cmp(&self.0, &other.0) - } -} - -// A packed tuple struct that impls `Copy`. -#[repr(packed)] -struct PackedCopy(u32); -#[automatically_derived] -impl ::core::clone::Clone for PackedCopy { - #[inline] - fn clone(&self) -> PackedCopy { - let _: ::core::clone::AssertParamIsClone; - *self - } -} -#[automatically_derived] -impl ::core::marker::Copy for PackedCopy { } -#[automatically_derived] -impl ::core::fmt::Debug for PackedCopy { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "PackedCopy", - &&{ self.0 }) - } -} -#[automatically_derived] -impl ::core::default::Default for PackedCopy { - #[inline] - fn default() -> PackedCopy { - PackedCopy(::core::default::Default::default()) - } -} -#[automatically_derived] -impl ::core::hash::Hash for PackedCopy { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - ::core::hash::Hash::hash(&{ self.0 }, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for PackedCopy { } -#[automatically_derived] -impl ::core::cmp::PartialEq for PackedCopy { - #[inline] - fn eq(&self, other: &PackedCopy) -> bool { { self.0 } == { other.0 } } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for PackedCopy { } -#[automatically_derived] -impl ::core::cmp::Eq for PackedCopy { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for PackedCopy { - #[inline] - fn partial_cmp(&self, other: &PackedCopy) - -> ::core::option::Option<::core::cmp::Ordering> { - ::core::cmp::PartialOrd::partial_cmp(&{ self.0 }, &{ other.0 }) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for PackedCopy { - #[inline] - fn cmp(&self, other: &PackedCopy) -> ::core::cmp::Ordering { - ::core::cmp::Ord::cmp(&{ self.0 }, &{ other.0 }) - } -} - -// A packed tuple struct that does not impl `Copy`. Note that the alignment of -// the field must be 1 for this code to be valid. Otherwise it triggers an -// error "`#[derive]` can't be used on a `#[repr(packed)]` struct that does not -// derive Copy (error E0133)" at MIR building time. This is a weird case and -// it's possible that this struct is not supposed to work, but for now it does. -#[repr(packed)] -struct PackedNonCopy(u8); -#[automatically_derived] -impl ::core::clone::Clone for PackedNonCopy { - #[inline] - fn clone(&self) -> PackedNonCopy { - PackedNonCopy(::core::clone::Clone::clone(&self.0)) - } -} -#[automatically_derived] -impl ::core::fmt::Debug for PackedNonCopy { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "PackedNonCopy", - &&self.0) - } -} -#[automatically_derived] -impl ::core::default::Default for PackedNonCopy { - #[inline] - fn default() -> PackedNonCopy { - PackedNonCopy(::core::default::Default::default()) - } -} -#[automatically_derived] -impl ::core::hash::Hash for PackedNonCopy { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - ::core::hash::Hash::hash(&self.0, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for PackedNonCopy { } -#[automatically_derived] -impl ::core::cmp::PartialEq for PackedNonCopy { - #[inline] - fn eq(&self, other: &PackedNonCopy) -> bool { self.0 == other.0 } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for PackedNonCopy { } -#[automatically_derived] -impl ::core::cmp::Eq for PackedNonCopy { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for PackedNonCopy { - #[inline] - fn partial_cmp(&self, other: &PackedNonCopy) - -> ::core::option::Option<::core::cmp::Ordering> { - ::core::cmp::PartialOrd::partial_cmp(&self.0, &other.0) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for PackedNonCopy { - #[inline] - fn cmp(&self, other: &PackedNonCopy) -> ::core::cmp::Ordering { - ::core::cmp::Ord::cmp(&self.0, &other.0) - } -} - -// An empty enum. -enum Enum0 {} -#[automatically_derived] -impl ::core::clone::Clone for Enum0 { - #[inline] - fn clone(&self) -> Enum0 { *self } -} -#[automatically_derived] -impl ::core::marker::Copy for Enum0 { } -#[automatically_derived] -impl ::core::fmt::Debug for Enum0 { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - unsafe { ::core::intrinsics::unreachable() } - } -} -#[automatically_derived] -impl ::core::hash::Hash for Enum0 { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - unsafe { ::core::intrinsics::unreachable() } - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Enum0 { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Enum0 { - #[inline] - fn eq(&self, other: &Enum0) -> bool { - unsafe { ::core::intrinsics::unreachable() } - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Enum0 { } -#[automatically_derived] -impl ::core::cmp::Eq for Enum0 { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () {} -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Enum0 { - #[inline] - fn partial_cmp(&self, other: &Enum0) - -> ::core::option::Option<::core::cmp::Ordering> { - unsafe { ::core::intrinsics::unreachable() } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Enum0 { - #[inline] - fn cmp(&self, other: &Enum0) -> ::core::cmp::Ordering { - unsafe { ::core::intrinsics::unreachable() } - } -} - -// A single-variant enum. -enum Enum1 { - Single { - x: u32, - }, -} -#[automatically_derived] -impl ::core::clone::Clone for Enum1 { - #[inline] - fn clone(&self) -> Enum1 { - match self { - Enum1::Single { x: __self_0 } => - Enum1::Single { x: ::core::clone::Clone::clone(__self_0) }, - } - } -} -#[automatically_derived] -impl ::core::fmt::Debug for Enum1 { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match self { - Enum1::Single { x: __self_0 } => - ::core::fmt::Formatter::debug_struct_field1_finish(f, - "Single", "x", &__self_0), - } - } -} -#[automatically_derived] -impl ::core::hash::Hash for Enum1 { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - match self { - Enum1::Single { x: __self_0 } => - ::core::hash::Hash::hash(__self_0, state), - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Enum1 { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Enum1 { - #[inline] - fn eq(&self, other: &Enum1) -> bool { - match (self, other) { - (Enum1::Single { x: __self_0 }, Enum1::Single { x: __arg1_0 }) => - *__self_0 == *__arg1_0, - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Enum1 { } -#[automatically_derived] -impl ::core::cmp::Eq for Enum1 { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Enum1 { - #[inline] - fn partial_cmp(&self, other: &Enum1) - -> ::core::option::Option<::core::cmp::Ordering> { - match (self, other) { - (Enum1::Single { x: __self_0 }, Enum1::Single { x: __arg1_0 }) => - ::core::cmp::PartialOrd::partial_cmp(__self_0, __arg1_0), - } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Enum1 { - #[inline] - fn cmp(&self, other: &Enum1) -> ::core::cmp::Ordering { - match (self, other) { - (Enum1::Single { x: __self_0 }, Enum1::Single { x: __arg1_0 }) => - ::core::cmp::Ord::cmp(__self_0, __arg1_0), - } - } -} - -// A C-like, fieldless enum with a single variant. -enum Fieldless1 { - - #[default] - A, -} -#[automatically_derived] -impl ::core::clone::Clone for Fieldless1 { - #[inline] - fn clone(&self) -> Fieldless1 { Fieldless1::A } -} -#[automatically_derived] -impl ::core::fmt::Debug for Fieldless1 { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - ::core::fmt::Formatter::write_str(f, "A") - } -} -#[automatically_derived] -impl ::core::default::Default for Fieldless1 { - #[inline] - fn default() -> Fieldless1 { Self::A } -} -#[automatically_derived] -impl ::core::hash::Hash for Fieldless1 { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {} -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Fieldless1 { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Fieldless1 { - #[inline] - fn eq(&self, other: &Fieldless1) -> bool { true } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Fieldless1 { } -#[automatically_derived] -impl ::core::cmp::Eq for Fieldless1 { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () {} -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Fieldless1 { - #[inline] - fn partial_cmp(&self, other: &Fieldless1) - -> ::core::option::Option<::core::cmp::Ordering> { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Fieldless1 { - #[inline] - fn cmp(&self, other: &Fieldless1) -> ::core::cmp::Ordering { - ::core::cmp::Ordering::Equal - } -} - -// A C-like, fieldless enum. -enum Fieldless { - - #[default] - A, - B, - C, -} -#[automatically_derived] -impl ::core::clone::Clone for Fieldless { - #[inline] - fn clone(&self) -> Fieldless { *self } -} -#[automatically_derived] -impl ::core::marker::Copy for Fieldless { } -#[automatically_derived] -impl ::core::fmt::Debug for Fieldless { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match self { - Fieldless::A => ::core::fmt::Formatter::write_str(f, "A"), - Fieldless::B => ::core::fmt::Formatter::write_str(f, "B"), - Fieldless::C => ::core::fmt::Formatter::write_str(f, "C"), - } - } -} -#[automatically_derived] -impl ::core::default::Default for Fieldless { - #[inline] - fn default() -> Fieldless { Self::A } -} -#[automatically_derived] -impl ::core::hash::Hash for Fieldless { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - let __self_tag = ::core::intrinsics::discriminant_value(self); - ::core::hash::Hash::hash(&__self_tag, state) - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Fieldless { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Fieldless { - #[inline] - fn eq(&self, other: &Fieldless) -> bool { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - __self_tag == __arg1_tag - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Fieldless { } -#[automatically_derived] -impl ::core::cmp::Eq for Fieldless { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () {} -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Fieldless { - #[inline] - fn partial_cmp(&self, other: &Fieldless) - -> ::core::option::Option<::core::cmp::Ordering> { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - ::core::cmp::PartialOrd::partial_cmp(&__self_tag, &__arg1_tag) - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Fieldless { - #[inline] - fn cmp(&self, other: &Fieldless) -> ::core::cmp::Ordering { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - ::core::cmp::Ord::cmp(&__self_tag, &__arg1_tag) - } -} - -// An enum with multiple fieldless and fielded variants. -enum Mixed { - - #[default] - P, - Q, - R(u32), - S { - d1: Option, - d2: Option, - }, -} -#[automatically_derived] -impl ::core::clone::Clone for Mixed { - #[inline] - fn clone(&self) -> Mixed { - let _: ::core::clone::AssertParamIsClone; - let _: ::core::clone::AssertParamIsClone>; - let _: ::core::clone::AssertParamIsClone>; - *self - } -} -#[automatically_derived] -impl ::core::marker::Copy for Mixed { } -#[automatically_derived] -impl ::core::fmt::Debug for Mixed { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match self { - Mixed::P => ::core::fmt::Formatter::write_str(f, "P"), - Mixed::Q => ::core::fmt::Formatter::write_str(f, "Q"), - Mixed::R(__self_0) => - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "R", - &__self_0), - Mixed::S { d1: __self_0, d2: __self_1 } => - ::core::fmt::Formatter::debug_struct_field2_finish(f, "S", - "d1", &__self_0, "d2", &__self_1), - } - } -} -#[automatically_derived] -impl ::core::default::Default for Mixed { - #[inline] - fn default() -> Mixed { Self::P } -} -#[automatically_derived] -impl ::core::hash::Hash for Mixed { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - let __self_tag = ::core::intrinsics::discriminant_value(self); - ::core::hash::Hash::hash(&__self_tag, state); - match self { - Mixed::R(__self_0) => ::core::hash::Hash::hash(__self_0, state), - Mixed::S { d1: __self_0, d2: __self_1 } => { - ::core::hash::Hash::hash(__self_0, state); - ::core::hash::Hash::hash(__self_1, state) - } - _ => {} - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Mixed { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Mixed { - #[inline] - fn eq(&self, other: &Mixed) -> bool { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - __self_tag == __arg1_tag && - match (self, other) { - (Mixed::R(__self_0), Mixed::R(__arg1_0)) => - *__self_0 == *__arg1_0, - (Mixed::S { d1: __self_0, d2: __self_1 }, Mixed::S { - d1: __arg1_0, d2: __arg1_1 }) => - *__self_0 == *__arg1_0 && *__self_1 == *__arg1_1, - _ => true, - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Mixed { } -#[automatically_derived] -impl ::core::cmp::Eq for Mixed { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - let _: ::core::cmp::AssertParamIsEq>; - let _: ::core::cmp::AssertParamIsEq>; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Mixed { - #[inline] - fn partial_cmp(&self, other: &Mixed) - -> ::core::option::Option<::core::cmp::Ordering> { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - match ::core::cmp::PartialOrd::partial_cmp(&__self_tag, &__arg1_tag) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) => - match (self, other) { - (Mixed::R(__self_0), Mixed::R(__arg1_0)) => - ::core::cmp::PartialOrd::partial_cmp(__self_0, __arg1_0), - (Mixed::S { d1: __self_0, d2: __self_1 }, Mixed::S { - d1: __arg1_0, d2: __arg1_1 }) => - match ::core::cmp::PartialOrd::partial_cmp(__self_0, - __arg1_0) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => ::core::cmp::PartialOrd::partial_cmp(__self_1, __arg1_1), - cmp => cmp, - }, - _ => - ::core::option::Option::Some(::core::cmp::Ordering::Equal), - }, - cmp => cmp, - } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Mixed { - #[inline] - fn cmp(&self, other: &Mixed) -> ::core::cmp::Ordering { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - match ::core::cmp::Ord::cmp(&__self_tag, &__arg1_tag) { - ::core::cmp::Ordering::Equal => - match (self, other) { - (Mixed::R(__self_0), Mixed::R(__arg1_0)) => - ::core::cmp::Ord::cmp(__self_0, __arg1_0), - (Mixed::S { d1: __self_0, d2: __self_1 }, Mixed::S { - d1: __arg1_0, d2: __arg1_1 }) => - match ::core::cmp::Ord::cmp(__self_0, __arg1_0) { - ::core::cmp::Ordering::Equal => - ::core::cmp::Ord::cmp(__self_1, __arg1_1), - cmp => cmp, - }, - _ => ::core::cmp::Ordering::Equal, - }, - cmp => cmp, - } - } -} - -// An enum with no fieldless variants. Note that `Default` cannot be derived -// for this enum. -enum Fielded { X(u32), Y(bool), Z(Option), } -#[automatically_derived] -impl ::core::clone::Clone for Fielded { - #[inline] - fn clone(&self) -> Fielded { - match self { - Fielded::X(__self_0) => - Fielded::X(::core::clone::Clone::clone(__self_0)), - Fielded::Y(__self_0) => - Fielded::Y(::core::clone::Clone::clone(__self_0)), - Fielded::Z(__self_0) => - Fielded::Z(::core::clone::Clone::clone(__self_0)), - } - } -} -#[automatically_derived] -impl ::core::fmt::Debug for Fielded { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match self { - Fielded::X(__self_0) => - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "X", - &__self_0), - Fielded::Y(__self_0) => - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Y", - &__self_0), - Fielded::Z(__self_0) => - ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Z", - &__self_0), - } - } -} -#[automatically_derived] -impl ::core::hash::Hash for Fielded { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - let __self_tag = ::core::intrinsics::discriminant_value(self); - ::core::hash::Hash::hash(&__self_tag, state); - match self { - Fielded::X(__self_0) => ::core::hash::Hash::hash(__self_0, state), - Fielded::Y(__self_0) => ::core::hash::Hash::hash(__self_0, state), - Fielded::Z(__self_0) => ::core::hash::Hash::hash(__self_0, state), - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralPartialEq for Fielded { } -#[automatically_derived] -impl ::core::cmp::PartialEq for Fielded { - #[inline] - fn eq(&self, other: &Fielded) -> bool { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - __self_tag == __arg1_tag && - match (self, other) { - (Fielded::X(__self_0), Fielded::X(__arg1_0)) => - *__self_0 == *__arg1_0, - (Fielded::Y(__self_0), Fielded::Y(__arg1_0)) => - *__self_0 == *__arg1_0, - (Fielded::Z(__self_0), Fielded::Z(__arg1_0)) => - *__self_0 == *__arg1_0, - _ => unsafe { ::core::intrinsics::unreachable() } - } - } -} -#[automatically_derived] -impl ::core::marker::StructuralEq for Fielded { } -#[automatically_derived] -impl ::core::cmp::Eq for Fielded { - #[inline] - #[doc(hidden)] - #[no_coverage] - fn assert_receiver_is_total_eq(&self) -> () { - let _: ::core::cmp::AssertParamIsEq; - let _: ::core::cmp::AssertParamIsEq; - let _: ::core::cmp::AssertParamIsEq>; - } -} -#[automatically_derived] -impl ::core::cmp::PartialOrd for Fielded { - #[inline] - fn partial_cmp(&self, other: &Fielded) - -> ::core::option::Option<::core::cmp::Ordering> { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - match ::core::cmp::PartialOrd::partial_cmp(&__self_tag, &__arg1_tag) { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) => - match (self, other) { - (Fielded::X(__self_0), Fielded::X(__arg1_0)) => - ::core::cmp::PartialOrd::partial_cmp(__self_0, __arg1_0), - (Fielded::Y(__self_0), Fielded::Y(__arg1_0)) => - ::core::cmp::PartialOrd::partial_cmp(__self_0, __arg1_0), - (Fielded::Z(__self_0), Fielded::Z(__arg1_0)) => - ::core::cmp::PartialOrd::partial_cmp(__self_0, __arg1_0), - _ => unsafe { ::core::intrinsics::unreachable() } - }, - cmp => cmp, - } - } -} -#[automatically_derived] -impl ::core::cmp::Ord for Fielded { - #[inline] - fn cmp(&self, other: &Fielded) -> ::core::cmp::Ordering { - let __self_tag = ::core::intrinsics::discriminant_value(self); - let __arg1_tag = ::core::intrinsics::discriminant_value(other); - match ::core::cmp::Ord::cmp(&__self_tag, &__arg1_tag) { - ::core::cmp::Ordering::Equal => - match (self, other) { - (Fielded::X(__self_0), Fielded::X(__arg1_0)) => - ::core::cmp::Ord::cmp(__self_0, __arg1_0), - (Fielded::Y(__self_0), Fielded::Y(__arg1_0)) => - ::core::cmp::Ord::cmp(__self_0, __arg1_0), - (Fielded::Z(__self_0), Fielded::Z(__arg1_0)) => - ::core::cmp::Ord::cmp(__self_0, __arg1_0), - _ => unsafe { ::core::intrinsics::unreachable() } - }, - cmp => cmp, - } - } -} - -// A union. Most builtin traits are not derivable for unions. -pub union Union { - pub b: bool, - pub u: u32, - pub i: i32, -} -#[automatically_derived] -impl ::core::clone::Clone for Union { - #[inline] - fn clone(&self) -> Union { - let _: ::core::clone::AssertParamIsCopy; - *self - } -} -#[automatically_derived] -impl ::core::marker::Copy for Union { } diff --git a/src/test/ui/deriving/deriving-associated-types.rs b/src/test/ui/deriving/deriving-associated-types.rs deleted file mode 100644 index 4b1cbe80c..000000000 --- a/src/test/ui/deriving/deriving-associated-types.rs +++ /dev/null @@ -1,199 +0,0 @@ -// run-pass -pub trait DeclaredTrait { - type Type; -} - -impl DeclaredTrait for i32 { - type Type = i32; -} - -pub trait WhereTrait { - type Type; -} - -impl WhereTrait for i32 { - type Type = i32; -} - -// Make sure we don't add a bound that just shares a name with an associated -// type. -pub mod module { - pub type Type = i32; -} - -#[derive(PartialEq, Debug)] -struct PrivateStruct(T); - -#[derive(PartialEq, Debug)] -struct TupleStruct( - module::Type, - Option, - A, - PrivateStruct, - B, - B::Type, - Option, - ::Type, - Option<::Type>, - C, - C::Type, - Option, - ::Type, - Option<::Type>, - ::Type, -) where C: WhereTrait; - -#[derive(PartialEq, Debug)] -pub struct Struct where C: WhereTrait { - m1: module::Type, - m2: Option, - a1: A, - a2: PrivateStruct, - b: B, - b1: B::Type, - b2: Option, - b3: ::Type, - b4: Option<::Type>, - c: C, - c1: C::Type, - c2: Option, - c3: ::Type, - c4: Option<::Type>, - d: ::Type, -} - -#[derive(PartialEq, Debug)] -enum Enum where C: WhereTrait { - Unit, - Seq( - module::Type, - Option, - A, - PrivateStruct, - B, - B::Type, - Option, - ::Type, - Option<::Type>, - C, - C::Type, - Option, - ::Type, - Option<::Type>, - ::Type, - ), - Map { - m1: module::Type, - m2: Option, - a1: A, - a2: PrivateStruct, - b: B, - b1: B::Type, - b2: Option, - b3: ::Type, - b4: Option<::Type>, - c: C, - c1: C::Type, - c2: Option, - c3: ::Type, - c4: Option<::Type>, - d: ::Type, - }, -} - -fn main() { - let e: TupleStruct< - i32, - i32, - i32, - > = TupleStruct( - 0, - None, - 0, - PrivateStruct(0), - 0, - 0, - None, - 0, - None, - 0, - 0, - None, - 0, - None, - 0, - ); - assert_eq!(e, e); - - let e: Struct< - i32, - i32, - i32, - > = Struct { - m1: 0, - m2: None, - a1: 0, - a2: PrivateStruct(0), - b: 0, - b1: 0, - b2: None, - b3: 0, - b4: None, - c: 0, - c1: 0, - c2: None, - c3: 0, - c4: None, - d: 0, - }; - assert_eq!(e, e); - - let e = Enum::Unit::; - assert_eq!(e, e); - - let e: Enum< - i32, - i32, - i32, - > = Enum::Seq( - 0, - None, - 0, - PrivateStruct(0), - 0, - 0, - None, - 0, - None, - 0, - 0, - None, - 0, - None, - 0, - ); - assert_eq!(e, e); - - let e: Enum< - i32, - i32, - i32, - > = Enum::Map { - m1: 0, - m2: None, - a1: 0, - a2: PrivateStruct(0), - b: 0, - b1: 0, - b2: None, - b3: 0, - b4: None, - c: 0, - c1: 0, - c2: None, - c3: 0, - c4: None, - d: 0, - }; - assert_eq!(e, e); -} diff --git a/src/test/ui/deriving/deriving-bounds.rs b/src/test/ui/deriving/deriving-bounds.rs deleted file mode 100644 index f0b921d0e..000000000 --- a/src/test/ui/deriving/deriving-bounds.rs +++ /dev/null @@ -1,5 +0,0 @@ -// run-pass -#[derive(Copy, Clone)] -struct Test; - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-clone-array.rs b/src/test/ui/deriving/deriving-clone-array.rs deleted file mode 100644 index 4569749df..000000000 --- a/src/test/ui/deriving/deriving-clone-array.rs +++ /dev/null @@ -1,10 +0,0 @@ -// run-pass -#![allow(dead_code)] -// test for issue #30244 - -#[derive(Copy, Clone)] -struct Array { - arr: [[u8; 256]; 4] -} - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-clone-enum.rs b/src/test/ui/deriving/deriving-clone-enum.rs deleted file mode 100644 index 09e749740..000000000 --- a/src/test/ui/deriving/deriving-clone-enum.rs +++ /dev/null @@ -1,14 +0,0 @@ -// run-pass -#![allow(dead_code)] -// pretty-expanded FIXME #23616 - -#[derive(Clone)] -enum E { - A, - B(()), - C -} - -pub fn main() { - let _ = E::A.clone(); -} diff --git a/src/test/ui/deriving/deriving-clone-generic-enum.rs b/src/test/ui/deriving/deriving-clone-generic-enum.rs deleted file mode 100644 index a344d7fc4..000000000 --- a/src/test/ui/deriving/deriving-clone-generic-enum.rs +++ /dev/null @@ -1,14 +0,0 @@ -// run-pass -#![allow(dead_code)] -// pretty-expanded FIXME #23616 - -#[derive(Clone)] -enum E { - A(T), - B(T,U), - C -} - -pub fn main() { - let _ = E::A::(1).clone(); -} diff --git a/src/test/ui/deriving/deriving-clone-generic-struct.rs b/src/test/ui/deriving/deriving-clone-generic-struct.rs deleted file mode 100644 index 4374d1594..000000000 --- a/src/test/ui/deriving/deriving-clone-generic-struct.rs +++ /dev/null @@ -1,15 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 - -#![allow(dead_code)] - -#[derive(Clone)] -struct S { - foo: (), - bar: (), - baz: T, -} - -pub fn main() { - let _ = S { foo: (), bar: (), baz: 1 }.clone(); -} diff --git a/src/test/ui/deriving/deriving-clone-generic-tuple-struct.rs b/src/test/ui/deriving/deriving-clone-generic-tuple-struct.rs deleted file mode 100644 index 3480ccc10..000000000 --- a/src/test/ui/deriving/deriving-clone-generic-tuple-struct.rs +++ /dev/null @@ -1,10 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 - -#[derive(Clone)] -#[allow(unused_tuple_struct_fields)] -struct S(T, ()); - -pub fn main() { - let _ = S(1, ()).clone(); -} diff --git a/src/test/ui/deriving/deriving-clone-struct.rs b/src/test/ui/deriving/deriving-clone-struct.rs deleted file mode 100644 index b93cbe5f8..000000000 --- a/src/test/ui/deriving/deriving-clone-struct.rs +++ /dev/null @@ -1,28 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 - -#![allow(dead_code)] - -#[derive(Clone)] -struct S { - _int: isize, - _i8: i8, - _i16: i16, - _i32: i32, - _i64: i64, - - _uint: usize, - _u8: u8, - _u16: u16, - _u32: u32, - _u64: u64, - - _f32: f32, - _f64: f64, - - _bool: bool, - _char: char, - _nil: () -} - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-clone-tuple-struct.rs b/src/test/ui/deriving/deriving-clone-tuple-struct.rs deleted file mode 100644 index 7ad3f0347..000000000 --- a/src/test/ui/deriving/deriving-clone-tuple-struct.rs +++ /dev/null @@ -1,9 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 - -#![allow(dead_code)] - -#[derive(Clone)] -struct S((), ()); - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-cmp-generic-enum.rs b/src/test/ui/deriving/deriving-cmp-generic-enum.rs deleted file mode 100644 index 88da4bd06..000000000 --- a/src/test/ui/deriving/deriving-cmp-generic-enum.rs +++ /dev/null @@ -1,44 +0,0 @@ -// run-pass -#[derive(PartialEq, Eq, PartialOrd, Ord)] -enum E { - E0, - E1(T), - E2(T,T) -} - -pub fn main() { - let e0 = E::E0; - let e11 = E::E1(1); - let e12 = E::E1(2); - let e21 = E::E2(1, 1); - let e22 = E::E2(1, 2); - - // in order for both PartialOrd and Ord - let es = [e0, e11, e12, e21, e22]; - - for (i, e1) in es.iter().enumerate() { - for (j, e2) in es.iter().enumerate() { - let ord = i.cmp(&j); - - let eq = i == j; - let lt = i < j; - let le = i <= j; - let gt = i > j; - let ge = i >= j; - - // PartialEq - assert_eq!(*e1 == *e2, eq); - assert_eq!(*e1 != *e2, !eq); - - // PartialOrd - assert_eq!(*e1 < *e2, lt); - assert_eq!(*e1 > *e2, gt); - - assert_eq!(*e1 <= *e2, le); - assert_eq!(*e1 >= *e2, ge); - - // Ord - assert_eq!(e1.cmp(e2), ord); - } - } -} diff --git a/src/test/ui/deriving/deriving-cmp-generic-struct-enum.rs b/src/test/ui/deriving/deriving-cmp-generic-struct-enum.rs deleted file mode 100644 index eeaf2ff7e..000000000 --- a/src/test/ui/deriving/deriving-cmp-generic-struct-enum.rs +++ /dev/null @@ -1,48 +0,0 @@ -// run-pass -#[derive(PartialEq, Eq, PartialOrd, Ord)] -enum ES { - ES1 { x: T }, - ES2 { x: T, y: T } -} - - -pub fn main() { - let (es11, es12, es21, es22) = (ES::ES1 { - x: 1 - }, ES::ES1 { - x: 2 - }, ES::ES2 { - x: 1, - y: 1 - }, ES::ES2 { - x: 1, - y: 2 - }); - - // in order for both PartialOrd and Ord - let ess = [es11, es12, es21, es22]; - - for (i, es1) in ess.iter().enumerate() { - for (j, es2) in ess.iter().enumerate() { - let ord = i.cmp(&j); - - let eq = i == j; - let (lt, le) = (i < j, i <= j); - let (gt, ge) = (i > j, i >= j); - - // PartialEq - assert_eq!(*es1 == *es2, eq); - assert_eq!(*es1 != *es2, !eq); - - // PartialOrd - assert_eq!(*es1 < *es2, lt); - assert_eq!(*es1 > *es2, gt); - - assert_eq!(*es1 <= *es2, le); - assert_eq!(*es1 >= *es2, ge); - - // Ord - assert_eq!(es1.cmp(es2), ord); - } - } -} diff --git a/src/test/ui/deriving/deriving-cmp-generic-struct.rs b/src/test/ui/deriving/deriving-cmp-generic-struct.rs deleted file mode 100644 index 538caf439..000000000 --- a/src/test/ui/deriving/deriving-cmp-generic-struct.rs +++ /dev/null @@ -1,40 +0,0 @@ -// run-pass -#[derive(PartialEq, Eq, PartialOrd, Ord)] -struct S { - x: T, - y: T -} - -pub fn main() { - let s1 = S {x: 1, y: 1}; - let s2 = S {x: 1, y: 2}; - - // in order for both PartialOrd and Ord - let ss = [s1, s2]; - - for (i, s1) in ss.iter().enumerate() { - for (j, s2) in ss.iter().enumerate() { - let ord = i.cmp(&j); - - let eq = i == j; - let lt = i < j; - let le = i <= j; - let gt = i > j; - let ge = i >= j; - - // PartialEq - assert_eq!(*s1 == *s2, eq); - assert_eq!(*s1 != *s2, !eq); - - // PartialOrd - assert_eq!(*s1 < *s2, lt); - assert_eq!(*s1 > *s2, gt); - - assert_eq!(*s1 <= *s2, le); - assert_eq!(*s1 >= *s2, ge); - - // Ord - assert_eq!(s1.cmp(s2), ord); - } - } -} diff --git a/src/test/ui/deriving/deriving-cmp-generic-tuple-struct.rs b/src/test/ui/deriving/deriving-cmp-generic-tuple-struct.rs deleted file mode 100644 index 79f58d456..000000000 --- a/src/test/ui/deriving/deriving-cmp-generic-tuple-struct.rs +++ /dev/null @@ -1,38 +0,0 @@ -// run-pass -#[derive(PartialEq, Eq, PartialOrd, Ord)] -struct TS(T,T); - - -pub fn main() { - let ts1 = TS(1, 1); - let ts2 = TS(1, 2); - - // in order for both PartialOrd and Ord - let tss = [ts1, ts2]; - - for (i, ts1) in tss.iter().enumerate() { - for (j, ts2) in tss.iter().enumerate() { - let ord = i.cmp(&j); - - let eq = i == j; - let lt = i < j; - let le = i <= j; - let gt = i > j; - let ge = i >= j; - - // PartialEq - assert_eq!(*ts1 == *ts2, eq); - assert_eq!(*ts1 != *ts2, !eq); - - // PartialOrd - assert_eq!(*ts1 < *ts2, lt); - assert_eq!(*ts1 > *ts2, gt); - - assert_eq!(*ts1 <= *ts2, le); - assert_eq!(*ts1 >= *ts2, ge); - - // Ord - assert_eq!(ts1.cmp(ts2), ord); - } - } -} diff --git a/src/test/ui/deriving/deriving-cmp-shortcircuit.rs b/src/test/ui/deriving/deriving-cmp-shortcircuit.rs deleted file mode 100644 index 140373e95..000000000 --- a/src/test/ui/deriving/deriving-cmp-shortcircuit.rs +++ /dev/null @@ -1,37 +0,0 @@ -// run-pass -// check that the derived impls for the comparison traits shortcircuit -// where possible, by having a type that panics when compared as the -// second element, so this passes iff the instances shortcircuit. - - -use std::cmp::Ordering; - -pub struct FailCmp; -impl PartialEq for FailCmp { - fn eq(&self, _: &FailCmp) -> bool { panic!("eq") } -} - -impl PartialOrd for FailCmp { - fn partial_cmp(&self, _: &FailCmp) -> Option { panic!("partial_cmp") } -} - -impl Eq for FailCmp {} - -impl Ord for FailCmp { - fn cmp(&self, _: &FailCmp) -> Ordering { panic!("cmp") } -} - -#[derive(PartialEq,PartialOrd,Eq,Ord)] -struct ShortCircuit { - x: isize, - y: FailCmp -} - -pub fn main() { - let a = ShortCircuit { x: 1, y: FailCmp }; - let b = ShortCircuit { x: 2, y: FailCmp }; - - assert!(a != b); - assert!(a < b); - assert_eq!(a.cmp(&b), ::std::cmp::Ordering::Less); -} diff --git a/src/test/ui/deriving/deriving-copyclone.rs b/src/test/ui/deriving/deriving-copyclone.rs deleted file mode 100644 index f8403b1fe..000000000 --- a/src/test/ui/deriving/deriving-copyclone.rs +++ /dev/null @@ -1,38 +0,0 @@ -// run-pass -//! Test that #[derive(Copy, Clone)] produces a shallow copy -//! even when a member violates RFC 1521 - -use std::sync::atomic::{AtomicBool, Ordering}; - -/// A struct that pretends to be Copy, but actually does something -/// in its Clone impl -#[derive(Copy)] -struct Liar; - -/// Static cooperating with the rogue Clone impl -static CLONED: AtomicBool = AtomicBool::new(false); - -impl Clone for Liar { - fn clone(&self) -> Self { - // this makes Clone vs Copy observable - CLONED.store(true, Ordering::SeqCst); - - *self - } -} - -/// This struct is actually Copy... at least, it thinks it is! -#[derive(Copy, Clone)] -struct Innocent(#[allow(unused_tuple_struct_fields)] Liar); - -impl Innocent { - fn new() -> Self { - Innocent(Liar) - } -} - -fn main() { - let _ = Innocent::new().clone(); - // if Innocent was byte-for-byte copied, CLONED will still be false - assert!(!CLONED.load(Ordering::SeqCst)); -} diff --git a/src/test/ui/deriving/deriving-default-box.rs b/src/test/ui/deriving/deriving-default-box.rs deleted file mode 100644 index b71e11496..000000000 --- a/src/test/ui/deriving/deriving-default-box.rs +++ /dev/null @@ -1,13 +0,0 @@ -// run-pass -use std::default::Default; - -#[derive(Default)] -struct A { - foo: Box<[bool]>, -} - -pub fn main() { - let a: A = Default::default(); - let b: Box<[_]> = Box::<[bool; 0]>::new([]); - assert_eq!(a.foo, b); -} diff --git a/src/test/ui/deriving/deriving-default-enum.rs b/src/test/ui/deriving/deriving-default-enum.rs deleted file mode 100644 index 1c7a501ed..000000000 --- a/src/test/ui/deriving/deriving-default-enum.rs +++ /dev/null @@ -1,27 +0,0 @@ -// run-pass - -// nb: does not impl Default -#[derive(Debug, PartialEq)] -struct NotDefault; - -#[derive(Debug, Default, PartialEq)] -enum Foo { - #[default] - Alpha, - #[allow(dead_code)] - Beta(NotDefault), -} - -// #[default] on a generic enum does not add `Default` bounds to the type params. -#[derive(Default)] -enum MyOption { - #[default] - None, - #[allow(dead_code)] - Some(T), -} - -fn main() { - assert_eq!(Foo::default(), Foo::Alpha); - assert!(matches!(MyOption::::default(), MyOption::None)); -} diff --git a/src/test/ui/deriving/deriving-enum-single-variant.rs b/src/test/ui/deriving/deriving-enum-single-variant.rs deleted file mode 100644 index 1c5979c07..000000000 --- a/src/test/ui/deriving/deriving-enum-single-variant.rs +++ /dev/null @@ -1,12 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 -#![allow(non_camel_case_types)] - -pub type task_id = isize; - -#[derive(PartialEq)] -pub enum Task { - TaskHandle(task_id) -} - -pub fn main() { } diff --git a/src/test/ui/deriving/deriving-eq-ord-boxed-slice.rs b/src/test/ui/deriving/deriving-eq-ord-boxed-slice.rs deleted file mode 100644 index 5b4b09836..000000000 --- a/src/test/ui/deriving/deriving-eq-ord-boxed-slice.rs +++ /dev/null @@ -1,15 +0,0 @@ -// run-pass -#[derive(PartialEq, PartialOrd, Eq, Ord, Debug)] -struct Foo(Box<[u8]>); - -pub fn main() { - let a = Foo(Box::new([0, 1, 2])); - let b = Foo(Box::new([0, 1, 2])); - assert_eq!(a, b); - println!("{}", a != b); - println!("{}", a < b); - println!("{}", a <= b); - println!("{}", a == b); - println!("{}", a > b); - println!("{}", a >= b); -} diff --git a/src/test/ui/deriving/deriving-hash.rs b/src/test/ui/deriving/deriving-hash.rs deleted file mode 100644 index 16738ec4a..000000000 --- a/src/test/ui/deriving/deriving-hash.rs +++ /dev/null @@ -1,96 +0,0 @@ -// run-pass -#![allow(dead_code)] -#![allow(unused_imports)] -#![allow(deprecated)] -#![allow(non_camel_case_types)] -#![allow(non_snake_case)] -#![allow(overflowing_literals)] - -use std::hash::{Hash, SipHasher, Hasher}; -use std::mem::size_of; - -#[derive(Hash)] -struct Person { - id: usize, - name: String, - phone: usize, -} - -// test for hygiene name collisions -#[derive(Hash)] struct __H__H; -#[derive(Hash)] enum Collision<__H> { __H { __H__H: __H } } - -#[derive(Hash)] -enum E { A=1, B } - -fn hash(t: &T) -> u64 { - let mut s = SipHasher::new(); - t.hash(&mut s); - s.finish() -} - -struct FakeHasher<'a>(&'a mut Vec); -impl<'a> Hasher for FakeHasher<'a> { - fn finish(&self) -> u64 { - unimplemented!() - } - - fn write(&mut self, bytes: &[u8]) { - self.0.extend(bytes); - } -} - -fn fake_hash(v: &mut Vec, a: A) { - a.hash(&mut FakeHasher(v)); -} - -struct OnlyOneByteHasher; -impl Hasher for OnlyOneByteHasher { - fn finish(&self) -> u64 { - unreachable!() - } - - fn write(&mut self, bytes: &[u8]) { - assert_eq!(bytes.len(), 1); - } -} - -fn main() { - let person1 = Person { - id: 5, - name: "Janet".to_string(), - phone: 555_666_7777 - }; - let person2 = Person { - id: 5, - name: "Bob".to_string(), - phone: 555_666_7777 - }; - assert_eq!(hash(&person1), hash(&person1)); - assert!(hash(&person1) != hash(&person2)); - - // test #21714 - let mut va = vec![]; - let mut vb = vec![]; - fake_hash(&mut va, E::A); - fake_hash(&mut vb, E::B); - assert!(va != vb); - - // issue #39137: single variant enum hash should not hash discriminant - #[derive(Hash)] - enum SingleVariantEnum { - A(u8), - } - let mut v = vec![]; - fake_hash(&mut v, SingleVariantEnum::A(17)); - assert_eq!(vec![17], v); - - // issue #39137 - #[repr(u8)] - #[derive(Hash)] - enum E { - A, - B, - } - E::A.hash(&mut OnlyOneByteHasher); -} diff --git a/src/test/ui/deriving/deriving-in-fn.rs b/src/test/ui/deriving/deriving-in-fn.rs deleted file mode 100644 index 07f91d059..000000000 --- a/src/test/ui/deriving/deriving-in-fn.rs +++ /dev/null @@ -1,13 +0,0 @@ -// run-pass - -#![allow(dead_code)] - -pub fn main() { - #[derive(Debug)] - struct Foo { - foo: isize, - } - - let f = Foo { foo: 10 }; - format!("{:?}", f); -} diff --git a/src/test/ui/deriving/deriving-in-macro.rs b/src/test/ui/deriving/deriving-in-macro.rs deleted file mode 100644 index 46e8e3783..000000000 --- a/src/test/ui/deriving/deriving-in-macro.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -// pretty-expanded FIXME #23616 -#![allow(non_camel_case_types)] - -macro_rules! define_vec { - () => ( - mod foo { - #[derive(PartialEq)] - pub struct bar; - } - ) -} - -define_vec![]; - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-meta-multiple.rs b/src/test/ui/deriving/deriving-meta-multiple.rs deleted file mode 100644 index ad255be8d..000000000 --- a/src/test/ui/deriving/deriving-meta-multiple.rs +++ /dev/null @@ -1,26 +0,0 @@ -// run-pass -#![allow(unused_must_use)] -#![allow(unused_imports)] -// pretty-expanded FIXME #23616 -#![allow(deprecated)] - -use std::hash::{Hash, SipHasher}; - -// testing multiple separate deriving attributes -#[derive(PartialEq)] -#[derive(Clone)] -#[derive(Hash)] -struct Foo { - bar: usize, - baz: isize -} - -fn hash(_t: &T) {} - -pub fn main() { - let a = Foo {bar: 4, baz: -3}; - - a == a; // check for PartialEq impl w/o testing its correctness - a.clone(); // check for Clone impl w/o testing its correctness - hash(&a); // check for Hash impl w/o testing its correctness -} diff --git a/src/test/ui/deriving/deriving-meta.rs b/src/test/ui/deriving/deriving-meta.rs deleted file mode 100644 index f2ff4f535..000000000 --- a/src/test/ui/deriving/deriving-meta.rs +++ /dev/null @@ -1,23 +0,0 @@ -// run-pass -#![allow(unused_must_use)] -#![allow(unused_imports)] -// pretty-expanded FIXME #23616 -#![allow(deprecated)] - -use std::hash::{Hash, SipHasher}; - -#[derive(PartialEq, Clone, Hash)] -struct Foo { - bar: usize, - baz: isize -} - -fn hash(_t: &T) {} - -pub fn main() { - let a = Foo {bar: 4, baz: -3}; - - a == a; // check for PartialEq impl w/o testing its correctness - a.clone(); // check for Clone impl w/o testing its correctness - hash(&a); // check for Hash impl w/o testing its correctness -} diff --git a/src/test/ui/deriving/deriving-self-lifetime-totalord-totaleq.rs b/src/test/ui/deriving/deriving-self-lifetime-totalord-totaleq.rs deleted file mode 100644 index e01b5a26f..000000000 --- a/src/test/ui/deriving/deriving-self-lifetime-totalord-totaleq.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -use std::cmp::Ordering::{Less,Equal,Greater}; - -#[derive(PartialEq, Eq, PartialOrd, Ord)] -struct A<'a> { - x: &'a isize -} -pub fn main() { - let (a, b) = (A { x: &1 }, A { x: &2 }); - - assert_eq!(a.cmp(&a), Equal); - assert_eq!(b.cmp(&b), Equal); - - assert_eq!(a.cmp(&b), Less); - assert_eq!(b.cmp(&a), Greater); -} diff --git a/src/test/ui/deriving/deriving-show-2.rs b/src/test/ui/deriving/deriving-show-2.rs deleted file mode 100644 index 13d124ed4..000000000 --- a/src/test/ui/deriving/deriving-show-2.rs +++ /dev/null @@ -1,54 +0,0 @@ -// run-pass -#![allow(dead_code)] -use std::fmt; - -#[derive(Debug)] -enum A {} -#[derive(Debug)] -enum B { B1, B2, B3 } -#[derive(Debug)] -enum C { C1(isize), C2(B), C3(String) } -#[derive(Debug)] -enum D { D1{ a: isize } } -#[derive(Debug)] -struct E; -#[derive(Debug)] -struct F(isize); -#[derive(Debug)] -struct G(isize, isize); -#[derive(Debug)] -struct H { a: isize } -#[derive(Debug)] -struct I { a: isize, b: isize } -#[derive(Debug)] -struct J(Custom); - -struct Custom; -impl fmt::Debug for Custom { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "yay") - } -} - -trait ToDebug { - fn to_show(&self) -> String; -} - -impl ToDebug for T { - fn to_show(&self) -> String { - format!("{:?}", self) - } -} - -pub fn main() { - assert_eq!(B::B1.to_show(), "B1".to_string()); - assert_eq!(B::B2.to_show(), "B2".to_string()); - assert_eq!(C::C1(3).to_show(), "C1(3)".to_string()); - assert_eq!(C::C2(B::B2).to_show(), "C2(B2)".to_string()); - assert_eq!(D::D1{ a: 2 }.to_show(), "D1 { a: 2 }".to_string()); - assert_eq!(E.to_show(), "E".to_string()); - assert_eq!(F(3).to_show(), "F(3)".to_string()); - assert_eq!(G(3, 4).to_show(), "G(3, 4)".to_string()); - assert_eq!(I{ a: 2, b: 4 }.to_show(), "I { a: 2, b: 4 }".to_string()); - assert_eq!(J(Custom).to_show(), "J(yay)".to_string()); -} diff --git a/src/test/ui/deriving/deriving-show.rs b/src/test/ui/deriving/deriving-show.rs deleted file mode 100644 index eb3a8948f..000000000 --- a/src/test/ui/deriving/deriving-show.rs +++ /dev/null @@ -1,35 +0,0 @@ -// run-pass -#![allow(dead_code)] -#[derive(Debug)] -struct Unit; - -#[derive(Debug)] -struct Tuple(isize, usize); - -#[derive(Debug)] -struct Struct { x: isize, y: usize } - -#[derive(Debug)] -enum Enum { - Nullary, - Variant(isize, usize), - StructVariant { x: isize, y : usize } -} - -#[derive(Debug)] -struct Pointers(*const dyn Send, *mut dyn Sync); - -macro_rules! t { - ($x:expr, $expected:expr) => { - assert_eq!(format!("{:?}", $x), $expected.to_string()) - } -} - -pub fn main() { - t!(Unit, "Unit"); - t!(Tuple(1, 2), "Tuple(1, 2)"); - t!(Struct { x: 1, y: 2 }, "Struct { x: 1, y: 2 }"); - t!(Enum::Nullary, "Nullary"); - t!(Enum::Variant(1, 2), "Variant(1, 2)"); - t!(Enum::StructVariant { x: 1, y: 2 }, "StructVariant { x: 1, y: 2 }"); -} diff --git a/src/test/ui/deriving/deriving-via-extension-c-enum.rs b/src/test/ui/deriving/deriving-via-extension-c-enum.rs deleted file mode 100644 index 7fa1a69d7..000000000 --- a/src/test/ui/deriving/deriving-via-extension-c-enum.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -#![allow(dead_code)] -#[derive(PartialEq, Debug)] -enum Foo { - Bar, - Baz, - Boo -} - -pub fn main() { - let a = Foo::Bar; - let b = Foo::Bar; - assert_eq!(a, b); - assert!(!(a != b)); - assert!(a.eq(&b)); - assert!(!a.ne(&b)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-enum.rs b/src/test/ui/deriving/deriving-via-extension-enum.rs deleted file mode 100644 index 6b58fd966..000000000 --- a/src/test/ui/deriving/deriving-via-extension-enum.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -#![allow(dead_code)] -#[derive(PartialEq, Debug)] -enum Foo { - Bar(isize, isize), - Baz(f64, f64) -} - -pub fn main() { - let a = Foo::Bar(1, 2); - let b = Foo::Bar(1, 2); - assert_eq!(a, b); - assert!(!(a != b)); - assert!(a.eq(&b)); - assert!(!a.ne(&b)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-hash-enum.rs b/src/test/ui/deriving/deriving-via-extension-hash-enum.rs deleted file mode 100644 index 2d1ca05f4..000000000 --- a/src/test/ui/deriving/deriving-via-extension-hash-enum.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -#![allow(dead_code)] -#[derive(Hash)] -enum Foo { - Bar(isize, char), - Baz(char, isize) -} - -#[derive(Hash)] -enum A { - B, - C, - D, - E -} - -pub fn main(){} diff --git a/src/test/ui/deriving/deriving-via-extension-hash-struct.rs b/src/test/ui/deriving/deriving-via-extension-hash-struct.rs deleted file mode 100644 index c4037dc27..000000000 --- a/src/test/ui/deriving/deriving-via-extension-hash-struct.rs +++ /dev/null @@ -1,12 +0,0 @@ -// run-pass -#![allow(dead_code)] -// pretty-expanded FIXME #23616 - -#[derive(Hash)] -struct Foo { - x: isize, - y: isize, - z: isize -} - -pub fn main() {} diff --git a/src/test/ui/deriving/deriving-via-extension-struct-empty.rs b/src/test/ui/deriving/deriving-via-extension-struct-empty.rs deleted file mode 100644 index 9fb250e84..000000000 --- a/src/test/ui/deriving/deriving-via-extension-struct-empty.rs +++ /dev/null @@ -1,8 +0,0 @@ -// run-pass -#[derive(PartialEq, Debug)] -struct Foo; - -pub fn main() { - assert_eq!(Foo, Foo); - assert!(!(Foo != Foo)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-struct-like-enum-variant.rs b/src/test/ui/deriving/deriving-via-extension-struct-like-enum-variant.rs deleted file mode 100644 index b6e6f136c..000000000 --- a/src/test/ui/deriving/deriving-via-extension-struct-like-enum-variant.rs +++ /dev/null @@ -1,13 +0,0 @@ -// run-pass -#![allow(dead_code)] -#[derive(PartialEq, Debug)] -enum S { - X { x: isize, y: isize }, - Y -} - -pub fn main() { - let x = S::X { x: 1, y: 2 }; - assert_eq!(x, x); - assert!(!(x != x)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-struct-tuple.rs b/src/test/ui/deriving/deriving-via-extension-struct-tuple.rs deleted file mode 100644 index e84906c96..000000000 --- a/src/test/ui/deriving/deriving-via-extension-struct-tuple.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -#[derive(PartialEq, Debug)] -struct Foo(isize, isize, String); - -pub fn main() { - let a1 = Foo(5, 6, "abc".to_string()); - let a2 = Foo(5, 6, "abc".to_string()); - let b = Foo(5, 7, "def".to_string()); - - assert_eq!(a1, a1); - assert_eq!(a2, a1); - assert!(!(a1 == b)); - - assert!(a1 != b); - assert!(!(a1 != a1)); - assert!(!(a2 != a1)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-struct.rs b/src/test/ui/deriving/deriving-via-extension-struct.rs deleted file mode 100644 index f4d8b16a0..000000000 --- a/src/test/ui/deriving/deriving-via-extension-struct.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -#[derive(PartialEq, Debug)] -struct Foo { - x: isize, - y: isize, - z: isize, -} - -pub fn main() { - let a = Foo { x: 1, y: 2, z: 3 }; - let b = Foo { x: 1, y: 2, z: 3 }; - assert_eq!(a, b); - assert!(!(a != b)); - assert!(a.eq(&b)); - assert!(!a.ne(&b)); -} diff --git a/src/test/ui/deriving/deriving-via-extension-type-params.rs b/src/test/ui/deriving/deriving-via-extension-type-params.rs deleted file mode 100644 index a5dec8ee1..000000000 --- a/src/test/ui/deriving/deriving-via-extension-type-params.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -#[derive(PartialEq, Hash, Debug)] -struct Foo { - x: isize, - y: T, - z: isize -} - -pub fn main() { - let a = Foo { x: 1, y: 2.0f64, z: 3 }; - let b = Foo { x: 1, y: 2.0f64, z: 3 }; - assert_eq!(a, b); - assert!(!(a != b)); - assert!(a.eq(&b)); - assert!(!a.ne(&b)); -} diff --git a/src/test/ui/deriving/deriving-with-helper.rs b/src/test/ui/deriving/deriving-with-helper.rs deleted file mode 100644 index 1c30b0b6f..000000000 --- a/src/test/ui/deriving/deriving-with-helper.rs +++ /dev/null @@ -1,36 +0,0 @@ -// check-pass -// compile-flags: --crate-type=lib - -#![feature(decl_macro)] -#![feature(lang_items)] -#![feature(no_core)] -#![feature(rustc_attrs)] - -#![no_core] - -#[rustc_builtin_macro] -macro derive() {} - -#[rustc_builtin_macro(Default, attributes(default))] -macro Default() {} - -mod default { - pub trait Default { - fn default() -> Self; - } - - impl Default for u8 { - fn default() -> u8 { - 0 - } - } -} - -#[lang = "sized"] -trait Sized {} - -#[derive(Default)] -enum S { - #[default] // OK - Foo, -} diff --git a/src/test/ui/deriving/deriving-with-repr-packed.rs b/src/test/ui/deriving/deriving-with-repr-packed.rs deleted file mode 100644 index 8ce444be1..000000000 --- a/src/test/ui/deriving/deriving-with-repr-packed.rs +++ /dev/null @@ -1,36 +0,0 @@ -// run-pass -// check that derive on a packed struct does not call field -// methods with a misaligned field. - -use std::mem; - -#[derive(Copy, Clone)] -struct Aligned(usize); - -#[inline(never)] -fn check_align(ptr: *const Aligned) { - assert_eq!(ptr as usize % mem::align_of::(), - 0); -} - -impl PartialEq for Aligned { - fn eq(&self, other: &Self) -> bool { - check_align(self); - check_align(other); - self.0 == other.0 - } -} - -#[repr(packed)] -#[derive(Copy, Clone, PartialEq)] -struct Packed(Aligned, Aligned); - -#[derive(PartialEq)] -#[repr(C)] -struct Dealigned(u8, T); - -fn main() { - let d1 = Dealigned(0, Packed(Aligned(1), Aligned(2))); - let ck = d1 == d1; - assert!(ck); -} diff --git a/src/test/ui/deriving/issue-103157.rs b/src/test/ui/deriving/issue-103157.rs deleted file mode 100644 index 52b4c7898..000000000 --- a/src/test/ui/deriving/issue-103157.rs +++ /dev/null @@ -1,12 +0,0 @@ -// check-fail - -#[derive(PartialEq, Eq)] -pub enum Value { - Boolean(Option), - Float(Option), //~ ERROR the trait bound `f64: Eq` is not satisfied -} - -fn main() { - let a = Value::Float(Some(f64::NAN)); - assert!(a == a); -} diff --git a/src/test/ui/deriving/issue-103157.stderr b/src/test/ui/deriving/issue-103157.stderr deleted file mode 100644 index ee3528fe1..000000000 --- a/src/test/ui/deriving/issue-103157.stderr +++ /dev/null @@ -1,30 +0,0 @@ -error[E0277]: the trait bound `f64: Eq` is not satisfied - --> $DIR/issue-103157.rs:6:11 - | -LL | #[derive(PartialEq, Eq)] - | -- in this derive macro expansion -... -LL | Float(Option), - | ^^^^^^^^^^^ the trait `Eq` is not implemented for `f64` - | - = help: the following other types implement trait `Eq`: - i128 - i16 - i32 - i64 - i8 - isize - u128 - u16 - and 4 others - = note: required for `Option` to implement `Eq` -note: required by a bound in `AssertParamIsEq` - --> $SRC_DIR/core/src/cmp.rs:LL:COL - | -LL | pub struct AssertParamIsEq { - | ^^ required by this bound in `AssertParamIsEq` - = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info) - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/deriving/issue-105101.rs b/src/test/ui/deriving/issue-105101.rs deleted file mode 100644 index 1a377feb9..000000000 --- a/src/test/ui/deriving/issue-105101.rs +++ /dev/null @@ -1,9 +0,0 @@ -// compile-flags: --crate-type=lib - -#[derive(Default)] //~ ERROR multiple declared defaults -enum E { - #[default] - A, - #[default] - A, //~ ERROR defined multiple times -} diff --git a/src/test/ui/deriving/issue-105101.stderr b/src/test/ui/deriving/issue-105101.stderr deleted file mode 100644 index 0f6f67043..000000000 --- a/src/test/ui/deriving/issue-105101.stderr +++ /dev/null @@ -1,29 +0,0 @@ -error: multiple declared defaults - --> $DIR/issue-105101.rs:3:10 - | -LL | #[derive(Default)] - | ^^^^^^^ -... -LL | A, - | - first default -LL | #[default] -LL | A, - | - additional default - | - = note: only one variant can be default - = note: this error originates in the derive macro `Default` (in Nightly builds, run with -Z macro-backtrace for more info) - -error[E0428]: the name `A` is defined multiple times - --> $DIR/issue-105101.rs:8:5 - | -LL | A, - | - previous definition of the type `A` here -LL | #[default] -LL | A, - | ^ `A` redefined here - | - = note: `A` must be defined only once in the type namespace of this enum - -error: aborting due to 2 previous errors - -For more information about this error, try `rustc --explain E0428`. diff --git a/src/test/ui/deriving/issue-19358.rs b/src/test/ui/deriving/issue-19358.rs deleted file mode 100644 index 3970a4155..000000000 --- a/src/test/ui/deriving/issue-19358.rs +++ /dev/null @@ -1,23 +0,0 @@ -// run-pass - -#![allow(dead_code)] - -trait Trait { fn dummy(&self) { } } - -#[derive(Debug)] -struct Foo { - foo: T, -} - -#[derive(Debug)] -struct Bar where T: Trait { - bar: T, -} - -impl Trait for isize {} - -fn main() { - let a = Foo { foo: 12 }; - let b = Bar { bar: 12 }; - println!("{:?} {:?}", a, b); -} diff --git a/src/test/ui/deriving/issue-3935.rs b/src/test/ui/deriving/issue-3935.rs deleted file mode 100644 index e98d68e0e..000000000 --- a/src/test/ui/deriving/issue-3935.rs +++ /dev/null @@ -1,13 +0,0 @@ -// run-pass - -#[derive(PartialEq)] -struct Bike { - name: String, -} - -pub fn main() { - let town_bike = Bike { name: "schwinn".to_string() }; - let my_bike = Bike { name: "surly".to_string() }; - - assert!(town_bike != my_bike); -} diff --git a/src/test/ui/deriving/issue-58319.rs b/src/test/ui/deriving/issue-58319.rs deleted file mode 100644 index 8041bd5bb..000000000 --- a/src/test/ui/deriving/issue-58319.rs +++ /dev/null @@ -1,622 +0,0 @@ -// run-pass -fn main() {} -#[derive(Clone)] -pub struct Little; -#[derive(Clone)] -#[allow(unused_tuple_struct_fields)] -pub struct Big( - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, - Little, -); diff --git a/src/test/ui/deriving/issue-6341.rs b/src/test/ui/deriving/issue-6341.rs deleted file mode 100644 index 1be1394df..000000000 --- a/src/test/ui/deriving/issue-6341.rs +++ /dev/null @@ -1,11 +0,0 @@ -// check-pass -// pretty-expanded FIXME #23616 - -#[derive(PartialEq)] -struct A { x: usize } - -impl Drop for A { - fn drop(&mut self) {} -} - -pub fn main() {} diff --git a/src/test/ui/deriving/issue-89188-gat-hrtb.rs b/src/test/ui/deriving/issue-89188-gat-hrtb.rs deleted file mode 100644 index e8118f0c6..000000000 --- a/src/test/ui/deriving/issue-89188-gat-hrtb.rs +++ /dev/null @@ -1,37 +0,0 @@ -// check-pass - -trait CallWithShim: Sized { - type Shim<'s> - where - Self: 's; -} - -#[derive(Clone)] -struct ShimMethod(pub &'static dyn for<'s> Fn(&'s mut T::Shim<'s>)); - -trait CallWithShim2: Sized { - type Shim; -} - -struct S<'s>(&'s ()); - -#[derive(Clone)] -struct ShimMethod2(pub &'static dyn for<'s> Fn(&'s mut T::Shim>)); - -trait Trait<'s, 't, 'u> {} - -#[derive(Clone)] -struct ShimMethod3( - pub &'static dyn for<'s> Fn( - &'s mut T::Shim Fn(&'s mut T::Shim Trait<'s, 't, 'u>>)>, - ), -); - -trait Trait2 { - type As; -} - -#[derive(Clone)] -struct ShimMethod4(pub &'static dyn for<'s> Fn(&'s mut T::As)); - -pub fn main() {} -- cgit v1.2.3