steep 1.9.4 → 1.10.0.pre.1

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -3
  3. data/Steepfile +5 -2
  4. data/lib/steep/annotations_helper.rb +43 -0
  5. data/lib/steep/ast/ignore.rb +3 -4
  6. data/lib/steep/cli.rb +102 -23
  7. data/lib/steep/diagnostic/lsp_formatter.rb +17 -3
  8. data/lib/steep/diagnostic/ruby.rb +75 -0
  9. data/lib/steep/diagnostic/signature.rb +20 -0
  10. data/lib/steep/drivers/check.rb +3 -1
  11. data/lib/steep/drivers/diagnostic_printer/base_formatter.rb +19 -0
  12. data/lib/steep/drivers/diagnostic_printer/code_formatter.rb +95 -0
  13. data/lib/steep/drivers/diagnostic_printer/github_actions_formatter.rb +44 -0
  14. data/lib/steep/drivers/diagnostic_printer.rb +9 -86
  15. data/lib/steep/drivers/langserver.rb +4 -1
  16. data/lib/steep/drivers/worker.rb +2 -0
  17. data/lib/steep/interface/builder.rb +2 -2
  18. data/lib/steep/server/custom_methods.rb +12 -0
  19. data/lib/steep/server/interaction_worker.rb +33 -6
  20. data/lib/steep/server/master.rb +103 -7
  21. data/lib/steep/server/type_check_worker.rb +48 -2
  22. data/lib/steep/server/worker_process.rb +31 -20
  23. data/lib/steep/services/completion_provider.rb +12 -2
  24. data/lib/steep/services/signature_service.rb +2 -2
  25. data/lib/steep/services/type_check_service.rb +22 -7
  26. data/lib/steep/signature/validator.rb +56 -4
  27. data/lib/steep/source.rb +3 -1
  28. data/lib/steep/subtyping/check.rb +22 -16
  29. data/lib/steep/type_construction.rb +153 -34
  30. data/lib/steep/type_inference/case_when.rb +2 -0
  31. data/lib/steep/type_inference/logic_type_interpreter.rb +77 -15
  32. data/lib/steep/type_inference/method_call.rb +5 -3
  33. data/lib/steep/version.rb +1 -1
  34. data/lib/steep.rb +10 -0
  35. data/manual/ruby-diagnostics.md +114 -1
  36. data/sample/Steepfile +0 -2
  37. data/sample/lib/conference.rb +14 -0
  38. data/sample/lib/deprecated.rb +7 -0
  39. data/sample/sig/deprecated.rbs +16 -0
  40. data/steep.gemspec +4 -3
  41. metadata +28 -8
@@ -0,0 +1,16 @@
1
+ %a{deprecated: Use Bar instead} class Foo end
2
+
3
+ class Bar
4
+ # Original bar
5
+ def self.bar: %a{deprecated: since v0.9} () -> void
6
+
7
+ # Overloading bar
8
+ def self.bar: (String) -> String | ...
9
+
10
+ def hogehoge: (String) -> void
11
+ | %a{deprecated: Pass an positional argument} (string: String) -> void
12
+ end
13
+
14
+ type t = Foo
15
+
16
+ %a{deprecated} $test: untyped
data/steep.gemspec CHANGED
@@ -41,10 +41,10 @@ Gem::Specification.new do |spec|
41
41
  spec.add_runtime_dependency "activesupport", ">= 5.1"
42
42
  spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
43
43
  spec.add_runtime_dependency "listen", "~> 3.0"
44
- spec.add_runtime_dependency "language_server-protocol", ">= 3.15", "< 4.0"
45
- spec.add_runtime_dependency "rbs", "~> 3.8"
44
+ spec.add_runtime_dependency "language_server-protocol", ">= 3.17.0.4", "< 4.0"
45
+ spec.add_runtime_dependency "rbs", "~> 3.9.pre"
46
46
  spec.add_runtime_dependency "concurrent-ruby", ">= 1.1.10"
47
- spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
47
+ spec.add_runtime_dependency "terminal-table", ">= 2", "< 5"
48
48
  spec.add_runtime_dependency "securerandom", ">= 0.1"
49
49
  spec.add_runtime_dependency "json", ">= 2.1.0"
50
50
  spec.add_runtime_dependency "logger", ">= 1.3.0"
@@ -52,4 +52,5 @@ Gem::Specification.new do |spec|
52
52
  spec.add_runtime_dependency "strscan", ">= 1.0.0"
53
53
  spec.add_runtime_dependency "csv", ">= 3.0.9"
54
54
  spec.add_runtime_dependency "uri", ">= 0.12.0"
55
+ spec.add_runtime_dependency "mutex_m", ">= 0.3.0"
55
56
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.4
4
+ version: 1.10.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-04 00:00:00.000000000 Z
10
+ date: 2025-03-11 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: parser
@@ -77,7 +77,7 @@ dependencies:
77
77
  requirements:
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
- version: '3.15'
80
+ version: 3.17.0.4
81
81
  - - "<"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '4.0'
@@ -87,7 +87,7 @@ dependencies:
87
87
  requirements:
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '3.15'
90
+ version: 3.17.0.4
91
91
  - - "<"
92
92
  - !ruby/object:Gem::Version
93
93
  version: '4.0'
@@ -97,14 +97,14 @@ dependencies:
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: '3.8'
100
+ version: 3.9.pre
101
101
  type: :runtime
102
102
  prerelease: false
103
103
  version_requirements: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: '3.8'
107
+ version: 3.9.pre
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: concurrent-ruby
110
110
  requirement: !ruby/object:Gem::Requirement
@@ -128,7 +128,7 @@ dependencies:
128
128
  version: '2'
129
129
  - - "<"
130
130
  - !ruby/object:Gem::Version
131
- version: '4'
131
+ version: '5'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  version: '2'
139
139
  - - "<"
140
140
  - !ruby/object:Gem::Version
141
- version: '4'
141
+ version: '5'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: securerandom
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -237,6 +237,20 @@ dependencies:
237
237
  - - ">="
238
238
  - !ruby/object:Gem::Version
239
239
  version: 0.12.0
240
+ - !ruby/object:Gem::Dependency
241
+ name: mutex_m
242
+ requirement: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: 0.3.0
247
+ type: :runtime
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: 0.3.0
240
254
  description: Gradual Typing for Ruby
241
255
  email:
242
256
  - matsumoto@soutaro.com
@@ -274,6 +288,7 @@ files:
274
288
  - guides/src/nil-optional/nil-optional.md
275
289
  - lib/steep.rb
276
290
  - lib/steep/annotation_parser.rb
291
+ - lib/steep/annotations_helper.rb
277
292
  - lib/steep/ast/annotation.rb
278
293
  - lib/steep/ast/annotation/collection.rb
279
294
  - lib/steep/ast/builtin.rb
@@ -313,6 +328,9 @@ files:
313
328
  - lib/steep/drivers/check.rb
314
329
  - lib/steep/drivers/checkfile.rb
315
330
  - lib/steep/drivers/diagnostic_printer.rb
331
+ - lib/steep/drivers/diagnostic_printer/base_formatter.rb
332
+ - lib/steep/drivers/diagnostic_printer/code_formatter.rb
333
+ - lib/steep/drivers/diagnostic_printer/github_actions_formatter.rb
316
334
  - lib/steep/drivers/init.rb
317
335
  - lib/steep/drivers/langserver.rb
318
336
  - lib/steep/drivers/print_project.rb
@@ -402,8 +420,10 @@ files:
402
420
  - manual/ruby-diagnostics.md
403
421
  - sample/Steepfile
404
422
  - sample/lib/conference.rb
423
+ - sample/lib/deprecated.rb
405
424
  - sample/lib/length.rb
406
425
  - sample/sig/conference.rbs
426
+ - sample/sig/deprecated.rbs
407
427
  - sample/sig/generics.rbs
408
428
  - sample/sig/length.rbs
409
429
  - steep.gemspec