rune/ast/
expr_field_access.rs
1use crate::ast::prelude::*;
2
3#[test]
4#[cfg(not(miri))]
5fn ast_parse() {
6 rt::<ast::ExprFieldAccess>("foo.bar");
7 rt::<ast::ExprFieldAccess>("foo.bar::<A, B>");
8 rt::<ast::ExprFieldAccess>("foo.0.bar");
9 rt::<ast::ExprFieldAccess>("(foo.0).1");
11}
12
13#[derive(Debug, TryClone, PartialEq, Eq, ToTokens, Spanned)]
17#[non_exhaustive]
18pub struct ExprFieldAccess {
19 #[rune(iter)]
21 pub attributes: Vec<ast::Attribute>,
22 pub expr: Box<ast::Expr>,
24 pub dot: T![.],
26 pub expr_field: ExprField,
28}
29
30expr_parse!(FieldAccess, ExprFieldAccess, "field access expression");
31
32#[derive(Debug, TryClone, PartialEq, Eq, ToTokens, Spanned)]
34#[non_exhaustive]
35pub enum ExprField {
36 Path(ast::Path),
38 LitNumber(ast::LitNumber),
40}