All notable changes to T-Ruby will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Switch to OIDC Trusted Publishing for RubyGems deployment
- Remove non-existent
rbs_generator.rbfrom WASM build script (#42)
- Direct
.trbfile execution withtrc runcommand without intermediate files (#37)
- TypeScript-style array shorthand syntax
T[]as alternative toArray<T> - Nested arrays support (
Integer[][]forArray<Array<Integer>>) - Nullable arrays (
String[]?for(Array<String> | nil)) - Arrays of nullable elements (
String?[]forArray<String?>) - Union type arrays (
(String | Integer)[]forArray<(String | Integer)>)
- TypeScript-style type inference engine
- BodyParser for method body IR node generation
- TypeEnv for scope chain management
- ASTTypeInferrer with lazy evaluation and caching
- Literal type inference (
"hello"->String,42->Integer) - Method call tracking (
str.upcase->String) - Implicit return handling (Ruby's last expression as return type)
- Conditional type inference (union types from
if/elsebranches) - 200+ built-in method types for common Ruby methods
- Special
initializemethod handling (always returnsvoid) - Unreachable code detection
- Initial alpha release
- Basic types:
String,Integer,Float,Boolean,Symbol,nil - Special types:
Any,void,never,self - Union types with
|operator - Optional types shorthand
T?forT | nil - Array generics
Array<T> - Hash generics
Hash<K, V> - Type inference for variables and returns
- Type narrowing with
is_a?andnil? - Literal types (string, number, symbol, boolean)
- Type aliases with
typekeyword - Generic type aliases
- Intersection types with
&operator - Proc types
Proc<Args, Return> - Parameter, return, and block type annotations
- Generic functions and classes
- Interface definitions and structural typing
.trbto.rbcompilation with type erasure.rbsfile generation- Source maps for debugging
- File watching with
--watch - Type checking mode with
--check - Standard library type definitions