Skip to content

Commit a42e50e

Browse files
committed
Add a fieldless enum with one variant to deriving-all-codegen.rs.
Because the generated code is different to fieldless enum with multiple variants.
1 parent 1bfe5f1 commit a42e50e

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

src/test/ui/deriving/deriving-all-codegen.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ enum Enum1 {
6262
Single { x: u32 }
6363
}
6464

65+
// A C-like, fieldless enum with a single variant.
66+
#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
67+
enum Fieldless1 {
68+
#[default]
69+
A,
70+
}
71+
6572
// A C-like, fieldless enum.
6673
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
6774
enum Fieldless {

src/test/ui/deriving/deriving-all-codegen.stdout

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,80 @@ impl ::core::cmp::Ord for Enum1 {
759759
}
760760
}
761761

762+
// A C-like, fieldless enum with a single variant.
763+
enum Fieldless1 {
764+
765+
#[default]
766+
A,
767+
}
768+
#[automatically_derived]
769+
#[allow(unused_qualifications)]
770+
impl ::core::clone::Clone for Fieldless1 {
771+
#[inline]
772+
fn clone(&self) -> Fieldless1 {
773+
match &*self { &Fieldless1::A => Fieldless1::A, }
774+
}
775+
}
776+
#[automatically_derived]
777+
#[allow(unused_qualifications)]
778+
impl ::core::fmt::Debug for Fieldless1 {
779+
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
780+
match &*self {
781+
&Fieldless1::A => ::core::fmt::Formatter::write_str(f, "A"),
782+
}
783+
}
784+
}
785+
#[automatically_derived]
786+
#[allow(unused_qualifications)]
787+
impl ::core::default::Default for Fieldless1 {
788+
#[inline]
789+
fn default() -> Fieldless1 { Self::A }
790+
}
791+
#[automatically_derived]
792+
#[allow(unused_qualifications)]
793+
impl ::core::hash::Hash for Fieldless1 {
794+
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
795+
match &*self { _ => {} }
796+
}
797+
}
798+
impl ::core::marker::StructuralPartialEq for Fieldless1 {}
799+
#[automatically_derived]
800+
#[allow(unused_qualifications)]
801+
impl ::core::cmp::PartialEq for Fieldless1 {
802+
#[inline]
803+
fn eq(&self, other: &Fieldless1) -> bool {
804+
match (&*self, &*other) { _ => true, }
805+
}
806+
}
807+
impl ::core::marker::StructuralEq for Fieldless1 {}
808+
#[automatically_derived]
809+
#[allow(unused_qualifications)]
810+
impl ::core::cmp::Eq for Fieldless1 {
811+
#[inline]
812+
#[doc(hidden)]
813+
#[no_coverage]
814+
fn assert_receiver_is_total_eq(&self) -> () {}
815+
}
816+
#[automatically_derived]
817+
#[allow(unused_qualifications)]
818+
impl ::core::cmp::PartialOrd for Fieldless1 {
819+
#[inline]
820+
fn partial_cmp(&self, other: &Fieldless1)
821+
-> ::core::option::Option<::core::cmp::Ordering> {
822+
match (&*self, &*other) {
823+
_ => ::core::option::Option::Some(::core::cmp::Ordering::Equal),
824+
}
825+
}
826+
}
827+
#[automatically_derived]
828+
#[allow(unused_qualifications)]
829+
impl ::core::cmp::Ord for Fieldless1 {
830+
#[inline]
831+
fn cmp(&self, other: &Fieldless1) -> ::core::cmp::Ordering {
832+
match (&*self, &*other) { _ => ::core::cmp::Ordering::Equal, }
833+
}
834+
}
835+
762836
// A C-like, fieldless enum.
763837
enum Fieldless {
764838

0 commit comments

Comments
 (0)