//! > Test logical AND and OR
//! > test_runner_name
test_partial_parser_tree(expect_diagnostics: false)
//! > cairo_code
fn foo(a: bool, b: bool, c: bool, d: bool) {
a && b || c && d
}
//! > top_level_kind
ExprBinary
//! > ignored_kinds
//! > expected_diagnostics
//! > expected_tree
└── Top level kind: ExprBinary
├── lhs (kind: ExprBinary)
│ ├── lhs (kind: ExprPath)
│ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ └── segments (kind: ExprPathInner)
│ │ └── item #0 (kind: PathSegmentSimple)
│ │ └── ident (kind: TokenIdentifier): 'a'
│ ├── op (kind: TokenAndAnd): '&&'
│ └── rhs (kind: ExprPath)
│ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ └── segments (kind: ExprPathInner)
│ └── item #0 (kind: PathSegmentSimple)
│ └── ident (kind: TokenIdentifier): 'b'
├── op (kind: TokenOrOr): '||'
└── rhs (kind: ExprBinary)
├── lhs (kind: ExprPath)
│ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ └── segments (kind: ExprPathInner)
│ └── item #0 (kind: PathSegmentSimple)
│ └── ident (kind: TokenIdentifier): 'c'
├── op (kind: TokenAndAnd): '&&'
└── rhs (kind: ExprPath)
├── dollar (kind: OptionTerminalDollarEmpty) []
└── segments (kind: ExprPathInner)
└── item #0 (kind: PathSegmentSimple)
└── ident (kind: TokenIdentifier): 'd'
//! > ==========================================================================
//! > Test reference type param with bitwise AND expression
//! > test_runner_name
test_partial_parser_tree(expect_diagnostics: false)
//! > cairo_code
fn foo(a: &u32, b: u32) {
a & &b
}
//! > top_level_kind
ExprBinary
//! > ignored_kinds
//! > expected_diagnostics
//! > expected_tree
└── Top level kind: ExprBinary
├── lhs (kind: ExprPath)
│ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ └── segments (kind: ExprPathInner)
│ └── item #0 (kind: PathSegmentSimple)
│ └── ident (kind: TokenIdentifier): 'a'
├── op (kind: TokenAnd): '&'
└── rhs (kind: ExprUnary)
├── op (kind: TokenAnd): '&'
└── expr (kind: ExprPath)
├── dollar (kind: OptionTerminalDollarEmpty) []
└── segments (kind: ExprPathInner)
└── item #0 (kind: PathSegmentSimple)
└── ident (kind: TokenIdentifier): 'b'