Skip to content

Latest commit

 

History

History
127 lines (99 loc) · 7.4 KB

CHANGELOG.md

File metadata and controls

127 lines (99 loc) · 7.4 KB

Changelog

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

Library

  • (!) 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 using Args 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, use enter_parallel to be able to make use of rayon inside of the closure.

All changes:

Bug Fixes

  • 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)

Dependencies

  • Enable dependencies.yml
  • Update dependencies (#161)

Documentation

  • Fix typos
  • Update CONTRIBUTING.md
  • Add note about codspeed
  • Add some more docs to Session (#155)
  • Add telegram link
  • Add icons (#109)

Features

  • 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)

Miscellaneous Tasks

  • 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

Other

  • 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)

Refactor

  • Split Ty printers (#144)
  • Re-export ast::* internal module (#141)

Testing

  • Add a test for SessionGlobals + Session::enter (#142)
  • Add another Session test (#134)
  • Add some more tests (#122)

Initial release.