luau_parser/types/expression/
var.rs

1use luau_lexer::prelude::Token;
2use luau_parser_derive::{Print, Range};
3
4use crate::types::TableAccess;
5
6/// Possible ways in which a variable can be referenced.
7#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord, Range, Print)]
8#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
9pub enum Var {
10    /// This [`Var`] had a syntax error.
11    #[default]
12    ERROR,
13
14    /// A simple reference to the variable.
15    ///
16    /// ```lua
17    /// local _ = foo
18    /// ```
19    Name(Token),
20
21    /// A field accessed from a table.
22    ///
23    /// ```lua
24    /// local _ = t.foo
25    /// ```
26    TableAccess(TableAccess),
27}