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:
Chayim Refael Friedman 2025-07-09 17:21:45 +03:00
parent 3816d0ae53
commit edb804a100
4 changed files with 36 additions and 41 deletions

View File

@ -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;
"#]],
)

View File

@ -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#
"#]],
);
}

View File

@ -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#&#0: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#&#0: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#"#]],
);
}

View File

@ -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 {