Skip to content

Latest commit

 

History

History
194 lines (131 loc) · 10 KB

File metadata and controls

194 lines (131 loc) · 10 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.

0.2.0 - 2026-04-05

Added

  • Add pattern matching type inference (#103)
  • Add Lambda/Proc type inference support (#104)
  • Add compound assignment type inference (#105)
  • Add defined? type inference support (#106)
  • Add yield type inference support (#107)
  • Add control flow keyword support (break, next, retry, redo) (#108)
  • Add backtick string type inference (#109)
  • Add predicate type propagation to pattern variables in case...in (#110)
  • Add constant type inference support (#102)
  • Add global variable ($var) type tracking (#100)
  • Add class variable (@@var) type tracking (#99)

Fixed

  • Fix uninitialized @@var reads silently skipping downstream type checking (#101)
  • Fix release workflow not triggered after tag push (#88)

0.1.10 - 2026-03-24

Added

  • Add safe navigation operator (&.) support (#65)
  • Add inheritance chain method resolution for user-defined classes (#66)
  • Add extend support for module methods as class methods (#67)
  • Add pull request template (#82)

Changed

Fixed

  • Fix release workflow to include gem assets in GitHub Release (#63, #64)

0.1.9 - 2026-03-15

Added

  • Add linter CI workflow for Clippy and RuboCop (#61)
  • Add unit tests for blocks and parameters analyzers (#60)
  • Add super call type inference support (#59)
  • Add for loop type inference support (#58)
  • Add module include support for mixin method resolution (#57)
  • Add complete multi-assignment type inference (#56)
  • Add auto-tagging workflow for release PR merges (#53)

Changed

  • Rename rust/ directory to core/ (#55)
  • Infer actual exception types in rescue clauses (#54)

0.1.8 - 2026-03-09

Added

  • while/until loop support to type inference (#46)
  • Not operator (!) support to type inference (#47)
  • begin/rescue/ensure exception handling support to type inference (#48)
  • Keyword argument support to type inference (#49)
  • Multiple assignment support to type inference (#50)

Changed

  • Resolve all Clippy warnings for cleaner, more idiomatic Rust (#51)

0.1.7 - 2026-03-07

Added

  • Kernel/Object methods loaded from RBS to reduce false positives (#39)
  • Object/Kernel fallback chain for method resolution (#40)
  • Constant namespace resolution for ConstantReadNode in nested scopes (#41)
  • Cargo test added to CI workflow (#38)

Changed

  • Extract bytes_to_name helper to consolidate 17 UTF-8 conversion sites (#42)
  • Refactor MethodCallBox by extracting helper methods (#43)

0.1.6 - 2026-02-23

Fixed

  • Embed method_loader.rb at compile time with include_str! to eliminate runtime dependency on source directory (#35)

0.1.5 - 2026-02-23

Added

  • String interpolation type inference (InterpolatedStringNode, InterpolatedSymbolNode, InterpolatedRegularExpressionNode) (#26)
  • Parentheses node type inference for parenthesized expressions (#27)
  • Qualified name method registration to resolve namespace conflicts (#28)
  • Return statement type inference with merge vertex pattern (#29)
  • Ternary operator type inference tests (#30)
  • Logical operator (&&/||) type inference with union type approximation (#31)
  • Class method (def self.foo) type registration and checking (#32)

Changed

  • Removed stateless Analyzer class and simplified Ruby FFI surface to module functions (#33)

Deprecated

  • clear_cache command (#25)

0.1.4 - 2026-02-16

Added

  • Method return type inference for user-defined methods (#18)
  • Parameter type propagation from call-site arguments to method parameters (#19)
  • Receiver-less method call support (ImplicitSelfCall) (#20)
  • attr_reader/attr_writer/attr_accessor support for type inference (#21)
  • if/unless/case conditional type inference (#22)
  • ConstantReadNode/ConstantPathNode support for type inference (#23)

Changed

  • Split install.rs and integration tests into focused modules (#17)

0.1.3 - 2025-02-08

Added

  • Method parameter type inference support (#3)
  • Block parameter type variable resolution (#4)
  • Module scope support (#6)
  • Fully qualified name support for nested classes/modules (#7)
  • Float type support (#8)
  • Regexp type support (#9)
  • Range type support (#10)
  • Generic type inference for Range, Hash, and nested Array (#11)

Fixed

  • Call operator location (#12)
  • Memory leak (#13)

Changed

  • Extract BinaryLocator class from Commands module (#5)
  • Migrate Rust integration tests to Ruby CLI and Rust unit tests (#14)
  • Remove unnecessary test files and logs (#1, #15)

0.1.2 - 2025-01-19

Added

  • Pre-built RBS cache bundled with gem (no initialization required)
  • MethodRay.setup for cache generation (internal API)

Changed

  • Separated setup logic from infer_types for cleaner cache generation

0.1.1 - 2025-01-19

Added

  • aarch64-linux (ARM64 Linux) support
  • macOS support (arm64-darwin)

0.1.0 - 2025-01-18

Added

  • Initial release
  • methodray check - Static type checking for Ruby files