1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

NEWS.md: mention TypeProf

This commit is contained in:
Yusuke Endoh 2020-10-20 13:16:19 +09:00
parent 451836f582
commit a3ae90b8c5
Notes: git 2020-10-20 22:49:06 +09:00

37
NEWS.md
View file

@ -83,7 +83,9 @@ sufficient information, see the ChangeLog file or Redmine
* Interpolated String literals are no longer frozen when
`# frozen-string-literal: true` is used. [[Feature #17104]]
* RBS is introduced. It is a type definition language for Ruby programs.
* A static analysis foundation is introduced. See "Static analysis" section in detail.
* RBS is introduced. It is a type definition language for Ruby programs.
* TypeProf is experimentally bundled. It is a type analysis tool for Ruby programs.
## Command line options
@ -417,7 +419,9 @@ Excluding feature bug fixes.
* Optimize C method call a little
## RBS
## Statis analysis
### RBS
* RBS is a new language for type definition of Ruby programs.
It allows writing types of classes and modules with advanced
@ -428,6 +432,35 @@ Excluding feature bug fixes.
* `rbs` gem is bundled to load and process RBS files.
### TypeProf
* TypeProf is a type analysis tool for Ruby code based on abstract interpretation.
* It reads non-annotated Ruby code, tries inferring its type signature, and prints
the analysis result in RBS format.
* Though it supports only a subset of the Ruby language yet, we will continuously
improve the coverage of language features, the analysis performance, and usability.
```ruby
# test.rb
def foo(x)
if x > 10
x.to_s
else
nil
end
end
foo(42)
```
```
$ typeprof test.rb
# Classes
class Object
def foo : (Integer) -> String?
end
```
## Miscellaneous changes
* Methods using `ruby2_keywords` will no longer keep empty keyword