soutaro / steep

Static type checker for Ruby
MIT License
1.37k stars 83 forks source link

Overloaded `Proc#initialize` implodes Steep #988

Open ParadoxV5 opened 9 months ago

ParadoxV5 commented 9 months ago

Ruby:

class MyProc < Proc
  def initialize(_)
    super() {}
  end
end

RBS:

class MyProc < Proc
  def initialize: (untyped) -> void
end
steep check ``` # Type checking files: ..................................[Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] Unexpected error: # [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/diagnostic/ruby.rb:165:in `initialize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_inference/send_args.rb:694:in `new' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_inference/send_args.rb:694:in `block in each' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_inference/send_args.rb:677:in `each' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_inference/send_args.rb:677:in `each' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3814:in `type_check_args' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:4031:in `block in try_method_type' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/subtyping/check.rb:51:in `push_variable_bounds' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:4024:in `try_method_type' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3679:in `block (3 levels) in type_method_call' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/typing.rb:234:in `new_child' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3667:in `block (2 levels) in type_method_call' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3666:in `block in type_method_call' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3665:in `each' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3665:in `type_method_call' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3300:in `type_send_interface' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:3510:in `type_send' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:2790:in `block in synthesize_sendish' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] :148:in `yield_self' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:2784:in `synthesize_sendish' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:2707:in `block in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:694:in `synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:991:in `block (3 levels) in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:280:in `block in with_method_constr' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/subtyping/check.rb:51:in `push_variable_bounds' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:279:in `with_method_constr' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:942:in `block (2 levels) in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] :148:in `yield_self' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:937:in `block in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:694:in `synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:1504:in `block (3 levels) in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:537:in `block in with_class_constr' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/subtyping/check.rb:51:in `push_variable_bounds' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:536:in `with_class_constr' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:1494:in `block (2 levels) in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] :148:in `yield_self' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:1456:in `block in synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/type_construction.rb:694:in `synthesize' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:393:in `type_check' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:329:in `block in type_check_file' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:327:in `type_check_file' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:283:in `block (2 levels) in typecheck_source' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep.rb:178:in `measure' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:277:in `block in typecheck_source' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/services/type_check_service.rb:276:in `typecheck_source' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/server/type_check_worker.rb:205:in `handle_job' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/server/base_worker.rb:56:in `block (2 levels) in run' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `block in tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:39:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/activesupport-7.1.2/lib/active_support/tagged_logging.rb:135:in `tagged' [Steep 1.6.0] [typecheck:typecheck@1] [background] [#typecheck_source(path=ruby.rb)] [#type_check_file(ruby.rb@.)] [synthesize:(1:1)] [synthesize:(2:3)] [synthesize:(3:5)] /usr/local/lib/ruby/gems/3.3.0/gems/steep-1.6.0/lib/steep/server/base_worker.rb:46:in `block in run' ................................................... No type error detected. đź«– ```

Also note:

ParadoxV5 commented 9 months ago

This doesn’t implode:

def y = yield

y { :y }
class Object
  def y: () { () -> void } -> void
end
ParadoxV5 commented 9 months ago

This doesn’t implode:

class P
  def initialize = yield
end

class C < P
  def initialize = super() { p self }
end
class P
  def initialize: () { () -> void } -> void
end

class C < P
  def initialize: () -> void
end