DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 1, }, name: Identifier { position: 10, value: "foo", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 13, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 14, }, return_type: FunctionLikeReturnTypeDefinition { colon: 15, type_definition: Void( Keyword { value: "void", position: 17, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 22, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ObjectOperation( NullsafeMethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 28, name: "$a", }, ), question_arrow: 30, method: Identifier { position: 33, value: "b", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 34, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 35, name: "$c", }, ), }, ], commas: [], }, right_parenthesis: 37, }, }, ), semicolon: 38, }, ), ], right_brace: 40, }, }, ), ], eof: 42, }