2e88c36ebc
This PR removes random remaining `Ident`s outside of libsyntax and performs general cleanup In particular, interfaces of `Name` and `Ident` are tidied up, `Name`s and `Ident`s being small `Copy` aggregates are always passed to functions by value, and `Ident`s are never used as keys in maps, because `Ident` comparisons are tricky. Although this PR closes https://github.com/rust-lang/rust/issues/6993 there's still work related to it: - `Name` can be made `NonZero` to compress numerous `Option<Name>`s and `Option<Ident>`s but it requires const unsafe functions. - Implementation of `PartialEq` on `Ident` should be eliminated and replaced with explicit hygienic, non-hygienic or member-wise comparisons. - Finally, large parts of AST can potentially be converted to `Name`s in the same way as HIR to clearly separate identifiers used in hygienic and non-hygienic contexts. r? @nrc |
||
---|---|---|
.. | ||
deriving | ||
tt | ||
asm.rs | ||
base.rs | ||
build.rs | ||
cfg.rs | ||
concat_idents.rs | ||
concat.rs | ||
env.rs | ||
expand.rs | ||
format.rs | ||
log_syntax.rs | ||
mtwt.rs | ||
pushpop_safe.rs | ||
quote.rs | ||
source_util.rs | ||
trace_macros.rs |