rustc_expand: Switch FxHashMap to FxIndexMap where iteration is used

This commit is contained in:
Niklas Jonsson 2022-07-13 22:23:55 +02:00
parent e6c43cf8b9
commit b47a934194
3 changed files with 5 additions and 6 deletions

View File

@ -8,7 +8,7 @@
use rustc_ast::visit::{AssocCtxt, Visitor}; use rustc_ast::visit::{AssocCtxt, Visitor};
use rustc_ast::{self as ast, Attribute, HasAttrs, Item, NodeId, PatKind}; use rustc_ast::{self as ast, Attribute, HasAttrs, Item, NodeId, PatKind};
use rustc_attr::{self as attr, Deprecation, Stability}; use rustc_attr::{self as attr, Deprecation, Stability};
use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::fx::{FxHashSet, FxIndexMap};
use rustc_data_structures::sync::{self, Lrc}; use rustc_data_structures::sync::{self, Lrc};
use rustc_errors::{Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan, PResult}; use rustc_errors::{Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan, PResult};
use rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT; use rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT;
@ -985,7 +985,7 @@ pub struct ExtCtxt<'a> {
/// Error recovery mode entered when expansion is stuck /// Error recovery mode entered when expansion is stuck
/// (or during eager expansion, but that's a hack). /// (or during eager expansion, but that's a hack).
pub force_mode: bool, pub force_mode: bool,
pub expansions: FxHashMap<Span, Vec<String>>, pub expansions: FxIndexMap<Span, Vec<String>>,
/// Used for running pre-expansion lints on freshly loaded modules. /// Used for running pre-expansion lints on freshly loaded modules.
pub(super) lint_store: LintStoreExpandDyn<'a>, pub(super) lint_store: LintStoreExpandDyn<'a>,
/// Used for storing lints generated during expansion, like `NAMED_ARGUMENTS_USED_POSITIONALLY` /// Used for storing lints generated during expansion, like `NAMED_ARGUMENTS_USED_POSITIONALLY`
@ -1020,7 +1020,7 @@ pub fn new(
is_trailing_mac: false, is_trailing_mac: false,
}, },
force_mode: false, force_mode: false,
expansions: FxHashMap::default(), expansions: FxIndexMap::default(),
expanded_inert_attrs: MarkedAttrs::new(), expanded_inert_attrs: MarkedAttrs::new(),
buffered_early_lint: vec![], buffered_early_lint: vec![],
} }

View File

@ -1,4 +1,3 @@
#![allow(rustc::potential_query_instability)]
#![feature(array_windows)] #![feature(array_windows)]
#![feature(associated_type_bounds)] #![feature(associated_type_bounds)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]

View File

@ -13,7 +13,7 @@
use rustc_ast::{NodeId, DUMMY_NODE_ID}; use rustc_ast::{NodeId, DUMMY_NODE_ID};
use rustc_ast_pretty::pprust; use rustc_ast_pretty::pprust;
use rustc_attr::{self as attr, TransparencyError}; use rustc_attr::{self as attr, TransparencyError};
use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::fx::{FxHashMap, FxIndexMap};
use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder, ErrorGuaranteed}; use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder, ErrorGuaranteed};
use rustc_feature::Features; use rustc_feature::Features;
use rustc_lint_defs::builtin::{ use rustc_lint_defs::builtin::{
@ -198,7 +198,7 @@ fn macro_rules_dummy_expander<'cx>(
DummyResult::any(span) DummyResult::any(span)
} }
fn trace_macros_note(cx_expansions: &mut FxHashMap<Span, Vec<String>>, sp: Span, message: String) { fn trace_macros_note(cx_expansions: &mut FxIndexMap<Span, Vec<String>>, sp: Span, message: String) {
let sp = sp.macro_backtrace().last().map_or(sp, |trace| trace.call_site); let sp = sp.macro_backtrace().last().map_or(sp, |trace| trace.call_site);
cx_expansions.entry(sp).or_default().push(message); cx_expansions.entry(sp).or_default().push(message);
} }