steep 1.3.0.pre.2 → 1.4.0.dev.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-windows.yml +1 -0
  3. data/.github/workflows/ruby.yml +1 -5
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +17 -14
  7. data/Gemfile.steep +2 -2
  8. data/Gemfile.steep.lock +5 -5
  9. data/bin/rbs +21 -0
  10. data/bin/setup +1 -1
  11. data/lib/steep/ast/types/class.rb +9 -3
  12. data/lib/steep/ast/types/factory.rb +9 -2
  13. data/lib/steep/ast/types/instance.rb +8 -3
  14. data/lib/steep/ast/types/intersection.rb +6 -2
  15. data/lib/steep/ast/types/literal.rb +1 -1
  16. data/lib/steep/ast/types/logic.rb +1 -3
  17. data/lib/steep/ast/types/name.rb +11 -5
  18. data/lib/steep/ast/types/proc.rb +5 -5
  19. data/lib/steep/ast/types/record.rb +5 -1
  20. data/lib/steep/ast/types/self.rb +8 -2
  21. data/lib/steep/ast/types/tuple.rb +7 -5
  22. data/lib/steep/ast/types/union.rb +10 -4
  23. data/lib/steep/ast/types/var.rb +1 -1
  24. data/lib/steep/index/rbs_index.rb +13 -6
  25. data/lib/steep/interface/substitution.rb +11 -10
  26. data/lib/steep/project/dsl.rb +12 -4
  27. data/lib/steep/project/options.rb +3 -1
  28. data/lib/steep/signature/validator.rb +13 -13
  29. data/lib/steep/type_inference/logic_type_interpreter.rb +2 -2
  30. data/lib/steep/version.rb +1 -1
  31. data/lib/steep.rb +0 -1
  32. data/rbs_collection.steep.lock.yaml +44 -43
  33. data/sig/steep/ast/builtin.rbs +1 -1
  34. data/sig/steep/ast/types/any.rbs +5 -5
  35. data/sig/steep/ast/types/boolean.rbs +6 -6
  36. data/sig/steep/ast/types/bot.rbs +5 -5
  37. data/sig/steep/ast/types/class.rbs +7 -6
  38. data/sig/steep/ast/types/helper.rbs +2 -2
  39. data/sig/steep/ast/types/instance.rbs +6 -5
  40. data/sig/steep/ast/types/intersection.rbs +12 -9
  41. data/sig/steep/ast/types/literal.rbs +6 -4
  42. data/sig/steep/ast/types/logic.rbs +7 -9
  43. data/sig/steep/ast/types/name.rbs +7 -3
  44. data/sig/steep/ast/types/nil.rbs +6 -6
  45. data/sig/steep/ast/types/proc.rbs +8 -3
  46. data/sig/steep/ast/types/record.rbs +7 -8
  47. data/sig/steep/ast/types/self.rbs +7 -6
  48. data/sig/steep/ast/types/top.rbs +6 -6
  49. data/sig/steep/ast/types/tuple.rbs +5 -4
  50. data/sig/steep/ast/types/union.rbs +8 -8
  51. data/sig/steep/ast/types/var.rbs +16 -11
  52. data/sig/steep/ast/types/void.rbs +5 -5
  53. data/sig/steep/ast/types.rbs +5 -26
  54. data/sig/steep/index/rbs_index.rbs +83 -37
  55. data/sig/steep/interface/substitution.rbs +9 -9
  56. data/sig/steep/project/dsl.rbs +35 -30
  57. data/sig/steep/project/options.rbs +16 -4
  58. data/smoke/diagnostics-rbs/test_expectations.yml +1 -1
  59. data/steep.gemspec +3 -2
  60. metadata +21 -7
  61. data/lib/steep/ast/types.rb +0 -62
@@ -54,7 +54,7 @@
54
54
  character: 22
55
55
  end:
56
56
  line: 1
57
- character: -1
57
+ character: 28
58
58
  severity: ERROR
59
59
  message: Cannot inherit from a module `::Kernel`
60
60
  code: RBS::InheritModuleError
data/steep.gemspec CHANGED
@@ -26,14 +26,14 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.required_ruby_version = '>= 2.6.0'
29
+ spec.required_ruby_version = '>= 2.7.0'
30
30
 
31
31
  spec.add_runtime_dependency "parser", ">= 3.1"
32
32
  spec.add_runtime_dependency "activesupport", ">= 5.1"
33
33
  spec.add_runtime_dependency "rainbow", ">= 2.2.2", "< 4.0"
34
34
  spec.add_runtime_dependency "listen", "~> 3.0"
35
35
  spec.add_runtime_dependency "language_server-protocol", ">= 3.15", "< 4.0"
36
- spec.add_runtime_dependency "rbs", ">= 2.8.0.pre"
36
+ spec.add_runtime_dependency "rbs", ">= 2.8.0"
37
37
  spec.add_runtime_dependency "parallel", ">= 1.0.0"
38
38
  spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
39
39
  spec.add_runtime_dependency "securerandom", ">= 0.1"
@@ -42,4 +42,5 @@ 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"
45
46
  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.3.0.pre.2
4
+ version: 1.4.0.dev.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-23 00:00:00.000000000 Z
11
+ date: 2023-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -98,14 +98,14 @@ dependencies:
98
98
  requirements:
99
99
  - - ">="
100
100
  - !ruby/object:Gem::Version
101
- version: 2.8.0.pre
101
+ version: 2.8.0
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
- version: 2.8.0.pre
108
+ version: 2.8.0
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: parallel
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -224,6 +224,20 @@ 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
227
241
  description: Gradual Typing for Ruby
228
242
  email:
229
243
  - matsumoto@soutaro.com
@@ -249,6 +263,7 @@ files:
249
263
  - bin/console
250
264
  - bin/output_rebaseline.rb
251
265
  - bin/output_test.rb
266
+ - bin/rbs
252
267
  - bin/setup
253
268
  - bin/steep
254
269
  - bin/steep-prof
@@ -261,7 +276,6 @@ files:
261
276
  - lib/steep/ast/node/type_application.rb
262
277
  - lib/steep/ast/node/type_assertion.rb
263
278
  - lib/steep/ast/type_params.rb
264
- - lib/steep/ast/types.rb
265
279
  - lib/steep/ast/types/any.rb
266
280
  - lib/steep/ast/types/boolean.rb
267
281
  - lib/steep/ast/types/bot.rb
@@ -761,14 +775,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
761
775
  requirements:
762
776
  - - ">="
763
777
  - !ruby/object:Gem::Version
764
- version: 2.6.0
778
+ version: 2.7.0
765
779
  required_rubygems_version: !ruby/object:Gem::Requirement
766
780
  requirements:
767
781
  - - ">"
768
782
  - !ruby/object:Gem::Version
769
783
  version: 1.3.1
770
784
  requirements: []
771
- rubygems_version: 3.3.7
785
+ rubygems_version: 3.3.26
772
786
  signing_key:
773
787
  specification_version: 4
774
788
  summary: Gradual Typing for Ruby
@@ -1,62 +0,0 @@
1
- module Steep
2
- module AST
3
- module Types
4
- class Masked
5
- attr_reader :location
6
- attr_reader :type
7
- attr_reader :mask
8
-
9
- def initialize(type:, mask:, location:)
10
- @type = type
11
- @mask = mask
12
- @location = location
13
- end
14
-
15
- def ==(other)
16
- other.is_a?(Masked) &&
17
- other.type == type &&
18
- other.mask == mask
19
- end
20
-
21
- alias eql? ==
22
-
23
- def hash
24
- self.class.hash ^ type.hash ^ mask.hash
25
- end
26
-
27
- def to_json(*a)
28
- { class: :masked,
29
- type: type,
30
- mask: mask,
31
- location: location }.to_json(*a)
32
- end
33
-
34
- def to_s(level = 0)
35
- "masked(#{type}|#{mask})"
36
- end
37
-
38
- def free_variables
39
- @fvs ||= Set.new.tap do |set|
40
- set.merge(type.free_variables)
41
- set.merge(mask.free_variables)
42
- end
43
- end
44
-
45
- def each_type(&block)
46
- if block_given?
47
- yield type
48
- yield mask
49
- else
50
- enum_for :each_type
51
- end
52
- end
53
-
54
- def sub(s)
55
- self.class.new(type: type.sub(s),
56
- mask: mask.sub(s),
57
- location: location)
58
- end
59
- end
60
- end
61
- end
62
- end