File tree 1 file changed +14
-10
lines changed
1 file changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -181,19 +181,23 @@ impl Span {
181
181
#[ inline]
182
182
pub fn ctxt ( self ) -> SyntaxContext {
183
183
let ctxt_or_tag = self . ctxt_or_tag as u32 ;
184
- if ctxt_or_tag <= MAX_CTXT {
185
- if self . len_or_tag == LEN_TAG || self . len_or_tag & PARENT_MASK == 0 {
186
- // Inline format or interned format with inline ctxt.
187
- SyntaxContext :: from_u32 ( ctxt_or_tag)
184
+ // Check for interned format.
185
+ if self . len_or_tag == LEN_TAG {
186
+ if ctxt_or_tag == CTXT_TAG {
187
+ // Fully interned format.
188
+ let index = self . base_or_index ;
189
+ with_span_interner ( |interner| interner. spans [ index as usize ] . ctxt )
188
190
} else {
189
- // Inline format or interned format with inline parent.
190
- // We know that the SyntaxContext is root.
191
- SyntaxContext :: root ( )
191
+ // Interned format with inline ctxt.
192
+ SyntaxContext :: from_u32 ( ctxt_or_tag)
192
193
}
194
+ } else if self . len_or_tag & PARENT_MASK == 0 {
195
+ // Inline format with inline ctxt.
196
+ SyntaxContext :: from_u32 ( ctxt_or_tag)
193
197
} else {
194
- // Interned format.
195
- let index = self . base_or_index ;
196
- with_span_interner ( |interner| interner . spans [ index as usize ] . ctxt )
198
+ // Inline format with inline parent .
199
+ // We know that the SyntaxContext is root.
200
+ SyntaxContext :: root ( )
197
201
}
198
202
}
199
203
}
You can’t perform that action at this time.
0 commit comments