RBS 1.2 ships with better support for AST/token locations and Locator
utility class. The AST objects now keep the locations of tokens. The Locator
class is to translate the text position (line and column) to semantic object at the location. The class allows to find if a text position is on the class name of a class declaration.
- Hash (#631, #632, #637, #638, #639, )
- Module (#645)
- Enumerable (#647)
- Array (#648)
- Proc (#649)
- Struct (#650, #668)
- Thread (#651)
- Random (#669)
- Shellwords (#665)
- IO (#659)
- Module self type syntax update (#653)
- rubygem (#630)
Errors are now organized by RBS::BaseError
, RBS::ParsingError
, RBS::LoadingError
, and RBS::DefinitionError
.
The library users can rescue RBS related errors with RBS::BaseError
, parsing errors with RBS::ParsingError
, and other errors with RBS::LoadingError
and RBS::DefinitionErrors
.
Updating a part of environments are supported. Library users can remove declarations read from a set of files, adding new declarations, running name resolution related to the new decls, and deleting DefinitionBuilder
caches related to the changes.
See RBS::Environment#reject
, RBS::Environment#resolve_type_names
, RBS::AncestorGraph
, and RBS::DefinitionBuilder#update
.
RBS::DefinitionBuilder#build_singleton
now returns definitions containing instance
type, which had returned resolved class instance types. This is a breaking change, but we consider it a bug fix because RBS::DefinitionBuilder#build_instance
has returned instance
types and #build_singleton
has returned class
type.
- Allow trailing comma for Record and Tuple types (#606)
- Allow partial update of RBS declarations (#608, #621)
- Let errors have
TypeName
(#611) - Add
Parser::LexerError
(#615) - Performance improvement (#617, #620)
- No substitute
instance
types on#build_singleton
(#619)
- Make racc name customizable by
RACC
environment variable (#602) - Suppress warnings (#624)
- Remove needless
Gem::Version
polyfill (#622)
- Signature Updates
- Rename generic class parameters on re-open (#594)
- Make
refute_send_type
check that method call doesn't match with types in RBS (#588)
- Unbundle
rr
to run test inruby/ruby
repo (#585)
- Set up
#ancestors
and#location
ofRecursiveAncestorError
(#583)
- Signature Updates
- Kernel(#582)
- Signature Updates
- Renew test sample code (#581)
- Add description to
generate:stdlib_test
Rake task (#578) - Declare supported ruby version >= 2.6 (#548)
- Fix module self-type override (#577)
- Fix parser to support all operator symbols (#550)
- Migrate from Minitest to Test::Unit (#556)
- Fix type alias parsing (#565)
- Support end-less method definition in
prototype rb
(#561) - Support method argument forwarding in
prototype rb
(#560)
- Signature updates for
URI
,IO
,File
,Pathname
,Module
, andTime
(#529, #521, #520, #511, #517, #542, #546, #540, #538) rbs prototype runtime
generatesextend
s (#535)rbs prototype runtime
stability improvements (#533, #526)rbs prototype rb
compatibility improvements (#545)- Implement method names escape in
RBS::Writer
(#537) - Improve runtime type checker compatibility (#532, #528, #547)
- Fix
ruby2_keywords
forProc
in Ruby <2.7 (#513) - Better compatibility for record type attribute names (#525, #524)
- Let module self-types be classes (#523)
- Delete
extension
syntax (#543) - Method resolution improvements about
alias
and.new
(#522, #519, #516) - Better message for
DuplicatedMethodDefinitionError
(#539)
- Make the order of RBS load reproducible (#508)
- Signature updates for
TSort
,DBM
,Time
, andHash
(#496, #497, #499, #507) - Add singleton attribute syntax (#502, #506, #505)
- Proc types with blocks (#503)
- Add support for escape sequences in string literal types (#501)
- Fix runtime type checking of blocks with keyword args (#500)
- Fix
EnvironmentWalker#each_type_name
(#494)
- Signature updates for
YAML
,ObjectSpace
, andSingleton
(#408, #477, #482) prototype rb
improvements (#492, #487, #486, #481)- Runtime type checker improvements (#488, #489, #490)
- Update
DependencyWalker
API to receive Node objects instead ofTypeName
(#484) - Assume encoding of RBS files to be UTF-8 (#493)
- Signature updates for
Enumerable
,Hash
, andTSort
(#462, #468, #471, #472, #473, #474) - Parser error handling improvement (#463, #475)
- Hash spread syntax handling improvement with
prototype rb
(#465)
- Signature updates for
Kernel
,PStore
,Enumerable
, andArray
(#450, #443, #438, #437, #433, #432) - Add helper interfaces (#434, #428)
- Change
bool
type semantics (#456) - Support alias in
rbs prototype rb
(#457) - Runtime testing improvements (#455, #447, #444, #431)
- Fix proc type parsing (#451)
- Fix type variable parsing (#442)
- Fix test for CI of ruby/ruby (#412)
- Minor signature update for
pty
- Fix
PTY
stdlib test
This version is to improve Ruby 3 testing compatibility. Nothing changed for users.
- Signature updates for
forwardable
,struct
,set
,URI::Generic
,URI::File
, andBigDecimal
. - Define
.new
methods frominitialize
included from modules #390
- Signature update for
date/datetime
#367 - Add test double support for runtime type checker #380
- Add
rbs test
command for runtime type checking #366 - Fix runtime type checking for record types #365
- Improve EnvironmentLoader API #370
- Allow overloading from super methods #364
- Signature update for
Zlib
- Make "no type checker installed" message a debug print #363
- Print
...
for overloading method definitions #362 - Allow missing method implementation in Ruby code #359
- Runtime testing improvements #356
- Signature updates for
Enumerator
andPTY
- Fix prototype rb/rbi error handling #349
- Runtime test improvements #344, #343
- Add
...
syntax #342
- Add
DefinitionBuilder#one_instance_ancestors
andDefinitionBuilder#one_singleton_ancestors
#341 - Bug fix in ConstantTable #340
- Make
rbs validate
faster #338 - Dedup methods generated by
rbs prototype rb
#334
- Signature update for
Logger
. - Clean
Environment#inspect
. #331 - Module self type syntax update. #329
- Better validation. #328
- Parser performance improvement. #327
- Runtime type checking performance improvements with sampling #323
- Signature updates for
Mutex_m
,IO
, andEnumerable
. - Syntax update. #307
- AST command prints absolute type names with file name filtering. #312
- Improve CLI message. #309
- Signature update for
Fiber
,Encoding
, andEnumerator
. - Fix syntax error for underscore and
!
?
#304 - Improved return type inference in
rbs prototype rb
#303 - Skip anonymous modules/classes in
rbs prototype runtime
#302 - Fix
--require-relative
option inrbs prototype runtime
#299 - Add JSON schema for
rbs ast
#295
- Fix constant resolution again #289
- Fix constant resolution #288
- The first release of RBS gem.
- Version 0.1.0 is the original
rbs
gem and it is different software from RBS.