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

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 (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