steep 1.4.0.dev.2 → 1.4.0.dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -2
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +7 -9
  5. data/Gemfile.steep +1 -2
  6. data/Gemfile.steep.lock +9 -10
  7. data/README.md +7 -1
  8. data/Steepfile +0 -3
  9. data/bin/rbs +0 -1
  10. data/guides/README.md +5 -0
  11. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +143 -0
  12. data/guides/src/getting-started/getting-started.md +164 -0
  13. data/guides/src/nil-optional/nil-optional.md +195 -0
  14. data/lib/steep/diagnostic/ruby.rb +79 -4
  15. data/lib/steep/drivers/check.rb +4 -4
  16. data/lib/steep/interface/block.rb +10 -0
  17. data/lib/steep/module_helper.rb +13 -11
  18. data/lib/steep/path_helper.rb +4 -0
  19. data/lib/steep/server/interaction_worker.rb +105 -92
  20. data/lib/steep/services/type_name_completion.rb +157 -0
  21. data/lib/steep/source.rb +1 -0
  22. data/lib/steep/type_construction.rb +402 -229
  23. data/lib/steep/type_inference/block_params.rb +13 -0
  24. data/lib/steep/type_inference/context.rb +3 -3
  25. data/lib/steep/type_inference/method_params.rb +42 -16
  26. data/lib/steep/type_inference/send_args.rb +79 -50
  27. data/lib/steep/type_inference/type_env.rb +7 -1
  28. data/lib/steep/version.rb +1 -1
  29. data/lib/steep.rb +1 -0
  30. data/rbs_collection.steep.lock.yaml +0 -28
  31. data/rbs_collection.steep.yaml +10 -9
  32. data/sample/lib/conference.rb +12 -0
  33. data/sample/sig/conference.rbs +5 -0
  34. data/sig/shims/language-server_protocol.rbs +12 -0
  35. data/sig/shims/parser/nodes.rbs +37 -0
  36. data/sig/shims/parser.rbs +1 -0
  37. data/sig/shims/string.rbs +4 -0
  38. data/sig/steep/ast/types/factory.rbs +10 -8
  39. data/sig/steep/diagnostic/lsp_formatter.rbs +1 -1
  40. data/sig/steep/diagnostic/ruby.rbs +38 -2
  41. data/sig/steep/drivers/check.rbs +1 -1
  42. data/sig/steep/drivers/checkfile.rbs +1 -1
  43. data/sig/steep/drivers/diagnostic_printer.rbs +1 -1
  44. data/sig/steep/drivers/watch.rbs +1 -1
  45. data/sig/steep/index/signature_symbol_provider.rbs +1 -1
  46. data/sig/steep/interface/block.rbs +2 -0
  47. data/sig/steep/interface/builder.rbs +5 -3
  48. data/sig/steep/interface/method_type.rbs +5 -3
  49. data/sig/steep/module_helper.rbs +9 -0
  50. data/sig/steep/path_helper.rbs +3 -1
  51. data/sig/steep/server/base_worker.rbs +1 -1
  52. data/sig/steep/server/interaction_worker.rbs +46 -17
  53. data/sig/steep/server/master.rbs +1 -1
  54. data/sig/steep/server/type_check_worker.rbs +7 -5
  55. data/sig/steep/server/worker_process.rbs +6 -4
  56. data/sig/steep/services/completion_provider.rbs +2 -0
  57. data/sig/steep/services/type_name_completion.rbs +122 -0
  58. data/sig/steep/type_construction.rbs +99 -30
  59. data/sig/steep/type_inference/block_params.rbs +4 -0
  60. data/sig/steep/type_inference/context.rbs +70 -22
  61. data/sig/steep/type_inference/method_params.rbs +43 -24
  62. data/sig/steep/type_inference/multiple_assignment.rbs +1 -1
  63. data/sig/steep/type_inference/send_args.rbs +13 -3
  64. data/sig/steep/typing.rbs +7 -2
  65. data/smoke/diagnostics/test_expectations.yml +1 -0
  66. data/steep.gemspec +0 -1
  67. metadata +10 -16
data/sig/steep/typing.rbs CHANGED
@@ -34,7 +34,7 @@ module Steep
34
34
 
35
35
  def add_error: (Diagnostic::Ruby::Base error) -> void
36
36
 
37
- def add_typing: (Parser::AST::Node node, AST::Types::t `type`, TypeInference::Context _context) -> untyped
37
+ def add_typing: (Parser::AST::Node node, AST::Types::t `type`, top) -> untyped
38
38
 
39
39
  def add_call: (untyped node, untyped call) -> untyped
40
40
 
@@ -61,8 +61,13 @@ module Steep
61
61
  def new_child: [A] (Range[Integer] range) { (Typing) -> A } -> A
62
62
  | (Range[Integer]) -> Typing
63
63
 
64
- def each_typing: () { () -> untyped } -> untyped
64
+ def each_typing: () { (Parser::AST::Node, AST::Types::t) -> void } -> void
65
65
 
66
+ # Push the current changes to the `#parent` typing
67
+ #
68
+ # * Raises an error if `#parent` is `nil`
69
+ # * Raises an error if `#parent` is changed since `#new_child` call that instantiated `self`
70
+ #
66
71
  def save!: () -> void
67
72
  end
68
73
  end
@@ -46,6 +46,7 @@
46
46
  message: |-
47
47
  Cannot pass a value of type `^(untyped, untyped, untyped) -> untyped` as a block-pass-argument of type `^(::Integer) -> void`
48
48
  ^(untyped, untyped, untyped) -> untyped <: ^(::Integer) -> void
49
+ (Params are incompatible)
49
50
  code: Ruby::BlockTypeMismatch
50
51
  - file: break_type_mismatch.rb
51
52
  diagnostics:
data/steep.gemspec CHANGED
@@ -42,5 +42,4 @@ Gem::Specification.new do |spec|
42
42
  spec.add_runtime_dependency "fileutils", ">= 1.1.0"
43
43
  spec.add_runtime_dependency "strscan", ">= 1.0.0"
44
44
  spec.add_runtime_dependency "csv", ">= 3.0.9"
45
- spec.add_runtime_dependency "pathname", ">= 0.2.1"
46
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.dev.2
4
+ version: 1.4.0.dev.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-28 00:00:00.000000000 Z
11
+ date: 2023-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -224,20 +224,6 @@ dependencies:
224
224
  - - ">="
225
225
  - !ruby/object:Gem::Version
226
226
  version: 3.0.9
227
- - !ruby/object:Gem::Dependency
228
- name: pathname
229
- requirement: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - ">="
232
- - !ruby/object:Gem::Version
233
- version: 0.2.1
234
- type: :runtime
235
- prerelease: false
236
- version_requirements: !ruby/object:Gem::Requirement
237
- requirements:
238
- - - ">="
239
- - !ruby/object:Gem::Version
240
- version: 0.2.1
241
227
  description: Gradual Typing for Ruby
242
228
  email:
243
229
  - matsumoto@soutaro.com
@@ -268,6 +254,10 @@ files:
268
254
  - bin/steep
269
255
  - bin/steep-prof
270
256
  - exe/steep
257
+ - guides/README.md
258
+ - guides/src/gem-rbs-collection/gem-rbs-collection.md
259
+ - guides/src/getting-started/getting-started.md
260
+ - guides/src/nil-optional/nil-optional.md
271
261
  - lib/steep.rb
272
262
  - lib/steep/annotation_parser.rb
273
263
  - lib/steep/ast/annotation.rb
@@ -356,6 +346,7 @@ files:
356
346
  - lib/steep/services/signature_service.rb
357
347
  - lib/steep/services/stats_calculator.rb
358
348
  - lib/steep/services/type_check_service.rb
349
+ - lib/steep/services/type_name_completion.rb
359
350
  - lib/steep/shims/filter_map.rb
360
351
  - lib/steep/shims/symbol_start_with.rb
361
352
  - lib/steep/signature/validator.rb
@@ -393,8 +384,10 @@ files:
393
384
  - sig/shims/parallel.rbs
394
385
  - sig/shims/parser.rbs
395
386
  - sig/shims/parser/comment.rbs
387
+ - sig/shims/parser/nodes.rbs
396
388
  - sig/shims/parser/source/map.rbs
397
389
  - sig/shims/parser/source/range.rbs
390
+ - sig/shims/string.rbs
398
391
  - sig/shims/tagged_logging.rbs
399
392
  - sig/steep.rbs
400
393
  - sig/steep/annotation_parser.rbs
@@ -484,6 +477,7 @@ files:
484
477
  - sig/steep/services/signature_service.rbs
485
478
  - sig/steep/services/stats_calculator.rbs
486
479
  - sig/steep/services/type_check_service.rbs
480
+ - sig/steep/services/type_name_completion.rbs
487
481
  - sig/steep/signature/validator.rbs
488
482
  - sig/steep/source.rbs
489
483
  - sig/steep/subtyping/cache.rbs