steep 1.3.0.pre.2 → 1.4.0.dev.1

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