steep 1.4.0 → 1.5.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.vscode/steep-shared.code-snippets +41 -0
  4. data/CHANGELOG.md +37 -0
  5. data/Gemfile +2 -5
  6. data/Gemfile.lock +20 -17
  7. data/Gemfile.steep +1 -1
  8. data/Gemfile.steep.lock +6 -6
  9. data/Rakefile +198 -0
  10. data/Steepfile +3 -1
  11. data/lib/steep/ast/builtin.rb +9 -7
  12. data/lib/steep/ast/node/type_application.rb +13 -5
  13. data/lib/steep/ast/node/type_assertion.rb +28 -9
  14. data/lib/steep/ast/types/factory.rb +39 -7
  15. data/lib/steep/cli.rb +2 -1
  16. data/lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb +20 -0
  17. data/lib/steep/diagnostic/lsp_formatter.rb +3 -3
  18. data/lib/steep/diagnostic/ruby.rb +73 -12
  19. data/lib/steep/drivers/annotations.rb +1 -0
  20. data/lib/steep/drivers/check.rb +18 -13
  21. data/lib/steep/drivers/checkfile.rb +1 -1
  22. data/lib/steep/drivers/diagnostic_printer.rb +6 -4
  23. data/lib/steep/drivers/init.rb +2 -1
  24. data/lib/steep/drivers/print_project.rb +3 -1
  25. data/lib/steep/drivers/stats.rb +1 -1
  26. data/lib/steep/drivers/utils/driver_helper.rb +10 -8
  27. data/lib/steep/drivers/utils/jobs_option.rb +6 -1
  28. data/lib/steep/drivers/validate.rb +9 -5
  29. data/lib/steep/drivers/watch.rb +8 -3
  30. data/lib/steep/expectations.rb +144 -75
  31. data/lib/steep/index/signature_symbol_provider.rb +22 -13
  32. data/lib/steep/node_helper.rb +172 -0
  33. data/lib/steep/server/base_worker.rb +2 -1
  34. data/lib/steep/server/change_buffer.rb +17 -15
  35. data/lib/steep/server/interaction_worker.rb +20 -0
  36. data/lib/steep/server/lsp_formatter.rb +20 -1
  37. data/lib/steep/server/master.rb +51 -36
  38. data/lib/steep/server/type_check_worker.rb +18 -2
  39. data/lib/steep/server/worker_process.rb +19 -2
  40. data/lib/steep/services/completion_provider.rb +189 -3
  41. data/lib/steep/services/file_loader.rb +1 -1
  42. data/lib/steep/services/goto_service.rb +123 -27
  43. data/lib/steep/services/signature_help_provider.rb +1 -6
  44. data/lib/steep/signature/validator.rb +6 -1
  45. data/lib/steep/source.rb +165 -108
  46. data/lib/steep/subtyping/check.rb +5 -3
  47. data/lib/steep/subtyping/variable_variance.rb +11 -0
  48. data/lib/steep/thread_waiter.rb +35 -0
  49. data/lib/steep/type_construction.rb +416 -171
  50. data/lib/steep/type_inference/block_params.rb +50 -9
  51. data/lib/steep/type_inference/context.rb +4 -0
  52. data/lib/steep/type_inference/context_array.rb +6 -6
  53. data/lib/steep/type_inference/logic_type_interpreter.rb +202 -68
  54. data/lib/steep/typing.rb +5 -4
  55. data/lib/steep/version.rb +1 -1
  56. data/lib/steep.rb +21 -14
  57. data/sample/Steepfile +1 -0
  58. data/sig/shims/bundler.rbs +3 -0
  59. data/sig/shims/language-server_protocol.rbs +151 -10
  60. data/sig/shims/parser/nodes.rbs +210 -0
  61. data/sig/shims/parser.rbs +10 -0
  62. data/sig/steep/ast/builtin.rbs +2 -2
  63. data/sig/steep/ast/node/type_application.rbs +2 -2
  64. data/sig/steep/ast/node/type_assertion.rbs +8 -2
  65. data/sig/steep/ast/types/factory.rbs +28 -1
  66. data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +13 -0
  67. data/sig/steep/diagnostic/lsp_formatter.rbs +5 -2
  68. data/sig/steep/diagnostic/ruby.rbs +76 -6
  69. data/sig/steep/drivers/annotations.rbs +5 -5
  70. data/sig/steep/drivers/check.rbs +11 -11
  71. data/sig/steep/drivers/diagnostic_printer.rbs +9 -9
  72. data/sig/steep/drivers/init.rbs +6 -6
  73. data/sig/steep/drivers/print_project.rbs +4 -4
  74. data/sig/steep/drivers/utils/driver_helper.rbs +8 -6
  75. data/sig/steep/drivers/validate.rbs +4 -4
  76. data/sig/steep/drivers/watch.rbs +1 -1
  77. data/sig/steep/expectations.rbs +72 -0
  78. data/sig/steep/index/signature_symbol_provider.rbs +22 -10
  79. data/sig/steep/interface/block.rbs +2 -0
  80. data/sig/steep/interface/function.rbs +2 -2
  81. data/sig/steep/node_helper.rbs +56 -0
  82. data/sig/steep/path_helper.rbs +1 -1
  83. data/sig/steep/project/options.rbs +1 -1
  84. data/sig/steep/range_extension.rbs +2 -2
  85. data/sig/steep/server/master.rbs +16 -2
  86. data/sig/steep/server/type_check_worker.rbs +5 -1
  87. data/sig/steep/server/worker_process.rbs +5 -1
  88. data/sig/steep/services/completion_provider.rbs +31 -1
  89. data/sig/steep/services/goto_service.rbs +80 -19
  90. data/sig/steep/source.rbs +27 -4
  91. data/sig/steep/subtyping/variable_variance.rbs +9 -9
  92. data/sig/steep/thread_waiter.rbs +13 -0
  93. data/sig/steep/type_construction.rbs +26 -9
  94. data/sig/steep/type_inference/block_params.rbs +13 -1
  95. data/sig/steep/type_inference/context.rbs +5 -1
  96. data/sig/steep/type_inference/context_array.rbs +16 -15
  97. data/sig/steep/type_inference/logic_type_interpreter.rbs +36 -6
  98. data/sig/steep/type_inference/type_env_builder.rbs +4 -0
  99. data/sig/steep/typing.rbs +22 -20
  100. data/sig/steep.rbs +14 -13
  101. data/smoke/and/a.rb +1 -1
  102. data/smoke/and/test_expectations.yml +5 -7
  103. data/smoke/diagnostics/incompatible_annotation.rb +1 -1
  104. data/smoke/diagnostics/test_expectations.yml +2 -2
  105. data/smoke/enumerator/a.rb +0 -7
  106. data/smoke/enumerator/b.rb +0 -2
  107. data/smoke/enumerator/test_expectations.yml +17 -105
  108. data/smoke/lambda/a.rb +0 -5
  109. data/smoke/lambda/test_expectations.yml +0 -22
  110. data/smoke/type_case/test_expectations.yml +10 -0
  111. data/steep.gemspec +2 -2
  112. metadata +16 -9
data/sig/steep/typing.rbs CHANGED
@@ -1,11 +1,13 @@
1
+ use Steep::TypeInference::Context, Steep::TypeInference::ContextArray, Steep::TypeInference::MethodCall
2
+
1
3
  module Steep
2
4
  class Typing
3
5
  class UnknownNodeError < StandardError
4
- attr_reader op: untyped
6
+ attr_reader op: Symbol
5
7
 
6
- attr_reader node: untyped
8
+ attr_reader node: Parser::AST::Node
7
9
 
8
- def initialize: (untyped op, node: untyped) -> void
10
+ def initialize: (Symbol op, node: Parser::AST::Node) -> void
9
11
  end
10
12
 
11
13
  attr_reader source: Source
@@ -16,43 +18,43 @@ module Steep
16
18
 
17
19
  attr_reader parent: Typing?
18
20
 
19
- attr_reader parent_last_update: untyped
21
+ attr_reader parent_last_update: Integer?
20
22
 
21
- attr_reader last_update: untyped
23
+ attr_reader last_update: Integer
22
24
 
23
- attr_reader should_update: untyped
25
+ attr_reader should_update: bool
24
26
 
25
- attr_reader contexts: untyped
27
+ attr_reader contexts: ContextArray
26
28
 
27
- attr_reader root_context: untyped
29
+ attr_reader root_context: Context
28
30
 
29
- attr_reader method_calls: untyped
31
+ attr_reader method_calls: Hash[Parser::AST::Node, MethodCall::t]
30
32
 
31
- attr_reader source_index: untyped
33
+ attr_reader source_index: Index::SourceIndex
32
34
 
33
- def initialize: (source: untyped, root_context: untyped, ?parent: untyped?, ?parent_last_update: untyped, ?contexts: untyped?, ?source_index: untyped?) -> void
35
+ def initialize: (source: Source, root_context: Context, ?parent: Typing?, ?parent_last_update: Integer?, ?contexts: ContextArray?, ?source_index: Index::SourceIndex?) -> void
34
36
 
35
37
  def add_error: (Diagnostic::Ruby::Base error) -> void
36
38
 
37
- def add_typing: (Parser::AST::Node node, AST::Types::t `type`, top) -> untyped
39
+ def add_typing: (Parser::AST::Node node, AST::Types::t `type`, top) -> void
38
40
 
39
- def add_call: (untyped node, untyped call) -> untyped
41
+ def add_call: (Parser::AST::Node node, MethodCall::t call) -> void
40
42
 
41
- def add_context: (Range[Integer] range, context: TypeInference::Context) -> void
43
+ def add_context: (Range[Integer] range, context: Context) -> void
42
44
 
43
- def has_type?: (untyped node) -> untyped
45
+ def has_type?: (Parser::AST::Node node) -> bool
44
46
 
45
47
  def type_of: (node: Parser::AST::Node) -> AST::Types::t
46
48
 
47
49
  def call_of: (node: Parser::AST::Node) -> TypeInference::MethodCall::t
48
50
 
49
- def add_context_for_node: (untyped node, context: untyped) -> untyped
51
+ def add_context_for_node: (Parser::AST::Node node, context: Context) -> void
50
52
 
51
- def block_range: (untyped node) -> ::Range[untyped]
53
+ def block_range: (Parser::AST::Node node) -> Range[Integer]
52
54
 
53
- def add_context_for_body: (untyped node, context: untyped) -> untyped
55
+ def add_context_for_body: (Parser::AST::Node node, context: Context) -> void
54
56
 
55
- def context_at: (line: Integer, column: Integer) -> TypeInference::Context
57
+ def context_at: (line: Integer, column: Integer) -> Context
56
58
 
57
59
  def dump: (untyped io) -> untyped
58
60
 
@@ -61,7 +63,7 @@ module Steep
61
63
  def new_child: [A] (Range[Integer] range) { (Typing) -> A } -> A
62
64
  | (Range[Integer]) -> Typing
63
65
 
64
- def each_typing: () { (Parser::AST::Node, AST::Types::t) -> void } -> void
66
+ def each_typing: () { ([Parser::AST::Node, AST::Types::t]) -> void } -> void
65
67
 
66
68
  # Push the current changes to the `#parent` typing
67
69
  #
data/sig/steep.rbs CHANGED
@@ -3,33 +3,34 @@ module Steep
3
3
 
4
4
  def self.logger: () -> (Logger & ActiveSupport::TaggedLogging)
5
5
 
6
- def self.new_logger: (untyped output, untyped prev_level) -> untyped
6
+ def self.new_logger: (IO output, Integer? prev_level) -> (Logger & ActiveSupport::TaggedLogging)
7
7
 
8
- def self.log_output: () -> untyped
9
-
10
- def self.log_output=: (untyped output) -> untyped
8
+ attr_accessor self.log_output: IO
11
9
 
12
10
  def self.measure: [A] (String message, ?level: ::Symbol) { () -> A } -> A
13
11
 
14
- def self.log_error: (untyped exn, ?message: ::String) -> untyped
12
+ def self.log_error: (Exception exn, ?message: ::String) -> void
15
13
 
16
- self.@logger: ActiveSupport::TaggedLogging?
14
+ self.@logger: (Logger & ActiveSupport::TaggedLogging)?
17
15
 
18
16
  class Sampler
17
+ type sample = [String, Float]
18
+ @samples: Array[sample]
19
+
19
20
  def initialize: () -> void
20
21
 
21
- def sample: (untyped message) { () -> untyped } -> untyped
22
+ def sample: [A] (String message) { () -> A } -> A
22
23
 
23
- def count: () -> untyped
24
+ def count: () -> Integer
24
25
 
25
- def total: () -> untyped
26
+ def total: () -> Float
26
27
 
27
- def slowests: (untyped num) -> untyped
28
+ def slowests: (Integer num) -> Array[sample]
28
29
 
29
- def average: () -> (untyped | 0)
30
+ def average: () -> Float
30
31
 
31
- def percentile: (untyped p) -> untyped
32
+ def percentile: (Integer p) -> Float
32
33
  end
33
34
 
34
- def self.measure2: (untyped message, ?level: ::Symbol) { (untyped) -> untyped } -> untyped
35
+ def self.measure2: [A] (String message, ?level: ::Symbol) { (Sampler) -> A } -> A
35
36
  end
data/smoke/and/a.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # @type var b: String
2
2
  # @type var c: ::Integer
3
3
 
4
- a = "foo"
4
+ a = ["foo"].sample
5
5
 
6
6
  b = a && a.to_str
7
7
 
@@ -10,8 +10,8 @@
10
10
  character: 17
11
11
  severity: ERROR
12
12
  message: |-
13
- Cannot assign a value of type `(::String | nil)` to a variable of type `::String`
14
- (::String | nil) <: ::String
13
+ Cannot assign a value of type `(nil | ::String)` to a variable of type `::String`
14
+ (nil | ::String) <: ::String
15
15
  nil <: ::String
16
16
  code: Ruby::IncompatibleAssignment
17
17
  - range:
@@ -23,9 +23,7 @@
23
23
  character: 17
24
24
  severity: ERROR
25
25
  message: |-
26
- Cannot assign a value of type `(::String | nil)` to a variable of type `::Integer`
27
- (::String | nil) <: ::Integer
28
- ::String <: ::Integer
29
- ::Object <: ::Integer
30
- ::BasicObject <: ::Integer
26
+ Cannot assign a value of type `(nil | ::String)` to a variable of type `::Integer`
27
+ (nil | ::String) <: ::Integer
28
+ nil <: ::Integer
31
29
  code: Ruby::IncompatibleAssignment
@@ -1,6 +1,6 @@
1
1
  a = [1,2,3]
2
2
 
3
- if 1
3
+ if _ = 1
4
4
  # @type var a: String
5
5
  a + ""
6
6
  end
@@ -130,8 +130,8 @@
130
130
  line: 11
131
131
  character: 26
132
132
  severity: ERROR
133
- message: The branch is unreachable because the condition is exhaustive
134
- code: Ruby::ElseOnExhaustiveCase
133
+ message: The branch is unreachable
134
+ code: Ruby::UnreachableBranch
135
135
  - file: incompatible_annotation.rb
136
136
  diagnostics:
137
137
  - range:
@@ -3,11 +3,4 @@
3
3
  a = [1]
4
4
 
5
5
  hash = a.each.with_object("") do |x, y|
6
- hash = x
7
- hash = y
8
- end
9
-
10
- hash = a.each.with_index do |x, y|
11
- hash = x
12
- hash = y
13
6
  end
@@ -4,12 +4,10 @@
4
4
  a = [1]
5
5
 
6
6
  b = a.each.with_object([]) do |i, xs|
7
- # @type var xs: String
8
7
  xs << i.to_s
9
8
  end
10
9
 
11
10
  c = a.each.with_object([]) do |i, xs|
12
- # @type var xs: Array[String]
13
11
  xs << i.to_s
14
12
  end
15
13
 
@@ -4,98 +4,39 @@
4
4
  - range:
5
5
  start:
6
6
  line: 5
7
- character: 0
8
- end:
9
- line: 8
10
- character: 3
11
- severity: ERROR
12
- message: |-
13
- Cannot assign a value of type `::String` to a variable of type `::Hash[::Symbol, ::String]`
14
- ::String <: ::Hash[::Symbol, ::String]
15
- ::Object <: ::Hash[::Symbol, ::String]
16
- ::BasicObject <: ::Hash[::Symbol, ::String]
17
- code: Ruby::IncompatibleAssignment
18
- - range:
19
- start:
20
- line: 6
21
- character: 2
7
+ character: 7
22
8
  end:
23
9
  line: 6
24
- character: 10
25
- severity: ERROR
26
- message: |-
27
- Cannot assign a value of type `::Integer` to a variable of type `::Hash[::Symbol, ::String]`
28
- ::Integer <: ::Hash[::Symbol, ::String]
29
- ::Numeric <: ::Hash[::Symbol, ::String]
30
- ::Object <: ::Hash[::Symbol, ::String]
31
- ::BasicObject <: ::Hash[::Symbol, ::String]
32
- code: Ruby::IncompatibleAssignment
33
- - range:
34
- start:
35
- line: 7
36
- character: 2
37
- end:
38
- line: 7
39
- character: 10
40
- severity: ERROR
41
- message: |-
42
- Cannot assign a value of type `::String` to a variable of type `::Hash[::Symbol, ::String]`
43
- ::String <: ::Hash[::Symbol, ::String]
44
- ::Object <: ::Hash[::Symbol, ::String]
45
- ::BasicObject <: ::Hash[::Symbol, ::String]
46
- code: Ruby::IncompatibleAssignment
47
- - range:
48
- start:
49
- line: 10
50
- character: 0
51
- end:
52
- line: 13
53
10
  character: 3
54
11
  severity: ERROR
55
12
  message: |-
56
- Cannot assign a value of type `::Array[::Integer]` to a variable of type `::Hash[::Symbol, ::String]`
57
- ::Array[::Integer] <: ::Hash[::Symbol, ::String]
58
- ::Object <: ::Hash[::Symbol, ::String]
59
- ::BasicObject <: ::Hash[::Symbol, ::String]
60
- code: Ruby::IncompatibleAssignment
13
+ Cannot find compatible overloading of method `with_object` of type `::Enumerator[::Integer, ::Array[::Integer]]`
14
+ Method types:
15
+ def with_object: [U] (U) { (::Integer, U) -> untyped } -> U
16
+ | [U] (U) -> ::Enumerator[[::Integer, U], U]
17
+ code: Ruby::UnresolvedOverloading
18
+ - file: b.rb
19
+ diagnostics:
61
20
  - range:
62
21
  start:
63
22
  line: 11
64
- character: 2
23
+ character: 8
65
24
  end:
66
25
  line: 11
67
- character: 10
26
+ character: 14
68
27
  severity: ERROR
69
28
  message: |-
70
- Cannot assign a value of type `::Integer` to a variable of type `::Hash[::Symbol, ::String]`
71
- ::Integer <: ::Hash[::Symbol, ::String]
72
- ::Numeric <: ::Hash[::Symbol, ::String]
73
- ::Object <: ::Hash[::Symbol, ::String]
74
- ::BasicObject <: ::Hash[::Symbol, ::String]
75
- code: Ruby::IncompatibleAssignment
29
+ Cannot pass a value of type `::String` as an argument of type `::Integer`
30
+ ::String <: ::Integer
31
+ ::Object <: ::Integer
32
+ ::BasicObject <: ::Integer
33
+ code: Ruby::ArgumentTypeMismatch
76
34
  - range:
77
35
  start:
78
- line: 12
79
- character: 2
80
- end:
81
- line: 12
82
- character: 10
83
- severity: ERROR
84
- message: |-
85
- Cannot assign a value of type `::Integer` to a variable of type `::Hash[::Symbol, ::String]`
86
- ::Integer <: ::Hash[::Symbol, ::String]
87
- ::Numeric <: ::Hash[::Symbol, ::String]
88
- ::Object <: ::Hash[::Symbol, ::String]
89
- ::BasicObject <: ::Hash[::Symbol, ::String]
90
- code: Ruby::IncompatibleAssignment
91
- - file: b.rb
92
- diagnostics:
93
- - range:
94
- start:
95
- line: 6
36
+ line: 15
96
37
  character: 4
97
38
  end:
98
- line: 9
39
+ line: 17
99
40
  character: 3
100
41
  severity: ERROR
101
42
  message: |-
@@ -104,32 +45,3 @@
104
45
  def with_object: [U] (U) { (::Integer, U) -> untyped } -> U
105
46
  | [U] (U) -> ::Enumerator[[::Integer, U], U]
106
47
  code: Ruby::UnresolvedOverloading
107
- - range:
108
- start:
109
- line: 11
110
- character: 0
111
- end:
112
- line: 14
113
- character: 3
114
- severity: ERROR
115
- message: |-
116
- Cannot assign a value of type `::Array[::String]` to a variable of type `::Array[::Integer]`
117
- ::Array[::String] <: ::Array[::Integer]
118
- ::String <: ::Integer
119
- ::Object <: ::Integer
120
- ::BasicObject <: ::Integer
121
- code: Ruby::IncompatibleAssignment
122
- - range:
123
- start:
124
- line: 17
125
- character: 0
126
- end:
127
- line: 19
128
- character: 3
129
- severity: ERROR
130
- message: |-
131
- Cannot assign a value of type `::Array[untyped]` to a variable of type `::String`
132
- ::Array[untyped] <: ::String
133
- ::Object <: ::String
134
- ::BasicObject <: ::String
135
- code: Ruby::IncompatibleAssignment
data/smoke/lambda/a.rb CHANGED
@@ -6,10 +6,5 @@ a = -> (x, y) do
6
6
  x + y
7
7
  end["foo", "bar"]
8
8
 
9
- # @type var b: ^(Integer) -> Integer
10
- b = lambda do |x|
11
- x + 1
12
- end
13
-
14
9
  # @type var c: ^(Integer) -> Integer
15
10
  c = -> (x) { x + 1 }
@@ -15,25 +15,3 @@
15
15
  ::Object <: ::Integer
16
16
  ::BasicObject <: ::Integer
17
17
  code: Ruby::IncompatibleAssignment
18
- - range:
19
- start:
20
- line: 10
21
- character: 0
22
- end:
23
- line: 12
24
- character: 3
25
- severity: ERROR
26
- message: |-
27
- Cannot assign a value of type `::Proc` to a variable of type `^(::Integer) -> ::Integer`
28
- ::Proc <: ^(::Integer) -> ::Integer
29
- code: Ruby::IncompatibleAssignment
30
- - range:
31
- start:
32
- line: 11
33
- character: 4
34
- end:
35
- line: 11
36
- character: 5
37
- severity: ERROR
38
- message: Type `nil` does not have method `+`
39
- code: Ruby::NoMethod
@@ -11,6 +11,16 @@
11
11
  severity: ERROR
12
12
  message: Type `(::Integer | ::String)` does not have method `foobar`
13
13
  code: Ruby::NoMethod
14
+ - range:
15
+ start:
16
+ line: 12
17
+ character: 2
18
+ end:
19
+ line: 12
20
+ character: 10
21
+ severity: ERROR
22
+ message: The branch is unreachable
23
+ code: Ruby::UnreachableBranch
14
24
  - range:
15
25
  start:
16
26
  line: 12
data/steep.gemspec CHANGED
@@ -33,8 +33,8 @@ Gem::Specification.new do |spec|
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"
37
- spec.add_runtime_dependency "concurrent-ruby", ">= 1.2.2"
36
+ spec.add_runtime_dependency "rbs", ">= 3.1.0"
37
+ spec.add_runtime_dependency "concurrent-ruby", ">= 1.1.10"
38
38
  spec.add_runtime_dependency "terminal-table", ">= 2", "< 4"
39
39
  spec.add_runtime_dependency "securerandom", ">= 0.1"
40
40
  spec.add_runtime_dependency "json", ">= 2.1.0"
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
4
+ version: 1.5.0.pre.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: 2023-04-25 00:00:00.000000000 Z
11
+ date: 2023-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -98,28 +98,28 @@ dependencies:
98
98
  requirements:
99
99
  - - ">="
100
100
  - !ruby/object:Gem::Version
101
- version: 2.8.0
101
+ version: 3.1.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
108
+ version: 3.1.0
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: concurrent-ruby
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 1.2.2
115
+ version: 1.1.10
116
116
  type: :runtime
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 1.2.2
122
+ version: 1.1.10
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: terminal-table
125
125
  requirement: !ruby/object:Gem::Requirement
@@ -237,6 +237,7 @@ files:
237
237
  - ".github/workflows/ruby.yml"
238
238
  - ".gitignore"
239
239
  - ".gitmodules"
240
+ - ".vscode/steep-shared.code-snippets"
240
241
  - CHANGELOG.md
241
242
  - Gemfile
242
243
  - Gemfile.lock
@@ -287,6 +288,7 @@ files:
287
288
  - lib/steep/ast/types/var.rb
288
289
  - lib/steep/ast/types/void.rb
289
290
  - lib/steep/cli.rb
291
+ - lib/steep/diagnostic/deprecated/else_on_exhaustive_case.rb
290
292
  - lib/steep/diagnostic/deprecated/unknown_constant_assigned.rb
291
293
  - lib/steep/diagnostic/helper.rb
292
294
  - lib/steep/diagnostic/lsp_formatter.rb
@@ -358,6 +360,7 @@ files:
358
360
  - lib/steep/subtyping/relation.rb
359
361
  - lib/steep/subtyping/result.rb
360
362
  - lib/steep/subtyping/variable_variance.rb
363
+ - lib/steep/thread_waiter.rb
361
364
  - lib/steep/type_construction.rb
362
365
  - lib/steep/type_inference/block_params.rb
363
366
  - lib/steep/type_inference/constant_env.rb
@@ -380,6 +383,7 @@ files:
380
383
  - sample/lib/length.rb
381
384
  - sample/sig/conference.rbs
382
385
  - sample/sig/length.rbs
386
+ - sig/shims/bundler.rbs
383
387
  - sig/shims/concurrent-ruby.rbs
384
388
  - sig/shims/exception.rbs
385
389
  - sig/shims/language-server_protocol.rbs
@@ -420,6 +424,7 @@ files:
420
424
  - sig/steep/ast/types/var.rbs
421
425
  - sig/steep/ast/types/void.rbs
422
426
  - sig/steep/cli.rbs
427
+ - sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs
423
428
  - sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs
424
429
  - sig/steep/diagnostic/helper.rbs
425
430
  - sig/steep/diagnostic/lsp_formatter.rbs
@@ -440,6 +445,7 @@ files:
440
445
  - sig/steep/drivers/watch.rbs
441
446
  - sig/steep/drivers/worker.rbs
442
447
  - sig/steep/equatable.rbs
448
+ - sig/steep/expectations.rbs
443
449
  - sig/steep/index/rbs_index.rbs
444
450
  - sig/steep/index/signature_symbol_provider.rbs
445
451
  - sig/steep/index/source_index.rbs
@@ -488,6 +494,7 @@ files:
488
494
  - sig/steep/subtyping/relation.rbs
489
495
  - sig/steep/subtyping/result.rbs
490
496
  - sig/steep/subtyping/variable_variance.rbs
497
+ - sig/steep/thread_waiter.rbs
491
498
  - sig/steep/type_construction.rbs
492
499
  - sig/steep/type_inference/block_params.rbs
493
500
  - sig/steep/type_inference/constant_env.rbs
@@ -775,11 +782,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
775
782
  version: 2.7.0
776
783
  required_rubygems_version: !ruby/object:Gem::Requirement
777
784
  requirements:
778
- - - ">="
785
+ - - ">"
779
786
  - !ruby/object:Gem::Version
780
- version: '0'
787
+ version: 1.3.1
781
788
  requirements: []
782
- rubygems_version: 3.4.6
789
+ rubygems_version: 3.4.10
783
790
  signing_key:
784
791
  specification_version: 4
785
792
  summary: Gradual Typing for Ruby