Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6059387

Browse files
committedFeb 26, 2023
Add a deriving test case for a struct with a gazillion fields
1 parent c5c7d2b commit 6059387

File tree

2 files changed

+185
-0
lines changed

2 files changed

+185
-0
lines changed
 

‎tests/ui/deriving/deriving-all-codegen.rs

+3
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,6 @@ pub union Union {
163163
pub u: u32,
164164
pub i: i32,
165165
}
166+
167+
#[derive(PartialEq, Eq, PartialOrd, Ord)]
168+
pub struct TooLongForTuple(u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8);

‎tests/ui/deriving/deriving-all-codegen.stdout

+182
Original file line numberDiff line numberDiff line change
@@ -1444,3 +1444,185 @@ impl ::core::clone::Clone for Union {
14441444
}
14451445
#[automatically_derived]
14461446
impl ::core::marker::Copy for Union { }
1447+
1448+
pub struct TooLongForTuple(u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8,
1449+
u8, u8);
1450+
#[automatically_derived]
1451+
impl ::core::marker::StructuralPartialEq for TooLongForTuple { }
1452+
#[automatically_derived]
1453+
impl ::core::cmp::PartialEq for TooLongForTuple {
1454+
#[inline]
1455+
fn eq(&self, other: &TooLongForTuple) -> bool {
1456+
self.0 == other.0 && self.1 == other.1 && self.2 == other.2 &&
1457+
self.3 == other.3 && self.4 == other.4 && self.5 == other.5
1458+
&& self.6 == other.6 && self.7 == other.7 &&
1459+
self.8 == other.8 && self.9 == other.9 &&
1460+
self.10 == other.10 && self.11 == other.11 &&
1461+
self.12 == other.12 && self.13 == other.13 &&
1462+
self.14 == other.14
1463+
}
1464+
}
1465+
#[automatically_derived]
1466+
impl ::core::marker::StructuralEq for TooLongForTuple { }
1467+
#[automatically_derived]
1468+
impl ::core::cmp::Eq for TooLongForTuple {
1469+
#[inline]
1470+
#[doc(hidden)]
1471+
#[no_coverage]
1472+
fn assert_receiver_is_total_eq(&self) -> () {
1473+
let _: ::core::cmp::AssertParamIsEq<u8>;
1474+
}
1475+
}
1476+
#[automatically_derived]
1477+
impl ::core::cmp::PartialOrd for TooLongForTuple {
1478+
#[inline]
1479+
fn partial_cmp(&self, other: &TooLongForTuple)
1480+
-> ::core::option::Option<::core::cmp::Ordering> {
1481+
match ::core::cmp::PartialOrd::partial_cmp(&self.0, &other.0) {
1482+
::core::option::Option::Some(::core::cmp::Ordering::Equal) =>
1483+
match ::core::cmp::PartialOrd::partial_cmp(&self.1, &other.1)
1484+
{
1485+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1486+
=>
1487+
match ::core::cmp::PartialOrd::partial_cmp(&self.2,
1488+
&other.2) {
1489+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1490+
=>
1491+
match ::core::cmp::PartialOrd::partial_cmp(&self.3,
1492+
&other.3) {
1493+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1494+
=>
1495+
match ::core::cmp::PartialOrd::partial_cmp(&self.4,
1496+
&other.4) {
1497+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1498+
=>
1499+
match ::core::cmp::PartialOrd::partial_cmp(&self.5,
1500+
&other.5) {
1501+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1502+
=>
1503+
match ::core::cmp::PartialOrd::partial_cmp(&self.6,
1504+
&other.6) {
1505+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1506+
=>
1507+
match ::core::cmp::PartialOrd::partial_cmp(&self.7,
1508+
&other.7) {
1509+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1510+
=>
1511+
match ::core::cmp::PartialOrd::partial_cmp(&self.8,
1512+
&other.8) {
1513+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1514+
=>
1515+
match ::core::cmp::PartialOrd::partial_cmp(&self.9,
1516+
&other.9) {
1517+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1518+
=>
1519+
match ::core::cmp::PartialOrd::partial_cmp(&self.10,
1520+
&other.10) {
1521+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1522+
=>
1523+
match ::core::cmp::PartialOrd::partial_cmp(&self.11,
1524+
&other.11) {
1525+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1526+
=>
1527+
match ::core::cmp::PartialOrd::partial_cmp(&self.12,
1528+
&other.12) {
1529+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1530+
=>
1531+
match ::core::cmp::PartialOrd::partial_cmp(&self.13,
1532+
&other.13) {
1533+
::core::option::Option::Some(::core::cmp::Ordering::Equal)
1534+
=>
1535+
::core::cmp::PartialOrd::partial_cmp(&self.14, &other.14),
1536+
cmp => cmp,
1537+
},
1538+
cmp => cmp,
1539+
},
1540+
cmp => cmp,
1541+
},
1542+
cmp => cmp,
1543+
},
1544+
cmp => cmp,
1545+
},
1546+
cmp => cmp,
1547+
},
1548+
cmp => cmp,
1549+
},
1550+
cmp => cmp,
1551+
},
1552+
cmp => cmp,
1553+
},
1554+
cmp => cmp,
1555+
},
1556+
cmp => cmp,
1557+
},
1558+
cmp => cmp,
1559+
},
1560+
cmp => cmp,
1561+
},
1562+
cmp => cmp,
1563+
}
1564+
}
1565+
}
1566+
#[automatically_derived]
1567+
impl ::core::cmp::Ord for TooLongForTuple {
1568+
#[inline]
1569+
fn cmp(&self, other: &TooLongForTuple) -> ::core::cmp::Ordering {
1570+
match ::core::cmp::Ord::cmp(&self.0, &other.0) {
1571+
::core::cmp::Ordering::Equal =>
1572+
match ::core::cmp::Ord::cmp(&self.1, &other.1) {
1573+
::core::cmp::Ordering::Equal =>
1574+
match ::core::cmp::Ord::cmp(&self.2, &other.2) {
1575+
::core::cmp::Ordering::Equal =>
1576+
match ::core::cmp::Ord::cmp(&self.3, &other.3) {
1577+
::core::cmp::Ordering::Equal =>
1578+
match ::core::cmp::Ord::cmp(&self.4, &other.4) {
1579+
::core::cmp::Ordering::Equal =>
1580+
match ::core::cmp::Ord::cmp(&self.5, &other.5) {
1581+
::core::cmp::Ordering::Equal =>
1582+
match ::core::cmp::Ord::cmp(&self.6, &other.6) {
1583+
::core::cmp::Ordering::Equal =>
1584+
match ::core::cmp::Ord::cmp(&self.7, &other.7) {
1585+
::core::cmp::Ordering::Equal =>
1586+
match ::core::cmp::Ord::cmp(&self.8, &other.8) {
1587+
::core::cmp::Ordering::Equal =>
1588+
match ::core::cmp::Ord::cmp(&self.9, &other.9) {
1589+
::core::cmp::Ordering::Equal =>
1590+
match ::core::cmp::Ord::cmp(&self.10, &other.10) {
1591+
::core::cmp::Ordering::Equal =>
1592+
match ::core::cmp::Ord::cmp(&self.11, &other.11) {
1593+
::core::cmp::Ordering::Equal =>
1594+
match ::core::cmp::Ord::cmp(&self.12, &other.12) {
1595+
::core::cmp::Ordering::Equal =>
1596+
match ::core::cmp::Ord::cmp(&self.13, &other.13) {
1597+
::core::cmp::Ordering::Equal =>
1598+
::core::cmp::Ord::cmp(&self.14, &other.14),
1599+
cmp => cmp,
1600+
},
1601+
cmp => cmp,
1602+
},
1603+
cmp => cmp,
1604+
},
1605+
cmp => cmp,
1606+
},
1607+
cmp => cmp,
1608+
},
1609+
cmp => cmp,
1610+
},
1611+
cmp => cmp,
1612+
},
1613+
cmp => cmp,
1614+
},
1615+
cmp => cmp,
1616+
},
1617+
cmp => cmp,
1618+
},
1619+
cmp => cmp,
1620+
},
1621+
cmp => cmp,
1622+
},
1623+
cmp => cmp,
1624+
},
1625+
cmp => cmp,
1626+
}
1627+
}
1628+
}

0 commit comments

Comments
 (0)
Please sign in to comment.