Auto merge of #98840 - cjgillot:span-inline-ctxt, r=wesleywiser
Inline SyntaxContext in both encoded span representation. The current interned representation for spans does not use the `ctxt_or_zero: u16` field. This PR proposes to use this field to store the `SyntaxContext` of the interned span instead. When `ctxt_or_zero` and the interned span's `ctxt` don't match, the inlined one takes precedence. This allows to implement `Span::ctxt` and `Span::with_ctxt` with much less probability to access the interner. Those functions are used a lot for hygiene, so this may be worth it.
This commit is contained in:
commit
e7119a0300
2 changed files with 31 additions and 14 deletions
|
@ -533,9 +533,6 @@ impl Span {
|
|||
self.data().with_hi(hi)
|
||||
}
|
||||
#[inline]
|
||||
pub fn ctxt(self) -> SyntaxContext {
|
||||
self.data_untracked().ctxt
|
||||
}
|
||||
pub fn eq_ctxt(self, other: Span) -> bool {
|
||||
self.data_untracked().ctxt == other.data_untracked().ctxt
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue