Skip to content

Release Note 1.7

Soutaro Matsumoto edited this page Jun 7, 2024 · 2 revisions

Some of the highlights in Steep 1.7 are:

  • Ignore diagnostics by steep:ignore comment (#1034)
  • Untyped argument type (#1101)
  • Rake tasks (#995, #1156)
  • Delete unnecessary files from gem package (#962, #1144)

You can install it with $ gem install steep or using Bundler.

gem 'steep', require: false, '~> 1.7.0'

See the CHANGELOG for the details.

Ignore diagnostics by steep:ignore comment

#1034 implements steep:ignore comments that hides diagnostics reported by Steep. It comes with three variants:

  • steep:ignore ignores any diagnostic reported at the line
  • steep:ignore DIAGNOSTIC ignores specific diagnostics at the line
  • steep:ignore:start and steep:ignore:end ignores diagnostics at a range of lines
# steep:ignore:start

foo()      # NoMethod is detected, but ignored
bar()      # NoMethod is detected, but ignored

# steep:ignore:end


foo() # steep:ignore
foo() # steep:ignore NoMethod

Untyped argument type

RBS 3.5 introduced a new syntax to define a method/block/proc to accept any arguments, without type checking. #1101 is to support the feature.

class Foo
  # The dynamic method accepts any arguments, including block
  def dynamic: (?) -> void

  # The block parameters can be *untyped*
  def dynamic_block: () { (?) -> void } -> void
end

# The proc type can has *untyped* params too
type dynamic_proc = ^(?) -> void

Rake tasks

Steep 1.7 ships with rake tasks (#995, #1156).

Add the following lines to Rakefile, and run rake steep to type check your project.

require "steep/rake_task"
Steep::RakeTask.new do |t|
  t.check.severity_level = :error
  t.watch.verbose
end

Delete unnecessary files from gem package

We deleted sig folder that contains RBS type definition of Steep itself.

Clone this wiki locally