[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Class( ClassStatement { attributes: [], modifiers: ClassModifierGroup { modifiers: [], }, class: Span { line: 3, column: 1, position: 8, }, name: SimpleIdentifier { span: Span { line: 3, column: 7, position: 14, }, value: "foo", }, extends: None, implements: None, body: ClassBody { left_brace: Span { line: 3, column: 11, position: 18, }, members: [ ConcreteConstructor( ConcreteConstructor { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 4, column: 5, position: 24, }, ), ], }, function: Span { line: 4, column: 12, position: 31, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 4, column: 21, position: 40, }, value: "__construct", }, parameters: ConstructorParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 4, column: 32, position: 51, }, parameters: CommaSeparated { inner: [ ConstructorParameter { attributes: [], comments: CommentGroup { comments: [], }, ampersand: None, name: SimpleVariable { span: Span { line: 5, column: 23, position: 75, }, name: "$a", }, data_type: Some( String( Span { line: 5, column: 16, position: 68, }, ), ), ellipsis: None, default: None, modifiers: PromotedPropertyModifierGroup { modifiers: [ Public( Span { line: 5, column: 9, position: 61, }, ), ], }, }, ConstructorParameter { attributes: [], comments: CommentGroup { comments: [], }, ampersand: None, name: SimpleVariable { span: Span { line: 6, column: 29, position: 107, }, name: "$b", }, data_type: Some( Integer( Span { line: 6, column: 25, position: 103, }, ), ), ellipsis: None, default: None, modifiers: PromotedPropertyModifierGroup { modifiers: [ Public( Span { line: 6, column: 9, position: 87, }, ), Readonly( Span { line: 6, column: 16, position: 94, }, ), ], }, }, ConstructorParameter { attributes: [], comments: CommentGroup { comments: [], }, ampersand: Some( Span { line: 7, column: 32, position: 142, }, ), name: SimpleVariable { span: Span { line: 7, column: 32, position: 142, }, name: "$c", }, data_type: Some( Float( Span { line: 7, column: 25, position: 135, }, ), ), ellipsis: None, default: None, modifiers: PromotedPropertyModifierGroup { modifiers: [ Public( Span { line: 7, column: 9, position: 119, }, ), Readonly( Span { line: 7, column: 16, position: 126, }, ), ], }, }, ConstructorParameter { attributes: [], comments: CommentGroup { comments: [], }, ampersand: None, name: SimpleVariable { span: Span { line: 8, column: 12, position: 157, }, name: "$e", }, data_type: None, ellipsis: Some( Span { line: 8, column: 9, position: 154, }, ), default: None, modifiers: PromotedPropertyModifierGroup { modifiers: [], }, }, ], commas: [ Span { line: 5, column: 25, position: 77, }, Span { line: 6, column: 31, position: 109, }, Span { line: 7, column: 34, position: 144, }, Span { line: 8, column: 14, position: 159, }, ], }, right_parenthesis: Span { line: 9, column: 5, position: 165, }, }, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 9, column: 7, position: 167, }, statements: [], right_brace: Span { line: 9, column: 8, position: 168, }, }, }, ), ], right_brace: Span { line: 10, column: 1, position: 170, }, }, }, ), ]