[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Function( FunctionStatement { comments: CommentGroup { comments: [], }, attributes: [], function: Span { line: 3, column: 1, position: 7, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 3, column: 10, position: 16, }, value: "bar", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 3, column: 13, position: 19, }, parameters: CommaSeparated { inner: [ FunctionParameter { comments: CommentGroup { comments: [], }, name: SimpleVariable { span: Span { line: 4, column: 13, position: 33, }, name: "$i", }, attributes: [], data_type: Some( Union( [ Named( Span { line: 4, column: 5, position: 25, }, "A", ), Intersection( [ Named( Span { line: 4, column: 8, position: 28, }, "B", ), Named( Span { line: 4, column: 10, position: 30, }, "C", ), ], ), ], ), ), ellipsis: None, default: None, ampersand: None, }, ], commas: [], }, right_parenthesis: Span { line: 5, column: 1, position: 36, }, }, return_type: Some( ReturnType { colon: Span { line: 5, column: 2, position: 37, }, data_type: Union( [ Intersection( [ Named( Span { line: 5, column: 5, position: 40, }, "B", ), Named( Span { line: 5, column: 7, position: 42, }, "C", ), ], ), Named( Span { line: 5, column: 10, position: 45, }, "A", ), ], ), }, ), body: FunctionBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 5, column: 12, position: 47, }, statements: [ Return( ReturnStatement { return: Span { line: 6, column: 5, position: 53, }, value: Some( Variable( SimpleVariable( SimpleVariable { span: Span { line: 6, column: 12, position: 60, }, name: "$i", }, ), ), ), ending: Semicolon( Span { line: 6, column: 14, position: 62, }, ), }, ), ], right_brace: Span { line: 7, column: 1, position: 64, }, }, }, ), ]