Use derive_const
and rm manual StructuralEq impl
This commit is contained in:
parent
5f4e73c4a4
commit
4b217e4624
@ -536,6 +536,14 @@ impl<'tcx> MissingStabilityAnnotations<'tcx> {
|
||||
return;
|
||||
}
|
||||
|
||||
// if the const impl is derived using the `derive_const` attribute,
|
||||
// then it would be "stable" at least for the impl.
|
||||
// We gate usages of it using `feature(const_trait_impl)` anyways
|
||||
// so there is no unstable leakage
|
||||
if self.tcx.is_builtin_derive(def_id.to_def_id()) {
|
||||
return;
|
||||
}
|
||||
|
||||
let is_const = self.tcx.is_const_fn(def_id.to_def_id())
|
||||
|| self.tcx.is_const_trait_impl_raw(def_id.to_def_id());
|
||||
let is_stable = self
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
use crate::const_closure::ConstFnMutClosure;
|
||||
use crate::marker::Destruct;
|
||||
#[cfg(bootstrap)]
|
||||
use crate::marker::StructuralPartialEq;
|
||||
|
||||
use self::Ordering::*;
|
||||
@ -331,6 +332,7 @@ pub struct AssertParamIsEq<T: Eq + ?Sized> {
|
||||
/// assert_eq!(Ordering::Greater, result);
|
||||
/// ```
|
||||
#[derive(Clone, Copy, Eq, Debug, Hash)]
|
||||
#[cfg_attr(not(bootstrap), derive_const(PartialOrd, Ord, PartialEq))]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[repr(i8)]
|
||||
pub enum Ordering {
|
||||
@ -877,10 +879,12 @@ pub macro Ord($item:item) {
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[cfg(bootstrap)]
|
||||
impl StructuralPartialEq for Ordering {}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_unstable(feature = "const_cmp", issue = "92391")]
|
||||
#[cfg(bootstrap)]
|
||||
impl const PartialEq for Ordering {
|
||||
#[inline]
|
||||
fn eq(&self, other: &Self) -> bool {
|
||||
@ -890,6 +894,7 @@ impl const PartialEq for Ordering {
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_unstable(feature = "const_cmp", issue = "92391")]
|
||||
#[cfg(bootstrap)]
|
||||
impl const Ord for Ordering {
|
||||
#[inline]
|
||||
fn cmp(&self, other: &Ordering) -> Ordering {
|
||||
@ -899,6 +904,7 @@ impl const Ord for Ordering {
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_unstable(feature = "const_cmp", issue = "92391")]
|
||||
#[cfg(bootstrap)]
|
||||
impl const PartialOrd for Ordering {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &Ordering) -> Option<Ordering> {
|
||||
|
@ -185,6 +185,7 @@
|
||||
#![feature(const_refs_to_cell)]
|
||||
#![feature(decl_macro)]
|
||||
#![feature(deprecated_suggestion)]
|
||||
#![cfg_attr(not(bootstrap), feature(derive_const))]
|
||||
#![feature(doc_cfg)]
|
||||
#![feature(doc_notable_trait)]
|
||||
#![feature(rustdoc_internals)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user