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

Sign up to get free protection for your applications and to get access to all the features.
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