Struct dprint_swc_ecma_ast_view::Ident [−][src]
pub struct Ident<'a> {
pub inner: &'a Ident,
// some fields omitted
}
Expand description
A complete identifier with span.
Identifier of swc consists of two parts. The first one is symbol, which is stored using an interned string, [JsWord] . The second one is SyntaxContext, which can be used to distinguish identifier with same symbol.
Let me explain this with an example.
let a = 5
{
let a = 3;
}
In the code above, there are two variables with the symbol a.
Other compilers typically uses type like Scope
, and store them nested, but
in rust, type like Scope
requires [Arc<Mutexfoo#1
For the example above, after applying resolver pass, it becomes.
let a#1 = 5
{
let a#2 = 3;
}
Thanks to the tag
we attached, we can now distinguish them.
([JsWord], SyntaxContext)
This can be used to store all variables in a module to single hash map.
Fields
inner: &'a Ident
Implementations
Trait Implementations
fn ancestors(&self) -> AncestorIterator<'a>ⓘNotable traits for AncestorIterator<'a>impl<'a> Iterator for AncestorIterator<'a> type Item = Node<'a>;
impl<'a> Iterator for AncestorIterator<'a> type Item = Node<'a>;
Gets the previous siblings in the order they appear in the file.
Gets the next siblings in the order they appear in the file.
fn leading_comments(&self) -> CommentsIterator<'a>ⓘNotable traits for CommentsIterator<'a>impl<'a> Iterator for CommentsIterator<'a> type Item = &'a Comment;
impl<'a> Iterator for CommentsIterator<'a> type Item = &'a Comment;
fn trailing_comments(&self) -> CommentsIterator<'a>ⓘNotable traits for CommentsIterator<'a>impl<'a> Iterator for CommentsIterator<'a> type Item = &'a Comment;
impl<'a> Iterator for CommentsIterator<'a> type Item = &'a Comment;
Gets the root node if the view was created from a Module; otherwise panics.
Gets the root node if the view was created from a Script; otherwise panics.
Gets the previous tokens in the order they appear in the file.
Gets the next tokens in the order they appear in the file.
Auto Trait Implementations
impl<'a> !RefUnwindSafe for Ident<'a>
impl<'a> !UnwindSafe for Ident<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more