mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-25 11:17:13 +00:00
Don't hash the SyntaxKind
in the ast id
There is no need to, it's already stored in the `kind`.
This commit is contained in:
parent
3816d0ae53
commit
edb804a100
@ -35,10 +35,10 @@ use a::{c, d::{e}};
|
||||
#![no_std]
|
||||
#![doc = " another file comment"]
|
||||
|
||||
// AstId: ExternCrate[5A82, 0]
|
||||
// AstId: ExternCrate[070B, 0]
|
||||
pub(self) extern crate self as renamed;
|
||||
|
||||
// AstId: ExternCrate[7E1C, 0]
|
||||
// AstId: ExternCrate[1EA5, 0]
|
||||
pub(in super) extern crate bli;
|
||||
|
||||
// AstId: Use[0000, 0]
|
||||
@ -78,15 +78,15 @@ extern "C" {
|
||||
// AstId: ExternBlock[0000, 0]
|
||||
extern {
|
||||
#[on_extern_type]
|
||||
// AstId: TypeAlias[9FDF, 0]
|
||||
// AstId: TypeAlias[A09C, 0]
|
||||
pub(self) type ExType;
|
||||
|
||||
#[on_extern_static]
|
||||
// AstId: Static[43C1, 0]
|
||||
// AstId: Static[D85E, 0]
|
||||
pub(self) static EX_STATIC = _;
|
||||
|
||||
#[on_extern_fn]
|
||||
// AstId: Fn[452D, 0]
|
||||
// AstId: Fn[B240, 0]
|
||||
pub(self) fn ex_fn;
|
||||
}
|
||||
"#]],
|
||||
@ -124,20 +124,20 @@ enum E {
|
||||
}
|
||||
"#,
|
||||
expect![[r#"
|
||||
// AstId: Struct[DFF3, 0]
|
||||
// AstId: Struct[ED35, 0]
|
||||
pub(self) struct Unit;
|
||||
|
||||
#[derive(Debug)]
|
||||
// AstId: Struct[C7A1, 0]
|
||||
// AstId: Struct[A47C, 0]
|
||||
pub(self) struct Struct { ... }
|
||||
|
||||
// AstId: Struct[DAC2, 0]
|
||||
// AstId: Struct[C8C9, 0]
|
||||
pub(self) struct Tuple(...);
|
||||
|
||||
// AstId: Union[2DBB, 0]
|
||||
// AstId: Union[2797, 0]
|
||||
pub(self) union Ize { ... }
|
||||
|
||||
// AstId: Enum[7FF8, 0]
|
||||
// AstId: Enum[7D23, 0]
|
||||
pub(self) enum E { ... }
|
||||
"#]],
|
||||
);
|
||||
@ -162,18 +162,18 @@ trait Tr: SuperTrait + 'lifetime {
|
||||
}
|
||||
"#,
|
||||
expect![[r#"
|
||||
// AstId: Static[B393, 0]
|
||||
// AstId: Static[F7C1, 0]
|
||||
pub static ST = _;
|
||||
|
||||
// AstId: Const[B309, 0]
|
||||
// AstId: Const[84BB, 0]
|
||||
pub(self) const _ = _;
|
||||
|
||||
#[attr]
|
||||
#[inner_attr_in_fn]
|
||||
// AstId: Fn[75E3, 0]
|
||||
// AstId: Fn[BE8F, 0]
|
||||
pub(self) fn f;
|
||||
|
||||
// AstId: Trait[2998, 0]
|
||||
// AstId: Trait[9320, 0]
|
||||
pub(self) trait Tr { ... }
|
||||
"#]],
|
||||
);
|
||||
@ -197,16 +197,16 @@ mod outline;
|
||||
expect![[r##"
|
||||
#[doc = " outer"]
|
||||
#[doc = " inner"]
|
||||
// AstId: Module[CF93, 0]
|
||||
// AstId: Module[03AE, 0]
|
||||
pub(self) mod inline {
|
||||
// AstId: Use[0000, 0]
|
||||
pub(self) use super::*;
|
||||
|
||||
// AstId: Fn[1B26, 0]
|
||||
// AstId: Fn[2A78, 0]
|
||||
pub(self) fn fn_in_module;
|
||||
}
|
||||
|
||||
// AstId: Module[8994, 0]
|
||||
// AstId: Module[C08B, 0]
|
||||
pub(self) mod outline;
|
||||
"##]],
|
||||
);
|
||||
@ -225,13 +225,13 @@ pub macro m2() {}
|
||||
m!();
|
||||
"#,
|
||||
expect![[r#"
|
||||
// AstId: MacroRules[88CE, 0]
|
||||
// AstId: MacroRules[7E68, 0]
|
||||
macro_rules! m { ... }
|
||||
|
||||
// AstId: MacroDef[DC34, 0]
|
||||
// AstId: MacroDef[1C1E, 0]
|
||||
pub macro m2 { ... }
|
||||
|
||||
// AstId: MacroCall[612F, 0], SyntaxContextId: ROOT2024, ExpandTo: Items
|
||||
// AstId: MacroCall[7E68, 0], SyntaxContextId: ROOT2024, ExpandTo: Items
|
||||
m!(...);
|
||||
"#]],
|
||||
);
|
||||
@ -244,7 +244,7 @@ fn pub_self() {
|
||||
pub(self) struct S;
|
||||
"#,
|
||||
expect![[r#"
|
||||
// AstId: Struct[42E2, 0]
|
||||
// AstId: Struct[5024, 0]
|
||||
pub(self) struct S;
|
||||
"#]],
|
||||
)
|
||||
|
@ -35,9 +35,9 @@ macro_rules! f {
|
||||
};
|
||||
}
|
||||
|
||||
struct#0:MacroRules[8C8E, 0]@58..64#14336# MyTraitMap2#0:MacroCall[D499, 0]@31..42#ROOT2024# {#0:MacroRules[8C8E, 0]@72..73#14336#
|
||||
map#0:MacroRules[8C8E, 0]@86..89#14336#:#0:MacroRules[8C8E, 0]@89..90#14336# #0:MacroRules[8C8E, 0]@89..90#14336#::#0:MacroRules[8C8E, 0]@91..93#14336#std#0:MacroRules[8C8E, 0]@93..96#14336#::#0:MacroRules[8C8E, 0]@96..98#14336#collections#0:MacroRules[8C8E, 0]@98..109#14336#::#0:MacroRules[8C8E, 0]@109..111#14336#HashSet#0:MacroRules[8C8E, 0]@111..118#14336#<#0:MacroRules[8C8E, 0]@118..119#14336#(#0:MacroRules[8C8E, 0]@119..120#14336#)#0:MacroRules[8C8E, 0]@120..121#14336#>#0:MacroRules[8C8E, 0]@121..122#14336#,#0:MacroRules[8C8E, 0]@122..123#14336#
|
||||
}#0:MacroRules[8C8E, 0]@132..133#14336#
|
||||
struct#0:MacroRules[BE8F, 0]@58..64#14336# MyTraitMap2#0:MacroCall[BE8F, 0]@31..42#ROOT2024# {#0:MacroRules[BE8F, 0]@72..73#14336#
|
||||
map#0:MacroRules[BE8F, 0]@86..89#14336#:#0:MacroRules[BE8F, 0]@89..90#14336# #0:MacroRules[BE8F, 0]@89..90#14336#::#0:MacroRules[BE8F, 0]@91..93#14336#std#0:MacroRules[BE8F, 0]@93..96#14336#::#0:MacroRules[BE8F, 0]@96..98#14336#collections#0:MacroRules[BE8F, 0]@98..109#14336#::#0:MacroRules[BE8F, 0]@109..111#14336#HashSet#0:MacroRules[BE8F, 0]@111..118#14336#<#0:MacroRules[BE8F, 0]@118..119#14336#(#0:MacroRules[BE8F, 0]@119..120#14336#)#0:MacroRules[BE8F, 0]@120..121#14336#>#0:MacroRules[BE8F, 0]@121..122#14336#,#0:MacroRules[BE8F, 0]@122..123#14336#
|
||||
}#0:MacroRules[BE8F, 0]@132..133#14336#
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
@ -75,12 +75,12 @@ macro_rules! f {
|
||||
};
|
||||
}
|
||||
|
||||
fn#0:MacroCall[D499, 0]@30..32#ROOT2024# main#0:MacroCall[D499, 0]@33..37#ROOT2024#(#0:MacroCall[D499, 0]@37..38#ROOT2024#)#0:MacroCall[D499, 0]@38..39#ROOT2024# {#0:MacroCall[D499, 0]@40..41#ROOT2024#
|
||||
1#0:MacroCall[D499, 0]@50..51#ROOT2024#;#0:MacroCall[D499, 0]@51..52#ROOT2024#
|
||||
1.0#0:MacroCall[D499, 0]@61..64#ROOT2024#;#0:MacroCall[D499, 0]@64..65#ROOT2024#
|
||||
(#0:MacroCall[D499, 0]@74..75#ROOT2024#(#0:MacroCall[D499, 0]@75..76#ROOT2024#1#0:MacroCall[D499, 0]@76..77#ROOT2024#,#0:MacroCall[D499, 0]@77..78#ROOT2024# )#0:MacroCall[D499, 0]@78..79#ROOT2024#,#0:MacroCall[D499, 0]@79..80#ROOT2024# )#0:MacroCall[D499, 0]@80..81#ROOT2024#.#0:MacroCall[D499, 0]@81..82#ROOT2024#0#0:MacroCall[D499, 0]@82..85#ROOT2024#.#0:MacroCall[D499, 0]@82..85#ROOT2024#0#0:MacroCall[D499, 0]@82..85#ROOT2024#;#0:MacroCall[D499, 0]@85..86#ROOT2024#
|
||||
let#0:MacroCall[D499, 0]@95..98#ROOT2024# x#0:MacroCall[D499, 0]@99..100#ROOT2024# =#0:MacroCall[D499, 0]@101..102#ROOT2024# 1#0:MacroCall[D499, 0]@103..104#ROOT2024#;#0:MacroCall[D499, 0]@104..105#ROOT2024#
|
||||
}#0:MacroCall[D499, 0]@110..111#ROOT2024#
|
||||
fn#0:MacroCall[BE8F, 0]@30..32#ROOT2024# main#0:MacroCall[BE8F, 0]@33..37#ROOT2024#(#0:MacroCall[BE8F, 0]@37..38#ROOT2024#)#0:MacroCall[BE8F, 0]@38..39#ROOT2024# {#0:MacroCall[BE8F, 0]@40..41#ROOT2024#
|
||||
1#0:MacroCall[BE8F, 0]@50..51#ROOT2024#;#0:MacroCall[BE8F, 0]@51..52#ROOT2024#
|
||||
1.0#0:MacroCall[BE8F, 0]@61..64#ROOT2024#;#0:MacroCall[BE8F, 0]@64..65#ROOT2024#
|
||||
(#0:MacroCall[BE8F, 0]@74..75#ROOT2024#(#0:MacroCall[BE8F, 0]@75..76#ROOT2024#1#0:MacroCall[BE8F, 0]@76..77#ROOT2024#,#0:MacroCall[BE8F, 0]@77..78#ROOT2024# )#0:MacroCall[BE8F, 0]@78..79#ROOT2024#,#0:MacroCall[BE8F, 0]@79..80#ROOT2024# )#0:MacroCall[BE8F, 0]@80..81#ROOT2024#.#0:MacroCall[BE8F, 0]@81..82#ROOT2024#0#0:MacroCall[BE8F, 0]@82..85#ROOT2024#.#0:MacroCall[BE8F, 0]@82..85#ROOT2024#0#0:MacroCall[BE8F, 0]@82..85#ROOT2024#;#0:MacroCall[BE8F, 0]@85..86#ROOT2024#
|
||||
let#0:MacroCall[BE8F, 0]@95..98#ROOT2024# x#0:MacroCall[BE8F, 0]@99..100#ROOT2024# =#0:MacroCall[BE8F, 0]@101..102#ROOT2024# 1#0:MacroCall[BE8F, 0]@103..104#ROOT2024#;#0:MacroCall[BE8F, 0]@104..105#ROOT2024#
|
||||
}#0:MacroCall[BE8F, 0]@110..111#ROOT2024#
|
||||
|
||||
|
||||
"#]],
|
||||
@ -171,7 +171,7 @@ fn main(foo: ()) {
|
||||
}
|
||||
|
||||
fn main(foo: ()) {
|
||||
/* error: unresolved macro unresolved */"helloworld!"#0:Fn[B9C7, 0]@236..321#ROOT2024#;
|
||||
/* error: unresolved macro unresolved */"helloworld!"#0:Fn[15AE, 0]@236..321#ROOT2024#;
|
||||
}
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ macro_rules! mk_struct {
|
||||
#[macro_use]
|
||||
mod foo;
|
||||
|
||||
struct#1:MacroRules[E572, 0]@59..65#14336# Foo#0:MacroCall[BDD3, 0]@32..35#ROOT2024#(#1:MacroRules[E572, 0]@70..71#14336#u32#0:MacroCall[BDD3, 0]@41..44#ROOT2024#)#1:MacroRules[E572, 0]@74..75#14336#;#1:MacroRules[E572, 0]@75..76#14336#
|
||||
struct#1:MacroRules[DB0C, 0]@59..65#14336# Foo#0:MacroCall[DB0C, 0]@32..35#ROOT2024#(#1:MacroRules[DB0C, 0]@70..71#14336#u32#0:MacroCall[DB0C, 0]@41..44#ROOT2024#)#1:MacroRules[DB0C, 0]@74..75#14336#;#1:MacroRules[DB0C, 0]@75..76#14336#
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
@ -181,9 +181,9 @@ fn foo(&self) {
|
||||
self.0. 1;
|
||||
}
|
||||
|
||||
fn#0:Fn[4D85, 0]@45..47#ROOT2024# foo#0:Fn[4D85, 0]@48..51#ROOT2024#(#0:Fn[4D85, 0]@51..52#ROOT2024#�:Fn[4D85, 0]@52..53#ROOT2024#self#0:Fn[4D85, 0]@53..57#ROOT2024# )#0:Fn[4D85, 0]@57..58#ROOT2024# {#0:Fn[4D85, 0]@59..60#ROOT2024#
|
||||
self#0:Fn[4D85, 0]@65..69#ROOT2024# .#0:Fn[4D85, 0]@69..70#ROOT2024#0#0:Fn[4D85, 0]@70..71#ROOT2024#.#0:Fn[4D85, 0]@71..72#ROOT2024#1#0:Fn[4D85, 0]@73..74#ROOT2024#;#0:Fn[4D85, 0]@74..75#ROOT2024#
|
||||
}#0:Fn[4D85, 0]@76..77#ROOT2024#"#]],
|
||||
fn#0:Fn[8A31, 0]@45..47#ROOT2024# foo#0:Fn[8A31, 0]@48..51#ROOT2024#(#0:Fn[8A31, 0]@51..52#ROOT2024#�:Fn[8A31, 0]@52..53#ROOT2024#self#0:Fn[8A31, 0]@53..57#ROOT2024# )#0:Fn[8A31, 0]@57..58#ROOT2024# {#0:Fn[8A31, 0]@59..60#ROOT2024#
|
||||
self#0:Fn[8A31, 0]@65..69#ROOT2024# .#0:Fn[8A31, 0]@69..70#ROOT2024#0#0:Fn[8A31, 0]@70..71#ROOT2024#.#0:Fn[8A31, 0]@71..72#ROOT2024#1#0:Fn[8A31, 0]@73..74#ROOT2024#;#0:Fn[8A31, 0]@74..75#ROOT2024#
|
||||
}#0:Fn[8A31, 0]@76..77#ROOT2024#"#]],
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ use std::{
|
||||
use la_arena::{Arena, Idx, RawIdx};
|
||||
use rustc_hash::{FxBuildHasher, FxHashMap};
|
||||
use syntax::{
|
||||
AstNode, AstPtr, SyntaxKind, SyntaxNode, SyntaxNodePtr,
|
||||
AstNode, AstPtr, SyntaxNode, SyntaxNodePtr,
|
||||
ast::{self, HasName},
|
||||
match_ast,
|
||||
};
|
||||
@ -278,7 +278,6 @@ impl<N> FileAstId<N> {
|
||||
|
||||
#[derive(Hash)]
|
||||
struct ErasedHasNameFileAstId<'a> {
|
||||
kind: SyntaxKind,
|
||||
name: &'a str,
|
||||
}
|
||||
|
||||
@ -433,7 +432,6 @@ macro_rules! register_has_name_ast_id {
|
||||
)+
|
||||
|
||||
fn has_name_ast_id(node: &SyntaxNode, index_map: &mut ErasedAstIdNextIndexMap) -> Option<ErasedFileAstId> {
|
||||
let kind = node.kind();
|
||||
match_ast! {
|
||||
match node {
|
||||
$(
|
||||
@ -441,7 +439,6 @@ macro_rules! register_has_name_ast_id {
|
||||
let name = node.$name_method();
|
||||
let name = name.as_ref().map_or("", |it| it.text_non_mutable());
|
||||
let result = ErasedHasNameFileAstId {
|
||||
kind,
|
||||
name,
|
||||
};
|
||||
Some(index_map.new_id(ErasedFileAstIdKind::$ident, result))
|
||||
@ -483,7 +480,6 @@ macro_rules! register_assoc_item_ast_id {
|
||||
index_map: &mut ErasedAstIdNextIndexMap,
|
||||
parent: Option<&ErasedFileAstId>,
|
||||
) -> Option<ErasedFileAstId> {
|
||||
let kind = node.kind();
|
||||
match_ast! {
|
||||
match node {
|
||||
$(
|
||||
@ -491,7 +487,6 @@ macro_rules! register_assoc_item_ast_id {
|
||||
let name = $name_callback(node);
|
||||
let name = name.as_ref().map_or("", |it| it.text_non_mutable());
|
||||
let properties = ErasedHasNameFileAstId {
|
||||
kind,
|
||||
name,
|
||||
};
|
||||
let result = ErasedAssocItemFileAstId {
|
||||
|
Loading…
x
Reference in New Issue
Block a user