Skip to content

Instantly share code, notes, and snippets.

@ybiquitous
Created December 9, 2020 09:31
Show Gist options
  • Save ybiquitous/48139def8bead0f21d9cd140b7ad43ba to your computer and use it in GitHub Desktop.
Save ybiquitous/48139def8bead0f21d9cd140b7ad43ba to your computer and use it in GitHub Desktop.
Steep 0.37.0 bug reproduction
class Foo
def foo(hash)
hash.each_with_object({}) do |(key, value), new_hash|
new_hash[key] = value || ""
end
end
end
pp Foo.new.foo({ "foo" => 1, "bar" => nil })
#=> {"foo"=>1, "bar"=>""}
class Foo
def foo: (Hash[untyped, untyped]) -> Hash[untyped, untyped]
end
source "https://rubygems.org"
gem "steep", git: "https://github.com/soutaro/steep.git", ref: "b256507638d98d05faee5734a719a57ed0977688"
target :lib do
signature "foo.rbs"
check "foo.rb"
end
@ybiquitous
Copy link
Author

Reproduction steps

Run the following commands:

$ git clone https://gist.github.com/48139def8bead0f21d9cd140b7ad43ba.git repro

$ cd repro

$ bundle install

$ bundle exec ruby foo.rb
{"foo"=>1, "bar"=>""}

$ bundle exec steep check

The following error occurs:

foo.rb:3:4: UnexpectedError: NoMethodError
>> undefined method `each' for nil:NilClass
 (hash.each_with_object({}) do |(key, value), new_hash|)

Full output:

[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] Unexpected error in #type_send: undefined method `each' for nil:NilClass (NoMethodError)
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:3127:in `for_block'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:3101:in `type_block_without_hint'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:3005:in `try_method_type'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2650:in `block (4 levels) in type_method_call'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/typing.rb:206:in `new_child'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2649:in `block (3 levels) in type_method_call'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2648:in `map'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2648:in `block (2 levels) in type_method_call'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2645:in `block in type_method_call'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2644:in `each'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2644:in `flat_map'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2644:in `type_method_call'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2465:in `type_send_interface'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2599:in `type_send'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:866:in `block (2 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:861:in `yield_self'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:861:in `block in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:646:in `synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:2171:in `check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:889:in `block (2 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:871:in `yield_self'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:871:in `block in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:646:in `synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:1279:in `block (3 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:1263:in `tap'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:1263:in `block (2 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:1249:in `yield_self'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:1249:in `block in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:646:in `synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:656:in `block (3 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:655:in `each'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:655:in `inject'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:655:in `block (2 levels) in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:650:in `yield_self'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:650:in `block in synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/type_construction.rb:646:in `synthesize'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/source_file.rb:83:in `type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/source_file.rb:95:in `block in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/source_file.rb:118:in `parse'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/source_file.rb:94:in `type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:227:in `block (2 levels) in run_type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:226:in `block in run_type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:225:in `each'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:225:in `run_type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:110:in `block (4 levels) in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep.rb:147:in `measure'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:109:in `block (3 levels) in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:182:in `load_signatures'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:108:in `block (2 levels) in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep.rb:147:in `measure'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:107:in `block in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/project/target.rb:106:in `type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/drivers/utils/driver_helper.rb:19:in `block (2 levels) in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `block in tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:28:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/gems/activesupport-6.0.3.4/lib/active_support/tagged_logging.rb:80:in `tagged'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/drivers/utils/driver_helper.rb:18:in `block in type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/drivers/utils/driver_helper.rb:17:in `each'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/drivers/utils/driver_helper.rb:17:in `type_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/drivers/check.rb:27:in `run'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/cli.rb:91:in `process_check'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/lib/steep/cli.rb:50:in `run'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bundler/gems/steep-b256507638d9/exe/steep:11:in `<top (required)>'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bin/steep:23:in `load'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bundle/bin/steep:23:in `<top (required)>'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `load'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `kernel_load'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli/exec.rb:28:in `run'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli.rb:476:in `exec'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli.rb:30:in `dispatch'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/cli.rb:24:in `start'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:46:in `block in <top (required)>'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/2.7.0/bundler/friendly_errors.rb:123:in `with_friendly_errors'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:34:in `<top (required)>'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bin/bundle:23:in `load'
[Steep 0.37.0] [target=lib] [target#type_check(target_sources: [foo.rb], validate_signatures: true)] [path=foo.rb] [synthesize:(1:1)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)]   /usr/local/bin/bundle:23:in `<main>'
foo.rb:3:4: UnexpectedError: NoMethodError
>> undefined method `each' for nil:NilClass
 (hash.each_with_object({}) do |(key, value), new_hash|)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment