All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Notable and breaking changes (!):
- The parser now fully supports doc-comments in any position (#154). This was the last major feature needed to support the full Solidity grammar, as implemented in solc. The parser and AST are now considered feature-complete.
- Fixed some bugs in the parser
- Implemented some more syntax checks and validations
- (!) Return ControlFlow from AST visitor methods (#115)
- (!) Remove Pos trait (#137)
- (!) Re-export solar_ast::ast::* internal module (#141)
- Unify CLI and Session options (#176)
Session::builder
's individual config option methods have been removed in favor of usingArgs
directly.
- Install rayon pool in Session::enter (#123)
- Add Session::enter_parallel (#183)
- The session is now parallel by default;
enter
will behave the same, useenter_parallel
to be able to make use of rayon inside of the closure.
All changes:
- Add Session::enter_parallel (#183)
- Display order in AST stats (#180)
- Reduce width of subnode name in ast-stats (#157)
- [parser] Accept leading dot in literals (#151)
- Exclude arrays from mapping getter returns (#148)
- [parser] Span of partially-parsed expressions (#139)
- [parser] Ignore more doc comments (#136)
- Properly handle recursive types (#133)
- Validate placeholder is within modifier (#132)
- Install rayon pool in Session::enter (#123)
- Enable dependencies.yml
- Update dependencies (#161)
- Fix typos
- Update CONTRIBUTING.md
- Add note about codspeed
- Add some more docs to Session (#155)
- Add telegram link
- Add icons (#109)
- Add some more Span utils (#179)
- Unify CLI and Session options (#176)
- Check placeholders inside unchecked blocks (#172)
- Library requirements syntax checker (#168)
- Set up codspeed (#167)
- Underscores and literals validation (#165)
- Receive function validation (#166)
- Func visibility checks for free functions (#163)
- Syntax checker for functions with modifiers (#164)
- Variable declaration statements are not allowed as the body of loop (#158)
- Validate functions with no visibility specified (#160)
- Modifier definitions must have a placeholder (#159)
- Add more methods to index types (#156)
- [parser] Allow doc-comments anywhere (#154)
- Add try_new to newtype_index! types (#152)
- Update to Rust 1.83 (#150)
- Validate variable data locations (#149)
- Make TyAbiPrinter public (#145)
- Add some FileName functions (#143)
- Add some methods to CallArgs (#140)
- [parser] Recover old-style fallbacks (#135)
- Print AST statistics with -Zast-stats flag (#125)
- Return ControlFlow from AST visitor methods (#115)
- Make parse_semver_req public (#114)
- Add more semver compat (#113)
- Update process
- Update dist to 0.27.0
- Cargo update (#181)
- [xtask] Bless = uibless
- [macros] Fix expansion spans (#175)
- Add TyAbiPrinterMode (#147)
- Mark TyKind as non_exhaustive (#146)
- Extend rayon threadpool comment (#138)
- Remove Pos trait (#137)
- [meta] Add bug report template (#131)
- Use unimplemented! instead of todo! in eval.rs (#110)
- Fix deny.toml
- Move deny to ci (#162)
- Initial AST validation for using-for (#119)
- AST validate that a contract does not have a function with contract name (#117)
- Validate num. variants in enum declaration (#120)
- Better error for struct without any fields (#121)
- AST validate unchecked nested blocks (#116)
- AST validate check statement only in while/for loops (#111)
- Add syntax test pragma solidity (#112)
- Add a test for SessionGlobals + Session::enter (#142)
- Add another Session test (#134)
- Add some more tests (#122)
Initial release.