2021-08-01 13:44:50 +00:00
# Changelog
All notable changes to this project will be documented in this file, in reverse chronological order by release.
2023-04-16 23:37:56 +00:00
## v0.10.0 2023-17-04
### Breaking Changes
- Changed VKCOM to laytan in imports and `go.mod`
### Added
- `ast.Type` enum and `ast.Vertex` `GetType() ast.Type` function for easily checking and storing vertex types
- Expose the internal lexer using `lexer.New(src []byte, config conf.Config) (Lexer, error)`
### Fixes
- Added some boundary checks in the formatter to prevent some panics
- A newline will now be added after a doc comment in the printer
- Some fixes for start and end column addition in previous release
## v0.9.0 2023-26-03
2023-03-26 01:13:26 +00:00
### Breaking Changes
- Dropped PHP 5 support to increase velocity/productivity
### Added
- Nodes and tokens now also contain their StartCol and EndCol
- 2 new interfaces for traversers (backwards compatible):
- `traversers.CheckEntrance` interface: provides an `EnterNode(ast.Vertex) bool` that, when implemented, is called before entering a node, allowing short circuiting and more control over the traversal
- `traversers.NotifyLeave` interface: provides an `LeaveNode(ast.Vertex)` that, when implemented, is called when a node has fully been traversed, again allowing for more control
### Fixes
- Fixed a bug where the parser would use token.DefaultBlockSize instead of position.DefaultBlockSize when instantiating the parser
### Internals
- Rely on code generations for several repeating/boilerplate tasks
- Refactors and deduplication after PHP 5 removal
- Add golangci-lint configuration and an editorconfig file
## v0.8.3 2022-09-09
### Changed
- reduce memory usage by allocating smaller position blocks
2022-06-26 00:40:01 +00:00
## `v0.8.2` 2022-26-06
### Added
- [#28 ](https://github.com/VKCOM/php-parser/pull/28 ): `php8.2` : added readonly classes support
- [#29 ](https://github.com/VKCOM/php-parser/pull/29 ): `php8.1` : added intersection types support
2021-08-09 10:26:26 +00:00
## `v0.8.1-rc.1` 2021-09-08
2021-08-01 13:44:50 +00:00
2022-06-26 00:40:01 +00:00
### Added
2021-08-01 13:44:50 +00:00
- [#6 ](https://github.com/VKCOM/php-parser/pull/6 ): `php8.1` : added `readonly` modifier
- [#8 ](https://github.com/VKCOM/php-parser/pull/8 ): `php8.1` : added `never` type
- [#10 ](https://github.com/VKCOM/php-parser/pull/10 ): `php8.1` : added new octal numbers syntax
- [#12 ](https://github.com/VKCOM/php-parser/pull/12 ): `php8.1` : added enums
- [#15 ](https://github.com/VKCOM/php-parser/pull/15 ): `php8.1` : added `final` modifier for constants in class
- [#18 ](https://github.com/VKCOM/php-parser/pull/18 ): `php8.1` : added first class callable syntax
2022-06-26 00:40:01 +00:00
### Changed
2021-08-01 13:44:50 +00:00
- [`4cd50d` ](https://github.com/VKCOM/php-parser/commit/85b5d3ef36c9b12923404caf1c57497aa84cd50d ): `cmd` : added file path output before errors
2022-06-26 00:40:01 +00:00
### Fixed
2021-08-09 10:26:26 +00:00
- [#22 ](https://github.com/VKCOM/php-parser/pull/22 ): fixed bug with `#` comments
2021-08-01 13:44:50 +00:00
## `v0.8.0-rc.2` 2021-30-07
2022-06-26 00:40:01 +00:00
### Added
2021-08-01 13:44:50 +00:00
- [#10 ](https://github.com/i582/php-parser/pull/10 ): `php8` : nullsafe operator (`?->`)
- [#13 ](https://github.com/i582/php-parser/pull/13 ): `php8` : named arguments
- [#19 ](https://github.com/i582/php-parser/pull/19 ): `php8` : `match` expression
- [#21 ](https://github.com/i582/php-parser/pull/21 ): `php8` : union types in type hints and `static` typehint
- [#23 ](https://github.com/i582/php-parser/pull/23 ): `php8` : block `catch` without variable
- [#25 ](https://github.com/i582/php-parser/pull/25 ): `php8` : trailing comma in parameter lists
- [#27 ](https://github.com/i582/php-parser/pull/27 ): `php8` : `throw` can be used as an expression
- [#32 ](https://github.com/i582/php-parser/pull/32 ): `php8` : declaring properties in the constructor
- [#34 ](https://github.com/i582/php-parser/pull/34 ): `php8` : attributes
- [#38 ](https://github.com/i582/php-parser/pull/38 ): `php8` : trailing comma in closure use list
2022-06-26 00:40:01 +00:00
### Changed
2021-08-01 13:44:50 +00:00
- [#30 ](https://github.com/i582/php-parser/pull/30 ): `php8` : concatenation precedence
- [#36 ](https://github.com/i582/php-parser/pull/36 ): `php8` : names in the namespace are treated as a single token
- [#42 ](https://github.com/i582/php-parser/pull/42 ): `php8` : deferencable changes and arbitrary expressions in `new` /`instanceof`
2022-06-26 00:40:01 +00:00
### Removed
2021-08-01 13:44:50 +00:00
- [#11 ](https://github.com/i582/php-parser/pull/11 ): `php8` : removed `(real)` cast
- [#15 ](https://github.com/i582/php-parser/pull/15 ): `php8` : removed `(unset)` cast
- [#17 ](https://github.com/i582/php-parser/pull/17 ): `php8` : removed `{}` access
---
2023-03-26 01:13:26 +00:00
Versions prior to 0.8.0 were not included in this changelog.