steep 1.4.0.dev.1 → 1.4.0.dev.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -2
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +13 -15
  5. data/Gemfile.steep +1 -2
  6. data/Gemfile.steep.lock +20 -18
  7. data/README.md +7 -1
  8. data/Steepfile +16 -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/annotation_parser.rb +40 -20
  15. data/lib/steep/ast/types/factory.rb +56 -10
  16. data/lib/steep/ast/types/name.rb +10 -0
  17. data/lib/steep/diagnostic/ruby.rb +80 -5
  18. data/lib/steep/diagnostic/signature.rb +40 -0
  19. data/lib/steep/drivers/check.rb +4 -4
  20. data/lib/steep/index/rbs_index.rb +12 -3
  21. data/lib/steep/index/signature_symbol_provider.rb +1 -1
  22. data/lib/steep/interface/block.rb +10 -0
  23. data/lib/steep/module_helper.rb +13 -11
  24. data/lib/steep/path_helper.rb +4 -0
  25. data/lib/steep/project/target.rb +1 -3
  26. data/lib/steep/server/interaction_worker.rb +102 -72
  27. data/lib/steep/server/lsp_formatter.rb +14 -5
  28. data/lib/steep/services/completion_provider.rb +10 -12
  29. data/lib/steep/services/goto_service.rb +15 -14
  30. data/lib/steep/services/hover_provider/rbs.rb +29 -9
  31. data/lib/steep/services/hover_provider/ruby.rb +16 -10
  32. data/lib/steep/services/signature_service.rb +36 -39
  33. data/lib/steep/services/type_name_completion.rb +157 -0
  34. data/lib/steep/signature/validator.rb +28 -6
  35. data/lib/steep/source.rb +1 -0
  36. data/lib/steep/subtyping/check.rb +1 -1
  37. data/lib/steep/type_construction.rb +414 -239
  38. data/lib/steep/type_inference/block_params.rb +13 -0
  39. data/lib/steep/type_inference/constant_env.rb +7 -3
  40. data/lib/steep/type_inference/context.rb +3 -3
  41. data/lib/steep/type_inference/method_params.rb +42 -16
  42. data/lib/steep/type_inference/send_args.rb +79 -50
  43. data/lib/steep/type_inference/type_env.rb +7 -1
  44. data/lib/steep/version.rb +1 -1
  45. data/lib/steep.rb +1 -0
  46. data/rbs_collection.steep.lock.yaml +9 -41
  47. data/rbs_collection.steep.yaml +11 -8
  48. data/sample/lib/conference.rb +22 -0
  49. data/sample/sig/conference.rbs +28 -0
  50. data/sig/shims/language-server_protocol.rbs +12 -0
  51. data/sig/shims/parser/nodes.rbs +37 -0
  52. data/sig/shims/parser.rbs +1 -0
  53. data/sig/shims/string.rbs +4 -0
  54. data/sig/steep/annotation_parser.rbs +3 -2
  55. data/sig/steep/ast/annotation/collection.rbs +1 -1
  56. data/sig/steep/ast/types/factory.rbs +12 -8
  57. data/sig/steep/ast/types/name.rbs +4 -0
  58. data/sig/steep/diagnostic/lsp_formatter.rbs +1 -1
  59. data/sig/steep/diagnostic/ruby.rbs +38 -2
  60. data/sig/steep/diagnostic/signature.rbs +18 -14
  61. data/sig/steep/drivers/check.rbs +1 -1
  62. data/sig/steep/drivers/checkfile.rbs +1 -1
  63. data/sig/steep/drivers/diagnostic_printer.rbs +1 -1
  64. data/sig/steep/drivers/watch.rbs +1 -1
  65. data/sig/steep/index/rbs_index.rbs +6 -2
  66. data/sig/steep/index/signature_symbol_provider.rbs +1 -1
  67. data/sig/steep/interface/block.rbs +2 -0
  68. data/sig/steep/interface/builder.rbs +5 -3
  69. data/sig/steep/interface/method_type.rbs +5 -3
  70. data/sig/steep/module_helper.rbs +9 -0
  71. data/sig/steep/path_helper.rbs +3 -1
  72. data/sig/steep/project/target.rbs +7 -7
  73. data/sig/steep/server/base_worker.rbs +1 -1
  74. data/sig/steep/server/interaction_worker.rbs +46 -17
  75. data/sig/steep/server/lsp_formatter.rbs +4 -2
  76. data/sig/steep/server/master.rbs +1 -1
  77. data/sig/steep/server/type_check_worker.rbs +7 -5
  78. data/sig/steep/server/worker_process.rbs +6 -4
  79. data/sig/steep/services/completion_provider.rbs +8 -0
  80. data/sig/steep/services/hover_provider/rbs.rbs +6 -4
  81. data/sig/steep/services/hover_provider/ruby.rbs +8 -4
  82. data/sig/steep/services/signature_service.rbs +27 -3
  83. data/sig/steep/services/type_name_completion.rbs +122 -0
  84. data/sig/steep/signature/validator.rbs +9 -5
  85. data/sig/steep/type_construction.rbs +100 -31
  86. data/sig/steep/type_inference/block_params.rbs +4 -0
  87. data/sig/steep/type_inference/constant_env.rbs +2 -0
  88. data/sig/steep/type_inference/context.rbs +70 -22
  89. data/sig/steep/type_inference/method_params.rbs +43 -24
  90. data/sig/steep/type_inference/multiple_assignment.rbs +1 -1
  91. data/sig/steep/type_inference/send_args.rbs +13 -3
  92. data/sig/steep/typing.rbs +7 -2
  93. data/smoke/diagnostics/test_expectations.yml +1 -0
  94. data/smoke/regexp/a.rb +2 -2
  95. data/steep.gemspec +0 -1
  96. metadata +11 -17
@@ -1,31 +1,45 @@
1
+ use Steep::Interface::Function::Params, Steep::Interface::Block
2
+
1
3
  module Steep
2
4
  module TypeInference
5
+ # Type checking context
3
6
  class Context
7
+ # Information about the method which the body is being type checked
8
+ #
4
9
  class MethodContext
10
+ # Name of the method
5
11
  attr_reader name: Symbol?
6
12
 
13
+ # `nil` when RBS doesn't have the corresponding method definition
7
14
  attr_reader method: RBS::Definition::Method?
8
15
 
16
+ # `nil` when no method type is given
9
17
  attr_reader method_type: Interface::MethodType?
10
18
 
19
+ # Falls back to `untyped`
11
20
  attr_reader return_type: AST::Types::t
12
21
 
13
- attr_reader constructor: bool
14
-
22
+ # The *super* method if identified
15
23
  attr_reader super_method: RBS::Definition::Method?
16
24
 
25
+ # The type of forwarding params when `...` is given
26
+ attr_reader forward_arg_type: [Params, Block?]?
27
+
17
28
  def initialize: (
18
29
  name: Symbol,
19
30
  method: RBS::Definition::Method?,
20
31
  method_type: Interface::MethodType?,
21
32
  return_type: AST::Types::t,
22
- constructor: bool,
23
- super_method: RBS::Definition::Method?
33
+ super_method: RBS::Definition::Method?,
34
+ forward_arg_type: [Params, Block?]?
24
35
  ) -> void
25
36
 
37
+ # Type of the block of the current method type
26
38
  def block_type: () -> Interface::Block?
27
39
  end
28
40
 
41
+ # Information about the block which the body is being type checked
42
+ #
29
43
  class BlockContext
30
44
  # The type of block itself
31
45
  #
@@ -38,6 +52,7 @@ module Steep
38
52
  def subst: (Interface::Substitution) -> BlockContext
39
53
  end
40
54
 
55
+ # Context about the `break` syntax
41
56
  class BreakContext
42
57
  # Type of arguments to `break` statement
43
58
  #
@@ -54,23 +69,40 @@ module Steep
54
69
  def subst: (Interface::Substitution) -> BreakContext
55
70
  end
56
71
 
72
+ # Information about the module which the body is being type checked
73
+ #
57
74
  class ModuleContext
75
+ # The type of an instance of current module
58
76
  attr_reader instance_type: AST::Types::t
59
77
 
78
+ # The type of singleton of current module
60
79
  attr_reader module_type: AST::Types::t
61
80
 
62
- attr_reader defined_instance_methods: untyped
81
+ # The set of name of instance methods that is defined in the `module`/`class` statement
82
+ attr_reader defined_instance_methods: Set[Symbol]
63
83
 
64
- attr_reader defined_module_methods: untyped
84
+ # The set of name of singleton methods that is defined in the `module`/`class` statement
85
+ attr_reader defined_module_methods: Set[Symbol]
65
86
 
87
+ # The nesting of current module
88
+ #
89
+ # Cannot be `nil`.
90
+ #
66
91
  attr_reader nesting: RBS::Resolver::context
67
92
 
68
- attr_reader implement_name: untyped
93
+ # The name that is given to `@implements` annotation
94
+ #
95
+ # `nil` when no `@implements` annotation is given.
96
+ #
97
+ attr_reader implement_name: AST::Annotation::Implements::Module?
69
98
 
99
+ # The name of the class/module.
70
100
  attr_reader class_name: RBS::TypeName
71
101
 
102
+ # The definition of the instance of the module
72
103
  attr_reader instance_definition: RBS::Definition?
73
104
 
105
+ # The definition of the singleton of the module
74
106
  attr_reader module_definition: RBS::Definition?
75
107
 
76
108
  @class_variables: Hash[Symbol, RBS::Types::t]?
@@ -78,19 +110,20 @@ module Steep
78
110
  def initialize: (
79
111
  instance_type: AST::Types::t,
80
112
  module_type: AST::Types::t,
81
- implement_name: untyped,
113
+ implement_name: AST::Annotation::Implements::Module?,
82
114
  class_name: RBS::TypeName,
83
115
  nesting: RBS::Resolver::context,
84
116
  ?instance_definition: RBS::Definition?,
85
117
  ?module_definition: RBS::Definition?
86
118
  ) -> void
87
119
 
88
- def class_variables: () -> Hash[Symbol, RBS::Types::t]?
120
+ # Returns a hash from the name of a class variable to its type
121
+ %a{pure} def class_variables: () -> Hash[Symbol, RBS::Types::t]?
89
122
 
90
123
  def update: (
91
124
  ?instance_type: AST::Types::t,
92
125
  ?module_type: AST::Types::t,
93
- ?implement_name: untyped,
126
+ ?implement_name: AST::Annotation::Implements::Module?,
94
127
  ?class_name: RBS::TypeName,
95
128
  ?instance_definition: RBS::Definition?,
96
129
  ?module_definition: RBS::Definition?,
@@ -98,6 +131,8 @@ module Steep
98
131
  ) -> ModuleContext
99
132
  end
100
133
 
134
+ # Information about the free type variables
135
+ #
101
136
  class TypeVariableContext
102
137
  attr_reader table: Hash[Symbol, Interface::TypeParam]
103
138
 
@@ -105,6 +140,7 @@ module Steep
105
140
 
106
141
  def initialize: (Array[Interface::TypeParam] type_params, ?parent_context: TypeVariableContext?) -> void
107
142
 
143
+ # Returns the upper bound of a type variable
108
144
  def []: (Symbol name) -> AST::Types::t?
109
145
 
110
146
  def upper_bounds: () -> Hash[Symbol, AST::Types::t]
@@ -112,9 +148,14 @@ module Steep
112
148
  def self.empty: () -> TypeVariableContext
113
149
  end
114
150
 
115
- attr_reader call_context: untyped
151
+ # The caller where a method is called from
152
+ attr_reader call_context: MethodCall::context
116
153
 
117
- attr_reader method_context: untyped
154
+ # MethodContext for current execution point
155
+ #
156
+ # `nil` when not in any method definition.
157
+ #
158
+ attr_reader method_context: MethodContext?
118
159
 
119
160
  # BlockContext for current execution point
120
161
  #
@@ -122,10 +163,17 @@ module Steep
122
163
  #
123
164
  attr_reader block_context: BlockContext?
124
165
 
166
+ # BreakContext for current execution point
167
+ #
168
+ # `nil` if `break` is not allowed.
169
+ #
125
170
  attr_reader break_context: BreakContext?
126
171
 
127
- attr_reader module_context: ModuleContext?
172
+ # ModuleContext for current execution point
173
+ attr_reader module_context: ModuleContext
128
174
 
175
+ # The type of `self`
176
+ #
129
177
  attr_reader self_type: AST::Types::t
130
178
 
131
179
  attr_reader type_env: TypeEnv
@@ -133,25 +181,25 @@ module Steep
133
181
  attr_reader variable_context: TypeVariableContext
134
182
 
135
183
  def initialize: (
136
- method_context: untyped,
184
+ method_context: MethodContext?,
137
185
  block_context: BlockContext?,
138
186
  break_context: BreakContext?,
139
- module_context: ModuleContext?,
140
- self_type: untyped,
187
+ module_context: ModuleContext,
188
+ self_type: AST::Types::t,
141
189
  type_env: TypeEnv,
142
- call_context: untyped,
190
+ call_context: MethodCall::context,
143
191
  variable_context: TypeVariableContext
144
192
  ) -> void
145
193
 
146
194
  def with: (
147
- ?method_context: untyped,
195
+ ?method_context: MethodContext?,
148
196
  ?block_context: BlockContext?,
149
197
  ?break_context: BreakContext?,
150
- ?module_context: ModuleContext?,
151
- ?self_type: untyped,
198
+ ?module_context: ModuleContext,
199
+ ?self_type: AST::Types::t,
152
200
  ?type_env: TypeEnv,
153
- ?call_context: untyped,
154
- ?variable_context: untyped
201
+ ?call_context: MethodCall::context,
202
+ ?variable_context: TypeVariableContext
155
203
  ) -> Context
156
204
 
157
205
  def factory: () -> AST::Types::Factory
@@ -1,24 +1,31 @@
1
+ use Parser::AST::Node, Steep::Interface::MethodType
2
+ use Steep::Interface::Function::Params, Steep::Interface::Block
3
+
1
4
  module Steep
2
5
  module TypeInference
6
+ # A MethodParams object provides the information of parameters from MethodType and nodes
7
+ #
8
+ # It primarly provides a mapping from a local variable (method parameter) to its type.
9
+ #
3
10
  class MethodParams
4
11
  class BaseParameter
5
12
  attr_reader name: Symbol
6
13
 
7
- attr_reader type: untyped
14
+ attr_reader type: AST::Types::t?
8
15
 
9
- attr_reader node: Parser::AST::Node
16
+ attr_reader node: Node
10
17
 
11
- def initialize: (name: Symbol, type: untyped, node: Parser::AST::Node) -> void
18
+ def initialize: (name: Symbol, type: AST::Types::t?, node: Node) -> void
12
19
 
13
20
  def optional?: () -> bool
14
21
 
15
- def value: () -> Parser::AST::Node
22
+ def value: () -> Node?
16
23
 
17
24
  def var_type: () -> AST::Types::t
18
25
 
19
26
  def untyped?: () -> bool
20
27
 
21
- def ==: (untyped other) -> untyped
28
+ def ==: (untyped other) -> bool
22
29
 
23
30
  alias eql? ==
24
31
 
@@ -34,27 +41,25 @@ module Steep
34
41
  class BaseRestParameter
35
42
  attr_reader name: Symbol
36
43
 
37
- attr_reader type: untyped
44
+ attr_reader type: AST::Types::t?
38
45
 
39
- attr_reader node: Parser::AST::Node
46
+ attr_reader node: Node
40
47
 
41
- def initialize: (name: Symbol, type: untyped, node: Parser::AST::Node) -> void
48
+ def initialize: (name: Symbol, type: AST::Types::t?, node: Node) -> void
42
49
 
43
50
  def ==: (untyped other) -> bool
44
51
 
45
52
  alias eql? ==
46
53
 
47
54
  def hash: () -> Integer
48
-
49
- def var_type: () -> AST::Types::t
50
55
  end
51
56
 
52
57
  class PositionalRestParameter < BaseRestParameter
53
- def var_type: () -> AST::Types::t
58
+ def var_type: () -> AST::Types::Name::Instance
54
59
  end
55
60
 
56
61
  class KeywordRestParameter < BaseRestParameter
57
- def var_type: () -> AST::Types::t
62
+ def var_type: () -> AST::Types::Name::Instance
58
63
  end
59
64
 
60
65
  class BlockParameter
@@ -62,11 +67,11 @@ module Steep
62
67
 
63
68
  attr_reader type: Interface::Function?
64
69
 
65
- attr_reader node: Parser::AST::Node
70
+ attr_reader node: Node
66
71
 
67
72
  attr_reader self_type: AST::Types::t?
68
73
 
69
- def initialize: (name: Symbol, type: Interface::Function?, node: Parser::AST::Node, optional: boolish, self_type: AST::Types::t?) -> void
74
+ def initialize: (name: Symbol, type: Interface::Function?, node: Node, optional: boolish, self_type: AST::Types::t?) -> void
70
75
 
71
76
  @optional: boolish
72
77
 
@@ -81,28 +86,42 @@ module Steep
81
86
  def hash: () -> Integer
82
87
  end
83
88
 
84
- attr_reader args: untyped
89
+ type param = PositionalParameter | KeywordParameter | PositionalRestParameter | KeywordRestParameter | BlockParameter
90
+
91
+ # The children of `:args` node
92
+ attr_reader args: Array[Node]
93
+
94
+ attr_reader method_type: MethodType?
85
95
 
86
- attr_reader method_type: untyped
96
+ # Mapping from the name of parameter to parameter object
97
+ attr_reader params: Hash[Symbol, param]
87
98
 
88
- attr_reader params: untyped
99
+ attr_reader errors: Array[Diagnostic::Ruby::Base]
89
100
 
90
- attr_reader errors: untyped
101
+ # The type of `...`
102
+ #
103
+ # `nil` if the node doesn't have it.
104
+ #
105
+ attr_reader forward_arg_type: [Params, Block?]?
91
106
 
92
- def initialize: (args: untyped, method_type: untyped) -> void
107
+ def initialize: (args: Array[Node], method_type: MethodType?, forward_arg_type: [Params, Block?]?) -> void
93
108
 
94
- def []: (untyped name) -> untyped
109
+ def []: (Symbol name) -> param
110
+
111
+ def param?: (Symbol) -> bool
95
112
 
96
113
  def size: () -> Integer
97
114
 
98
- def each_param: () { (BaseParameter | BaseRestParameter | BlockParameter) -> void } -> void
99
- | () -> Enumerator[BaseParameter | BaseRestParameter | BlockParameter, void]
115
+ def each_param: () { (param) -> void } -> void
116
+ | () -> Enumerator[param, void]
100
117
 
101
118
  def each: () { (Symbol, AST::Types::t) -> void } -> void
102
119
 
103
- def self.empty: (node: Parser::AST::Node) -> MethodParams
120
+ def update: (?forward_arg_type: [Params, Block?]?) -> MethodParams
121
+
122
+ def self.empty: (node: Node) -> MethodParams
104
123
 
105
- def self.build: (node: Parser::AST::Node, method_type: untyped) -> MethodParams
124
+ def self.build: (node: Node, method_type: MethodType) -> MethodParams
106
125
  end
107
126
  end
108
127
  end
@@ -59,7 +59,7 @@ module Steep
59
59
  # Returns a type hint for multiple assignment right hand side
60
60
  #
61
61
  # It constructs a structure of tuple types, based on the assignment lhs, and variable types.
62
- #
62
+ #
63
63
  def hint_for_mlhs: (Parser::AST::Node mlhs, TypeEnv env) -> AST::Types::t?
64
64
 
65
65
  private
@@ -68,7 +68,7 @@ module Steep
68
68
 
69
69
  def following_args: () -> Array[Parser::AST::Node]
70
70
 
71
- def param: () -> Interface::Function::Params::PositionalParams::param?
71
+ %a{pure} def param: () -> Interface::Function::Params::PositionalParams::param?
72
72
 
73
73
  def update: (?index: Integer, ?positional_params: Interface::Function::Params::PositionalParams?, ?uniform: bool) -> PositionalArgs
74
74
 
@@ -198,6 +198,14 @@ module Steep
198
198
  def node_type: () -> AST::Types::t
199
199
  end
200
200
 
201
+ class ForwardedArgs
202
+ attr_reader node: Parser::AST::Node
203
+
204
+ attr_reader params: Interface::Function::Params
205
+
206
+ def initialize: (node: Parser::AST::Node, params: Interface::Function::Params) -> void
207
+ end
208
+
201
209
  attr_reader node: Parser::AST::Node
202
210
 
203
211
  attr_reader arguments: Array[Parser::AST::Node]
@@ -216,14 +224,16 @@ module Steep
216
224
 
217
225
  def kwargs_node: () -> Parser::AST::Node?
218
226
 
227
+ def forwarded_args_node: () -> Parser::AST::Node?
228
+
219
229
  def positional_arg: () -> PositionalArgs
220
230
 
221
231
  def keyword_args: () -> KeywordArgs
222
232
 
223
233
  def block_pass_arg: () -> BlockPassArg
224
234
 
225
- def each: () { (PositionalArgs::arg | KeywordArgs::arg) -> void } -> Array[Diagnostic::Ruby::Base]
226
- | () -> Enumerator[PositionalArgs::arg | KeywordArgs::arg, Array[Diagnostic::Ruby::Base]]
235
+ def each: () { (PositionalArgs::arg | KeywordArgs::arg) -> void } -> [ForwardedArgs?, Array[Diagnostic::Ruby::Base]]
236
+ | () -> Enumerator[PositionalArgs::arg | KeywordArgs::arg, [ForwardedArgs?, Array[Diagnostic::Ruby::Base]]]
227
237
  end
228
238
  end
229
239
  end
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/smoke/regexp/a.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  new_1 = Regexp.new("a")
2
2
  new_1.foo
3
3
 
4
- new_2 = Regexp.new("a", true)
4
+ new_2 = Regexp.new("a", nil)
5
5
  new_2.foo
6
6
 
7
7
  new_3 = Regexp.new("a", Regexp::EXTENDED | Regexp::IGNORECASE)
@@ -13,7 +13,7 @@ new_4.foo
13
13
  compile_1 = Regexp.compile("a")
14
14
  compile_1.foo
15
15
 
16
- compile_2 = Regexp.compile("a", true)
16
+ compile_2 = Regexp.compile("a", false)
17
17
  compile_2.foo
18
18
 
19
19
  compile_3 = Regexp.compile("a", Regexp::EXTENDED | Regexp::IGNORECASE)
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.1
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-01-06 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
@@ -782,7 +776,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
782
776
  - !ruby/object:Gem::Version
783
777
  version: 1.3.1
784
778
  requirements: []
785
- rubygems_version: 3.3.26
779
+ rubygems_version: 3.4.6
786
780
  signing_key:
787
781
  specification_version: 4
788
782
  summary: Gradual Typing for Ruby