pub struct NodeMetadata<'gc> {
pub range: Cell<SMRange>,
pub debug_loc: Cell<SMLoc>,
pub parens: Cell<u8>,
pub id: Cell<NodeId>,
/* private fields */
}Expand description
Metadata common to all AST nodes.
Stored inside Node and must not be constructed directly by users.
range/parens/debug_loc are attributes → Cell.
Fields§
§range: Cell<SMRange>The node’s source range, mirroring ESTree.h Node::sourceRange_.
debug_loc: Cell<SMLoc>Debug location, mirroring ESTree.h Node debug loc set by JSParserImpl::setLocation. Defaults to range start.
parens: Cell<u8>0, 1, or 2 (meaning “2 or more”), mirroring ESTree.h Node::parens_.
id: Cell<NodeId>Identity of the arena slot this metadata is (or will be) stored in.
UNASSIGNED until Context::alloc stamps a fresh id; belongs to the
slot’s occupant, not to this metadata value across rebuilds.
Implementations§
Source§impl<'gc> NodeMetadata<'gc>
impl<'gc> NodeMetadata<'gc>
Trait Implementations§
Auto Trait Implementations§
impl<'gc> !Freeze for NodeMetadata<'gc>
impl<'gc> !RefUnwindSafe for NodeMetadata<'gc>
impl<'gc> !Send for NodeMetadata<'gc>
impl<'gc> !Sync for NodeMetadata<'gc>
impl<'gc> !UnwindSafe for NodeMetadata<'gc>
impl<'gc> Unpin for NodeMetadata<'gc>
impl<'gc> UnsafeUnpin for NodeMetadata<'gc>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more