Skip to content

Commit

Permalink
Replace no_ord_impl with orderable.
Browse files Browse the repository at this point in the history
Similar to the previous commit, this replaces `newtype_index`'s opt-out
`no_ord_impl` attribute with the opt-in `orderable` attribute.
  • Loading branch information
nnethercote committed Nov 21, 2023
1 parent f608a80 commit 587a542
Show file tree
Hide file tree
Showing 28 changed files with 43 additions and 4 deletions.
1 change: 1 addition & 0 deletions compiler/rustc_ast/src/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2574,6 +2574,7 @@ pub enum AttrStyle {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "AttrId({})"]
pub struct AttrId {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_ast/src/node_id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ rustc_index::newtype_index! {
///
/// [`DefId`]: rustc_span::def_id::DefId
#[encodable]
#[orderable]
#[debug_format = "NodeId({})"]
pub struct NodeId {
/// The [`NodeId`] used to represent the root of the crate.
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_borrowck/src/constraints/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ rustc_index::newtype_index! {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "ConstraintSccIndex({})"]
pub struct ConstraintSccIndex {}
}
1 change: 1 addition & 0 deletions compiler/rustc_borrowck/src/dataflow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ impl_visitable! {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "bw{}"]
pub struct BorrowIndex {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_borrowck/src/location.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ pub struct LocationTable {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "LocationIndex({})"]
pub struct LocationIndex {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_borrowck/src/region_infer/values.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ impl RegionValueElements {
rustc_index::newtype_index! {
/// A single integer representing a `Location` in the MIR control-flow
/// graph. Constructed efficiently from `RegionValueElements`.
#[orderable]
#[debug_format = "PointIndex({})"]
pub struct PointIndex {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_data_structures/src/graph/dominators/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ struct PreOrderFrame<Iter> {
}

rustc_index::newtype_index! {
#[orderable]
struct PreorderIndex {}
}

Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_hir/src/hir_id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ rustc_index::newtype_index! {
/// tree or hash map.
#[derive(HashStable_Generic)]
#[encodable]
#[orderable]
pub struct ItemLocalId {}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ impl<'tcx> InherentOverlapChecker<'tcx> {
// entire graph when there are many connected regions.

rustc_index::newtype_index! {
#[orderable]
pub struct RegionId {}
}

Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_hir_typeck/src/fn_ctxt/arg_matrix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ use rustc_middle::ty::error::TypeError;
use std::cmp;

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "ExpectedIdx({})"]
pub(crate) struct ExpectedIdx {}
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "ProvidedIdx({})"]
pub(crate) struct ProvidedIdx {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_index/src/vec/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
use crate as rustc_index;

crate::newtype_index! {
#[orderable]
#[max = 0xFFFF_FFFA]
struct MyIdx {}
}
Expand Down
6 changes: 3 additions & 3 deletions compiler/rustc_index_macros/src/newtype.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ impl Parse for Newtype {
let mut max = None;
let mut consts = Vec::new();
let mut encodable = false;
let mut ord = true;
let mut ord = false;
let mut gate_rustc_only = quote! {};
let mut gate_rustc_only_cfg = quote! { all() };

Expand All @@ -38,8 +38,8 @@ impl Parse for Newtype {
encodable = true;
false
}
"no_ord_impl" => {
ord = false;
"orderable" => {
ord = true;
false
}
"max" => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,11 +341,13 @@ impl<'tcx> SccUniverse<'tcx> {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "LeakCheckNode({})"]
struct LeakCheckNode {}
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "LeakCheckScc({})"]
struct LeakCheckScc {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_middle/src/middle/region.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ rustc_index::newtype_index! {
/// and thus does not include EXPR_2, but covers the `...`.
#[derive(HashStable)]
#[encodable]
#[orderable]
pub struct FirstStatementIndex {}
}

Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_middle/src/mir/coverage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ rustc_index::newtype_index! {
/// to use a larger representation on the Rust side.
#[derive(HashStable)]
#[encodable]
#[orderable]
#[max = 0xFFFF_FFFF]
#[debug_format = "CounterId({})"]
pub struct CounterId {}
Expand All @@ -39,6 +40,7 @@ rustc_index::newtype_index! {
/// to use a larger representation on the Rust side.
#[derive(HashStable)]
#[encodable]
#[orderable]
#[max = 0xFFFF_FFFF]
#[debug_format = "ExpressionId({})"]
pub struct ExpressionId {}
Expand Down
3 changes: 3 additions & 0 deletions compiler/rustc_middle/src/mir/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,7 @@ impl SourceInfo {
rustc_index::newtype_index! {
#[derive(HashStable)]
#[encodable]
#[orderable]
#[debug_format = "_{}"]
pub struct Local {
const RETURN_PLACE = 0;
Expand Down Expand Up @@ -1173,6 +1174,7 @@ rustc_index::newtype_index! {
/// [guide-mir]: https://rustc-dev-guide.rust-lang.org/mir/
#[derive(HashStable)]
#[encodable]
#[orderable]
#[debug_format = "bb{}"]
pub struct BasicBlock {
const START_BLOCK = 0;
Expand Down Expand Up @@ -1537,6 +1539,7 @@ impl UserTypeProjection {
rustc_index::newtype_index! {
#[derive(HashStable)]
#[encodable]
#[orderable]
#[debug_format = "promoted[{}]"]
pub struct Promoted {}
}
Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_middle/src/ty/sty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1612,6 +1612,7 @@ rustc_index::newtype_index! {
/// A **region** (lifetime) **v**ariable **ID**.
#[derive(HashStable)]
#[encodable]
#[orderable]
#[debug_format = "'?{}"]
pub struct RegionVid {}
}
Expand All @@ -1625,6 +1626,7 @@ impl Atom for RegionVid {
rustc_index::newtype_index! {
#[derive(HashStable)]
#[encodable]
#[orderable]
#[debug_format = "{}"]
pub struct BoundVar {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_mir_build/src/build/scope.rs
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ pub(crate) enum BreakableTarget {
}

rustc_index::newtype_index! {
#[orderable]
struct DropIdx {}
}

Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_mir_dataflow/src/move_paths/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ use self::abs_domain::{AbstractElem, Lift};
mod abs_domain;

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "mp{}"]
pub struct MovePathIndex {}
}
Expand All @@ -25,6 +26,7 @@ impl polonius_engine::Atom for MovePathIndex {
}

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "mo{}"]
pub struct MoveOutIndex {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_mir_transform/src/coverage/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ impl graph::WithPredecessors for CoverageGraph {

rustc_index::newtype_index! {
/// A node in the control-flow graph of CoverageGraph.
#[orderable]
#[debug_format = "bcb{}"]
pub(super) struct BasicCoverageBlock {
const START_BCB = 0;
Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_span/src/def_id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ pub type StableCrateIdMap =
indexmap::IndexMap<StableCrateId, CrateNum, BuildHasherDefault<Unhasher>>;

rustc_index::newtype_index! {
#[orderable]
#[debug_format = "crate{}"]
pub struct CrateNum {}
}
Expand Down Expand Up @@ -212,6 +213,7 @@ rustc_index::newtype_index! {
/// A DefIndex is an index into the hir-map for a crate, identifying a
/// particular definition. It should really be considered an interned
/// shorthand for a particular DefPath.
#[orderable]
#[debug_format = "DefIndex({})"]
pub struct DefIndex {
/// The crate root is always assigned index 0 by the AST Map code,
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_span/src/hygiene.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ pub struct SyntaxContextData {

rustc_index::newtype_index! {
/// A unique ID associated with a macro invocation and expansion.
#[orderable]
pub struct ExpnIndex {}
}

Expand All @@ -79,7 +80,6 @@ impl fmt::Debug for ExpnId {

rustc_index::newtype_index! {
/// A unique ID associated with a macro invocation and expansion.
#[no_ord_impl]
#[debug_format = "expn{}"]
pub struct LocalExpnId {}
}
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_span/src/symbol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2018,6 +2018,7 @@ impl fmt::Display for MacroRulesNormalizedIdent {
pub struct Symbol(SymbolIndex);

rustc_index::newtype_index! {
#[orderable]
struct SymbolIndex {}
}

Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_target/src/abi/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ rustc_index::newtype_index! {
/// `f` is `FieldIdx(1)` in `VariantIdx(0)`.
#[derive(HashStable_Generic)]
#[encodable]
#[orderable]
pub struct FieldIdx {}
}

Expand All @@ -59,6 +60,7 @@ rustc_index::newtype_index! {
/// with variant index zero, aka [`FIRST_VARIANT`].
#[derive(HashStable_Generic)]
#[encodable]
#[orderable]
pub struct VariantIdx {
/// Equivalent to `VariantIdx(0)`.
const FIRST_VARIANT = 0;
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_trait_selection/src/solve/search_graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ use rustc_session::Limit;
use std::collections::hash_map::Entry;

rustc_index::newtype_index! {
#[orderable]
pub struct StackDepth {}
}

Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_type_ir/src/const_kind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ impl<I: Interner> DebugWithInfcx<I> for ConstKind<I> {
rustc_index::newtype_index! {
/// A **`const`** **v**ariable **ID**.
#[encodable]
#[orderable]
#[debug_format = "?{}c"]
#[gate_rustc_only]
pub struct ConstVid {}
Expand All @@ -110,6 +111,7 @@ rustc_index::newtype_index! {
/// where we are not correctly using the effect var for an effect param. Fallback
/// is also implemented on top of having separate effect and normal const variables.
#[encodable]
#[orderable]
#[debug_format = "?{}e"]
#[gate_rustc_only]
pub struct EffectVid {}
Expand Down
2 changes: 2 additions & 0 deletions compiler/rustc_type_ir/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ rustc_index::newtype_index! {
/// [dbi]: https://en.wikipedia.org/wiki/De_Bruijn_index
#[cfg_attr(feature = "nightly", derive(HashStable_NoContext))]
#[encodable]
#[orderable]
#[debug_format = "DebruijnIndex({})"]
#[gate_rustc_only]
pub struct DebruijnIndex {
Expand Down Expand Up @@ -295,6 +296,7 @@ rustc_index::newtype_index! {
/// use for checking generic functions.
#[cfg_attr(feature = "nightly", derive(HashStable_NoContext))]
#[encodable]
#[orderable]
#[debug_format = "U{}"]
#[gate_rustc_only]
pub struct UniverseIndex {}
Expand Down
3 changes: 3 additions & 0 deletions compiler/rustc_type_ir/src/ty_kind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@ pub struct FloatVarValue(pub FloatTy);
rustc_index::newtype_index! {
/// A **ty**pe **v**ariable **ID**.
#[encodable]
#[orderable]
#[debug_format = "?{}t"]
#[gate_rustc_only]
pub struct TyVid {}
Expand All @@ -631,6 +632,7 @@ rustc_index::newtype_index! {
rustc_index::newtype_index! {
/// An **int**egral (`u32`, `i32`, `usize`, etc.) type **v**ariable **ID**.
#[encodable]
#[orderable]
#[debug_format = "?{}i"]
#[gate_rustc_only]
pub struct IntVid {}
Expand All @@ -639,6 +641,7 @@ rustc_index::newtype_index! {
rustc_index::newtype_index! {
/// A **float**ing-point (`f32` or `f64`) type **v**ariable **ID**.
#[encodable]
#[orderable]
#[debug_format = "?{}f"]
#[gate_rustc_only]
pub struct FloatVid {}
Expand Down

0 comments on commit 587a542

Please sign in to comment.