steep 1.7.0.dev.3 → 1.7.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +18 -0
- data/doc/narrowing.md +1 -1
- data/doc/shape.md +176 -0
- data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
- data/lib/steep/ast/types/factory.rb +27 -18
- data/lib/steep/ast/types/proc.rb +14 -9
- data/lib/steep/interface/block.rb +1 -1
- data/lib/steep/interface/builder.rb +1 -0
- data/lib/steep/interface/function.rb +14 -6
- data/lib/steep/interface/method_type.rb +15 -7
- data/lib/steep/project/pattern.rb +1 -2
- data/lib/steep/rake_task.rb +132 -0
- data/lib/steep/server/interaction_worker.rb +6 -0
- data/lib/steep/server/lsp_formatter.rb +2 -0
- data/lib/steep/services/completion_provider.rb +1 -1
- data/lib/steep/services/file_loader.rb +15 -20
- data/lib/steep/services/signature_help_provider.rb +11 -9
- data/lib/steep/signature/validator.rb +1 -1
- data/lib/steep/subtyping/check.rb +15 -6
- data/lib/steep/subtyping/variable_variance.rb +3 -3
- data/lib/steep/type_construction.rb +186 -149
- data/lib/steep/type_inference/block_params.rb +1 -1
- data/lib/steep/type_inference/logic_type_interpreter.rb +2 -1
- data/lib/steep/type_inference/method_params.rb +16 -0
- data/lib/steep/type_inference/send_args.rb +5 -2
- data/lib/steep/version.rb +1 -1
- data/steep.gemspec +5 -2
- metadata +7 -145
- data/.github/dependabot.yml +0 -28
- data/.github/workflows/ruby-windows.yml +0 -35
- data/.github/workflows/ruby.yml +0 -32
- data/.vscode/steep-shared.code-snippets +0 -41
- data/Gemfile +0 -14
- data/Gemfile.lock +0 -104
- data/Gemfile.steep +0 -0
- data/gemfile_steep/Gemfile +0 -3
- data/gemfile_steep/Gemfile.lock +0 -77
- data/rbs_collection.steep.lock.yaml +0 -108
- data/rbs_collection.steep.yaml +0 -23
- data/sig/shims/bundler.rbs +0 -3
- data/sig/shims/concurrent-ruby.rbs +0 -39
- data/sig/shims/exception.rbs +0 -4
- data/sig/shims/language-server_protocol.rbs +0 -450
- data/sig/shims/parser/comment.rbs +0 -33
- data/sig/shims/parser/nodes.rbs +0 -252
- data/sig/shims/parser/source/map.rbs +0 -146
- data/sig/shims/parser/source/range.rbs +0 -237
- data/sig/shims/parser.rbs +0 -69
- data/sig/shims/string.rbs +0 -4
- data/sig/shims/tagged_logging.rbs +0 -6
- data/sig/shims/yaml.rbs +0 -4
- data/sig/steep/annotation_parser.rbs +0 -60
- data/sig/steep/ast/annotation/collection.rbs +0 -78
- data/sig/steep/ast/annotation.rbs +0 -121
- data/sig/steep/ast/builtin.rbs +0 -69
- data/sig/steep/ast/ignore.rbs +0 -66
- data/sig/steep/ast/node/type_application.rbs +0 -31
- data/sig/steep/ast/node/type_assertion.rbs +0 -32
- data/sig/steep/ast/types/any.rbs +0 -29
- data/sig/steep/ast/types/boolean.rbs +0 -31
- data/sig/steep/ast/types/bot.rbs +0 -29
- data/sig/steep/ast/types/class.rbs +0 -33
- data/sig/steep/ast/types/factory.rbs +0 -110
- data/sig/steep/ast/types/helper.rbs +0 -24
- data/sig/steep/ast/types/instance.rbs +0 -33
- data/sig/steep/ast/types/intersection.rbs +0 -40
- data/sig/steep/ast/types/literal.rbs +0 -35
- data/sig/steep/ast/types/logic.rbs +0 -83
- data/sig/steep/ast/types/name.rbs +0 -84
- data/sig/steep/ast/types/nil.rbs +0 -31
- data/sig/steep/ast/types/proc.rbs +0 -53
- data/sig/steep/ast/types/record.rbs +0 -39
- data/sig/steep/ast/types/self.rbs +0 -33
- data/sig/steep/ast/types/top.rbs +0 -29
- data/sig/steep/ast/types/tuple.rbs +0 -37
- data/sig/steep/ast/types/union.rbs +0 -40
- data/sig/steep/ast/types/var.rbs +0 -42
- data/sig/steep/ast/types/void.rbs +0 -29
- data/sig/steep/ast/types.rbs +0 -16
- data/sig/steep/cli.rbs +0 -55
- data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
- data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
- data/sig/steep/diagnostic/helper.rbs +0 -15
- data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
- data/sig/steep/diagnostic/ruby.rbs +0 -703
- data/sig/steep/diagnostic/signature.rbs +0 -252
- data/sig/steep/drivers/annotations.rbs +0 -17
- data/sig/steep/drivers/check.rbs +0 -33
- data/sig/steep/drivers/checkfile.rbs +0 -27
- data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
- data/sig/steep/drivers/init.rbs +0 -19
- data/sig/steep/drivers/langserver.rbs +0 -36
- data/sig/steep/drivers/print_project.rbs +0 -15
- data/sig/steep/drivers/stats.rbs +0 -47
- data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
- data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
- data/sig/steep/drivers/validate.rbs +0 -15
- data/sig/steep/drivers/vendor.rbs +0 -19
- data/sig/steep/drivers/watch.rbs +0 -27
- data/sig/steep/drivers/worker.rbs +0 -29
- data/sig/steep/equatable.rbs +0 -11
- data/sig/steep/expectations.rbs +0 -72
- data/sig/steep/index/rbs_index.rbs +0 -141
- data/sig/steep/index/signature_symbol_provider.rbs +0 -41
- data/sig/steep/index/source_index.rbs +0 -63
- data/sig/steep/interface/block.rbs +0 -41
- data/sig/steep/interface/builder.rbs +0 -152
- data/sig/steep/interface/function.rbs +0 -270
- data/sig/steep/interface/method_type.rbs +0 -105
- data/sig/steep/interface/shape.rbs +0 -80
- data/sig/steep/interface/substitution.rbs +0 -51
- data/sig/steep/interface/type_param.rbs +0 -43
- data/sig/steep/method_name.rbs +0 -30
- data/sig/steep/module_helper.rbs +0 -16
- data/sig/steep/node_helper.rbs +0 -91
- data/sig/steep/path_helper.rbs +0 -15
- data/sig/steep/project/dsl.rbs +0 -108
- data/sig/steep/project/options.rbs +0 -47
- data/sig/steep/project/pattern.rbs +0 -47
- data/sig/steep/project/target.rbs +0 -25
- data/sig/steep/project.rbs +0 -26
- data/sig/steep/range_extension.rbs +0 -7
- data/sig/steep/server/base_worker.rbs +0 -49
- data/sig/steep/server/change_buffer.rbs +0 -38
- data/sig/steep/server/delay_queue.rbs +0 -37
- data/sig/steep/server/interaction_worker.rbs +0 -90
- data/sig/steep/server/lsp_formatter.rbs +0 -63
- data/sig/steep/server/master.rbs +0 -299
- data/sig/steep/server/type_check_worker.rbs +0 -141
- data/sig/steep/server/worker_process.rbs +0 -97
- data/sig/steep/services/completion_provider.rbs +0 -264
- data/sig/steep/services/content_change.rbs +0 -37
- data/sig/steep/services/file_loader.rbs +0 -21
- data/sig/steep/services/goto_service.rbs +0 -106
- data/sig/steep/services/hover_provider/rbs.rbs +0 -47
- data/sig/steep/services/hover_provider/ruby.rbs +0 -127
- data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
- data/sig/steep/services/path_assignment.rbs +0 -21
- data/sig/steep/services/signature_help_provider.rbs +0 -51
- data/sig/steep/services/signature_service.rbs +0 -156
- data/sig/steep/services/stats_calculator.rbs +0 -41
- data/sig/steep/services/type_check_service.rbs +0 -112
- data/sig/steep/services/type_name_completion.rbs +0 -135
- data/sig/steep/signature/validator.rbs +0 -85
- data/sig/steep/source/ignore_ranges.rbs +0 -38
- data/sig/steep/source.rbs +0 -105
- data/sig/steep/subtyping/cache.rbs +0 -17
- data/sig/steep/subtyping/check.rbs +0 -131
- data/sig/steep/subtyping/constraints.rbs +0 -111
- data/sig/steep/subtyping/relation.rbs +0 -63
- data/sig/steep/subtyping/result.rbs +0 -179
- data/sig/steep/subtyping/variable_variance.rbs +0 -25
- data/sig/steep/thread_waiter.rbs +0 -13
- data/sig/steep/type_construction.rbs +0 -542
- data/sig/steep/type_inference/block_params.rbs +0 -170
- data/sig/steep/type_inference/case_when.rbs +0 -130
- data/sig/steep/type_inference/constant_env.rbs +0 -29
- data/sig/steep/type_inference/context.rbs +0 -216
- data/sig/steep/type_inference/context_array.rbs +0 -38
- data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
- data/sig/steep/type_inference/method_call.rbs +0 -124
- data/sig/steep/type_inference/method_params.rbs +0 -127
- data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
- data/sig/steep/type_inference/send_args.rbs +0 -243
- data/sig/steep/type_inference/type_env.rbs +0 -160
- data/sig/steep/type_inference/type_env_builder.rbs +0 -81
- data/sig/steep/typing.rbs +0 -75
- data/sig/steep.rbs +0 -45
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
use RBS::Environment, RBS::TypeName
|
|
2
|
-
use Steep::TypeInference::MethodCall
|
|
3
|
-
|
|
4
|
-
module Steep
|
|
5
|
-
module Services
|
|
6
|
-
class CompletionProvider
|
|
7
|
-
include NodeHelper
|
|
8
|
-
|
|
9
|
-
# Cursor position
|
|
10
|
-
class Position
|
|
11
|
-
attr_reader line: Integer
|
|
12
|
-
|
|
13
|
-
attr_reader column: Integer
|
|
14
|
-
|
|
15
|
-
def initialize: (line: Integer, column: Integer) -> void
|
|
16
|
-
|
|
17
|
-
def -: (Integer) -> Position
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
class Range
|
|
21
|
-
attr_reader start: Position
|
|
22
|
-
|
|
23
|
-
attr_reader end: Position
|
|
24
|
-
|
|
25
|
-
def initialize: (start: Position, end: Position) -> void
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
class InstanceVariableItem
|
|
29
|
-
attr_reader identifier: Symbol
|
|
30
|
-
|
|
31
|
-
attr_reader range: Range
|
|
32
|
-
|
|
33
|
-
attr_reader type: AST::Types::t
|
|
34
|
-
|
|
35
|
-
def initialize: (identifier: Symbol, range: Range, type: AST::Types::t) -> void
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class KeywordArgumentItem
|
|
39
|
-
attr_reader identifier: String
|
|
40
|
-
|
|
41
|
-
attr_reader range: Range
|
|
42
|
-
|
|
43
|
-
def initialize: (identifier: String, range: Range) -> void
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
class LocalVariableItem
|
|
47
|
-
attr_reader identifier: Symbol
|
|
48
|
-
|
|
49
|
-
attr_reader range: Range
|
|
50
|
-
|
|
51
|
-
attr_reader type: AST::Types::t
|
|
52
|
-
|
|
53
|
-
def initialize: (identifier: Symbol, range: Range, type: AST::Types::t) -> void
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
class ConstantItem
|
|
57
|
-
attr_reader env: Environment
|
|
58
|
-
|
|
59
|
-
attr_reader identifier: Symbol
|
|
60
|
-
|
|
61
|
-
attr_reader range: Range
|
|
62
|
-
|
|
63
|
-
attr_reader type: AST::Types::t
|
|
64
|
-
|
|
65
|
-
attr_reader full_name: TypeName
|
|
66
|
-
|
|
67
|
-
def initialize: (env: Environment, identifier: Symbol, range: Range, type: AST::Types::t, full_name: TypeName) -> void
|
|
68
|
-
|
|
69
|
-
def class?: () -> bool
|
|
70
|
-
|
|
71
|
-
def module?: () -> bool
|
|
72
|
-
|
|
73
|
-
def comments: () -> Array[RBS::AST::Comment?]
|
|
74
|
-
|
|
75
|
-
type const_decl = RBS::AST::Declarations::Constant
|
|
76
|
-
| RBS::AST::Declarations::Class
|
|
77
|
-
| RBS::AST::Declarations::Module
|
|
78
|
-
| RBS::AST::Declarations::ClassAlias
|
|
79
|
-
| RBS::AST::Declarations::ModuleAlias
|
|
80
|
-
|
|
81
|
-
def decl: () -> const_decl
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# Method name completion item with *simple* receiver type
|
|
85
|
-
#
|
|
86
|
-
# Instance type, Singleton type, Interface type is simple.
|
|
87
|
-
# The item may have multiple overloads, but must have single method definition source.
|
|
88
|
-
#
|
|
89
|
-
class SimpleMethodNameItem
|
|
90
|
-
attr_reader identifier: Symbol
|
|
91
|
-
|
|
92
|
-
attr_reader range: Range
|
|
93
|
-
|
|
94
|
-
attr_reader receiver_type: AST::Types::Name::Instance | AST::Types::Name::Interface | AST::Types::Name::Singleton
|
|
95
|
-
|
|
96
|
-
attr_reader method_types: Array[RBS::MethodType]
|
|
97
|
-
|
|
98
|
-
attr_reader method_name: method_name
|
|
99
|
-
|
|
100
|
-
attr_reader method_member: RBS::Definition::Method::method_member
|
|
101
|
-
|
|
102
|
-
def initialize: (
|
|
103
|
-
identifier: Symbol,
|
|
104
|
-
range: Range,
|
|
105
|
-
receiver_type: AST::Types::Name::Instance | AST::Types::Name::Interface | AST::Types::Name::Singleton,
|
|
106
|
-
method_name: method_name,
|
|
107
|
-
method_types: Array[RBS::MethodType],
|
|
108
|
-
method_member: RBS::Definition::Method::method_member
|
|
109
|
-
) -> void
|
|
110
|
-
|
|
111
|
-
%a{pure} def comment: () -> RBS::AST::Comment?
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
# Method name completion item with *complex* receiver type
|
|
115
|
-
#
|
|
116
|
-
# The item may have multiple overloads and multiple method declarations.
|
|
117
|
-
#
|
|
118
|
-
class ComplexMethodNameItem
|
|
119
|
-
attr_reader identifier: Symbol
|
|
120
|
-
|
|
121
|
-
attr_reader range: Range
|
|
122
|
-
|
|
123
|
-
attr_reader reeiver_type: AST::Types::t
|
|
124
|
-
|
|
125
|
-
attr_reader method_types: Array[RBS::MethodType]
|
|
126
|
-
|
|
127
|
-
attr_reader method_decls: Array[MethodCall::MethodDecl]
|
|
128
|
-
|
|
129
|
-
def initialize: (
|
|
130
|
-
identifier: Symbol,
|
|
131
|
-
range: Range,
|
|
132
|
-
method_types: Array[RBS::MethodType],
|
|
133
|
-
method_decls: Array[MethodCall::MethodDecl],
|
|
134
|
-
receiver_type: AST::Types::t
|
|
135
|
-
) -> void
|
|
136
|
-
|
|
137
|
-
def method_names: () -> Array[method_name]
|
|
138
|
-
|
|
139
|
-
def method_definitions: () -> Hash[method_name, RBS::Definition::Method::method_member]
|
|
140
|
-
|
|
141
|
-
def defining_method_name: (TypeName, Symbol name, RBS::Definition::Method::method_member) -> method_name
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
# Method name completion item for generated methods, like `#first` in tuple types
|
|
145
|
-
#
|
|
146
|
-
# The generated methods doesn't have associated `MethodDecl`.
|
|
147
|
-
#
|
|
148
|
-
class GeneratedMethodNameItem
|
|
149
|
-
attr_reader identifier: Symbol
|
|
150
|
-
|
|
151
|
-
attr_reader range: Range
|
|
152
|
-
|
|
153
|
-
attr_reader reeiver_type: AST::Types::t
|
|
154
|
-
|
|
155
|
-
attr_reader method_types: Array[RBS::MethodType]
|
|
156
|
-
|
|
157
|
-
def initialize: (
|
|
158
|
-
identifier: Symbol,
|
|
159
|
-
range: Range,
|
|
160
|
-
receiver_type: AST::Types::t,
|
|
161
|
-
method_types: Array[RBS::MethodType]
|
|
162
|
-
) -> void
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
class TypeNameItem
|
|
166
|
-
attr_reader env: Environment
|
|
167
|
-
|
|
168
|
-
attr_reader absolute_type_name: TypeName
|
|
169
|
-
|
|
170
|
-
attr_reader relative_type_name: TypeName
|
|
171
|
-
|
|
172
|
-
attr_reader range: Range
|
|
173
|
-
|
|
174
|
-
def initialize: (absolute_type_name: TypeName, relative_type_name: TypeName, env: Environment, range: Range) -> void
|
|
175
|
-
|
|
176
|
-
def decl: () -> Server::LSPFormatter::summarizable_decl
|
|
177
|
-
|
|
178
|
-
def comments: () -> Array[RBS::AST::Comment]
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
class TextItem
|
|
182
|
-
attr_reader label: String
|
|
183
|
-
|
|
184
|
-
attr_reader text: String
|
|
185
|
-
|
|
186
|
-
attr_reader help_text: String?
|
|
187
|
-
|
|
188
|
-
attr_reader range: Range
|
|
189
|
-
|
|
190
|
-
def initialize: (text: String, help_text: String?, range: Range, label: String) -> void
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
type item = InstanceVariableItem
|
|
194
|
-
| KeywordArgumentItem
|
|
195
|
-
| LocalVariableItem
|
|
196
|
-
| ConstantItem
|
|
197
|
-
| SimpleMethodNameItem
|
|
198
|
-
| ComplexMethodNameItem
|
|
199
|
-
| GeneratedMethodNameItem
|
|
200
|
-
| TypeNameItem
|
|
201
|
-
| TextItem
|
|
202
|
-
|
|
203
|
-
attr_reader source_text: String
|
|
204
|
-
|
|
205
|
-
attr_reader path: Pathname
|
|
206
|
-
|
|
207
|
-
attr_reader subtyping: Subtyping::Check
|
|
208
|
-
|
|
209
|
-
attr_reader modified_text: String
|
|
210
|
-
|
|
211
|
-
attr_reader source: Source
|
|
212
|
-
|
|
213
|
-
attr_reader typing: Typing
|
|
214
|
-
|
|
215
|
-
def initialize: (source_text: String, path: Pathname, subtyping: Subtyping::Check) -> void
|
|
216
|
-
|
|
217
|
-
def type_check!: (String text, line: Integer, column: Integer) -> void
|
|
218
|
-
|
|
219
|
-
def env: () -> Environment
|
|
220
|
-
|
|
221
|
-
def run: (line: Integer, column: Integer) -> Array[item]
|
|
222
|
-
|
|
223
|
-
def range_from_loc: (Parser::Source::Range loc) -> Range
|
|
224
|
-
|
|
225
|
-
def at_comment?: (Position pos) -> Parser::Source::Comment?
|
|
226
|
-
|
|
227
|
-
def at_end?: (Position pos, of: Parser::Source::Map | Parser::Source::Range | nil) -> boolish
|
|
228
|
-
|
|
229
|
-
def range_for: (Position position, ?prefix: ::String) -> Range
|
|
230
|
-
|
|
231
|
-
def items_for_trigger: (position: Position) -> Array[item]
|
|
232
|
-
|
|
233
|
-
def items_for_dot: (position: Position) -> Array[item]
|
|
234
|
-
|
|
235
|
-
def items_for_qcall: (position: Position) -> Array[item]
|
|
236
|
-
|
|
237
|
-
def items_for_colon2: (position: Position) -> Array[item]
|
|
238
|
-
|
|
239
|
-
def items_for_atmark: (position: Position) -> Array[item]
|
|
240
|
-
|
|
241
|
-
def items_for_rbs: (position: Position, buffer: RBS::Buffer) -> Array[item]
|
|
242
|
-
|
|
243
|
-
def items_for_following_keyword_arguments: (String text, index: Integer, line: Integer, column: Integer, items: Array[item]) -> void
|
|
244
|
-
|
|
245
|
-
def method_items_for_receiver_type: (AST::Types::t, include_private: bool, prefix: String, position: Position, items: Array[item]) -> void
|
|
246
|
-
|
|
247
|
-
def word_name?: (String name) -> bool
|
|
248
|
-
|
|
249
|
-
def local_variable_items_for_context: (TypeInference::Context context, position: Position, prefix: String, items: Array[item]) -> void
|
|
250
|
-
|
|
251
|
-
def constant_items_for_context: (TypeInference::Context context, position: Position, prefix: String, items: Array[item], ?parent: Parser::AST::Node?) -> void
|
|
252
|
-
|
|
253
|
-
def instance_variable_items_for_context: (TypeInference::Context context, position: Position, prefix: String, items: Array[item]) -> void
|
|
254
|
-
|
|
255
|
-
def keyword_argument_items_for_method: (call_node: Parser::AST::Node, send_node: Parser::AST::Node, position: Position, prefix: String, items: Array[item]) -> void
|
|
256
|
-
|
|
257
|
-
def index_for: (String, line: Integer, column: Integer) -> Integer
|
|
258
|
-
|
|
259
|
-
def disallowed_method?: (Symbol name) -> bool
|
|
260
|
-
|
|
261
|
-
def unwrap_optional: (AST::Types::t) -> AST::Types::t
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Services
|
|
3
|
-
class ContentChange
|
|
4
|
-
class Position
|
|
5
|
-
attr_reader line: Integer
|
|
6
|
-
|
|
7
|
-
attr_reader column: Integer
|
|
8
|
-
|
|
9
|
-
def initialize: (line: Integer, column: Integer) -> void
|
|
10
|
-
|
|
11
|
-
def ==: (untyped other) -> bool
|
|
12
|
-
|
|
13
|
-
alias eql? ==
|
|
14
|
-
|
|
15
|
-
def hash: () -> Integer
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
type range = [Position, Position]
|
|
19
|
-
|
|
20
|
-
attr_reader range: range?
|
|
21
|
-
|
|
22
|
-
attr_reader text: String
|
|
23
|
-
|
|
24
|
-
def initialize: (text: String, ?range: range?) -> void
|
|
25
|
-
|
|
26
|
-
def ==: (untyped other) -> bool
|
|
27
|
-
|
|
28
|
-
alias eql? ==
|
|
29
|
-
|
|
30
|
-
def hash: () -> Integer
|
|
31
|
-
|
|
32
|
-
def self.string: (String) -> ContentChange
|
|
33
|
-
|
|
34
|
-
def apply_to: (String text) -> String
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Services
|
|
3
|
-
class FileLoader
|
|
4
|
-
attr_reader base_dir: Pathname
|
|
5
|
-
|
|
6
|
-
def initialize: (base_dir: Pathname) -> void
|
|
7
|
-
|
|
8
|
-
# Yields relative paths included in `pattern` from `base_dir`
|
|
9
|
-
#
|
|
10
|
-
def each_path_in_patterns: (Project::Pattern pattern, ?Array[String] commandline_patterns) { (Pathname) -> void } -> void
|
|
11
|
-
| (Project::Pattern pattern, ?Array[String] commandline_patterns) -> Enumerator[Pathname, void]
|
|
12
|
-
|
|
13
|
-
# Returns changes that represents loading files from file system merged with ones given as `changes:`
|
|
14
|
-
#
|
|
15
|
-
# ```
|
|
16
|
-
# changes = loader.load_changes(target.pattern, command_line_patterns, changes: changes_from_editor)
|
|
17
|
-
# ```
|
|
18
|
-
def load_changes: (Project::Pattern pattern, ?Array[String] command_line_patterns, changes: Hash[Pathname, Array[ContentChange]]) -> Hash[Pathname, Array[ContentChange]]
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
use RBS::TypeName, RBS::Location
|
|
2
|
-
|
|
3
|
-
module Steep
|
|
4
|
-
module Services
|
|
5
|
-
class GotoService
|
|
6
|
-
include ModuleHelper
|
|
7
|
-
|
|
8
|
-
# Where the query is issued from
|
|
9
|
-
#
|
|
10
|
-
# * `:ruby` if the query is issued from a Ruby code
|
|
11
|
-
# * `:rbs` if the query is issued from a RBS file
|
|
12
|
-
#
|
|
13
|
-
type from = :ruby | :rbs
|
|
14
|
-
|
|
15
|
-
module SourceHelper : _From
|
|
16
|
-
interface _From
|
|
17
|
-
def from: () -> from
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def from_ruby?: () -> bool
|
|
21
|
-
|
|
22
|
-
def from_rbs?: () -> bool
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Query a constant
|
|
26
|
-
#
|
|
27
|
-
class ConstantQuery
|
|
28
|
-
include SourceHelper
|
|
29
|
-
|
|
30
|
-
attr_reader name: TypeName
|
|
31
|
-
|
|
32
|
-
# Where the query is issued from
|
|
33
|
-
attr_reader from: from
|
|
34
|
-
|
|
35
|
-
def initialize: (name: TypeName, from: from) -> void
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# Query a method
|
|
39
|
-
#
|
|
40
|
-
class MethodQuery
|
|
41
|
-
include SourceHelper
|
|
42
|
-
|
|
43
|
-
attr_reader name: method_name
|
|
44
|
-
|
|
45
|
-
# Where the query is issued from
|
|
46
|
-
attr_reader from: from
|
|
47
|
-
|
|
48
|
-
def initialize: (name: method_name, from: from) -> void
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Query a type name
|
|
52
|
-
#
|
|
53
|
-
#
|
|
54
|
-
#
|
|
55
|
-
class TypeNameQuery
|
|
56
|
-
attr_reader name: TypeName
|
|
57
|
-
|
|
58
|
-
def initialize: (name: TypeName) -> void
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
type query = ConstantQuery | MethodQuery | TypeNameQuery
|
|
62
|
-
|
|
63
|
-
type loc = Location[bot, bot] | Parser::Source::Range
|
|
64
|
-
|
|
65
|
-
attr_reader type_check: TypeCheckService
|
|
66
|
-
|
|
67
|
-
attr_reader assignment: PathAssignment
|
|
68
|
-
|
|
69
|
-
def initialize: (type_check: TypeCheckService, assignment: PathAssignment) -> void
|
|
70
|
-
|
|
71
|
-
def project: () -> Project
|
|
72
|
-
|
|
73
|
-
# Returns array of locations that is a response to a *Go to implementation* request
|
|
74
|
-
#
|
|
75
|
-
def implementation: (path: Pathname, line: Integer, column: Integer) -> Array[loc]
|
|
76
|
-
|
|
77
|
-
# Returns array of locations that is a response to a *Go to definition* request
|
|
78
|
-
#
|
|
79
|
-
def definition: (path: Pathname, line: Integer, column: Integer) -> Array[loc]
|
|
80
|
-
|
|
81
|
-
# Returns array of locations that is a response to a *Go to type-definition* request
|
|
82
|
-
#
|
|
83
|
-
def type_definition: (path: Pathname, line: Integer, column: Integer) -> Array[loc]
|
|
84
|
-
|
|
85
|
-
private
|
|
86
|
-
|
|
87
|
-
# Returns a set of queries
|
|
88
|
-
def query_at: (path: Pathname, line: Integer, column: Integer) -> Array[query]
|
|
89
|
-
|
|
90
|
-
def each_type_name: (AST::Types::t) { (TypeName) -> void } -> void
|
|
91
|
-
| (AST::Types::t) -> Enumerator[TypeName, void]
|
|
92
|
-
|
|
93
|
-
def test_ast_location: (Parser::Source::Range loc, line: Integer, column: Integer) -> bool
|
|
94
|
-
|
|
95
|
-
def type_check_path: (target: Project::Target, path: Pathname, content: String, line: Integer, column: Integer) -> [Typing, SignatureService]?
|
|
96
|
-
|
|
97
|
-
def constant_definition_in_rbs: (TypeName name, locations: Array[loc]) -> Array[loc]
|
|
98
|
-
|
|
99
|
-
def constant_definition_in_ruby: (TypeName name, locations: Array[loc]) -> Array[loc]
|
|
100
|
-
|
|
101
|
-
def method_locations: (method_name, in_ruby: bool, in_rbs: bool, locations: Array[loc]) -> Array[loc]
|
|
102
|
-
|
|
103
|
-
def type_name_locations: (TypeName name, ?locations: Array[loc]) -> Array[loc]
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
use RBS::Location, RBS::AST::Declarations, RBS::AST::Directives, RBS::TypeName, RBS::Environment
|
|
2
|
-
|
|
3
|
-
module Steep
|
|
4
|
-
module Services
|
|
5
|
-
module HoverProvider
|
|
6
|
-
class RBS
|
|
7
|
-
class TypeAliasContent
|
|
8
|
-
attr_reader location: Location[untyped, untyped]
|
|
9
|
-
|
|
10
|
-
attr_reader decl: Declarations::TypeAlias
|
|
11
|
-
|
|
12
|
-
def initialize: (location: Location[untyped, untyped], decl: Declarations::TypeAlias) -> void
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class ClassContent
|
|
16
|
-
attr_reader location: Location[untyped, untyped]
|
|
17
|
-
|
|
18
|
-
type decl = Declarations::Class | Declarations::Module | Declarations::ClassAlias | Declarations::ModuleAlias
|
|
19
|
-
|
|
20
|
-
attr_reader decl: decl
|
|
21
|
-
|
|
22
|
-
def initialize: (location: Location[untyped, untyped], decl: decl) -> void
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
class InterfaceContent
|
|
26
|
-
attr_reader location: Location[untyped, untyped]
|
|
27
|
-
|
|
28
|
-
attr_reader decl: Declarations::Interface
|
|
29
|
-
|
|
30
|
-
def initialize: (location: Location[untyped, untyped], decl: Declarations::Interface) -> void
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
type content = TypeAliasContent | ClassContent | InterfaceContent
|
|
34
|
-
|
|
35
|
-
attr_reader service: TypeCheckService
|
|
36
|
-
|
|
37
|
-
def initialize: (service: TypeCheckService) -> void
|
|
38
|
-
|
|
39
|
-
def project: () -> Project
|
|
40
|
-
|
|
41
|
-
def content_for: (target: Project::Target, path: Pathname, line: Integer, column: Integer) -> content?
|
|
42
|
-
|
|
43
|
-
def content_for_type_name: (TypeName, env: Environment, location: Location[untyped, untyped]) -> content?
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Services
|
|
3
|
-
module HoverProvider
|
|
4
|
-
class Ruby
|
|
5
|
-
class TypeContent
|
|
6
|
-
attr_reader node: Parser::AST::Node
|
|
7
|
-
|
|
8
|
-
attr_reader type: AST::Types::t
|
|
9
|
-
|
|
10
|
-
attr_reader location: Parser::Source::Range
|
|
11
|
-
|
|
12
|
-
def initialize: (node: Parser::AST::Node, type: AST::Types::t, location: Parser::Source::Range) -> void
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Hover content for a local variable, references or assignments
|
|
16
|
-
#
|
|
17
|
-
# ```ruby
|
|
18
|
-
# a = 123
|
|
19
|
-
# # ^^^^ Hover popups
|
|
20
|
-
# # ^ Location covers
|
|
21
|
-
#
|
|
22
|
-
# a + 1
|
|
23
|
-
# # ^ Hover popups
|
|
24
|
-
# # ^ Location covers
|
|
25
|
-
# ```
|
|
26
|
-
class VariableContent
|
|
27
|
-
attr_reader node: Parser::AST::Node
|
|
28
|
-
|
|
29
|
-
attr_reader name: Symbol
|
|
30
|
-
|
|
31
|
-
attr_reader type: AST::Types::t
|
|
32
|
-
|
|
33
|
-
attr_reader location: Parser::Source::Range
|
|
34
|
-
|
|
35
|
-
def initialize: (node: Parser::AST::Node, name: Symbol, type: AST::Types::t, location: Parser::Source::Range) -> void
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class TypeAssertionContent
|
|
39
|
-
attr_reader node: Parser::AST::Node
|
|
40
|
-
|
|
41
|
-
attr_reader original_type: AST::Types::t
|
|
42
|
-
|
|
43
|
-
attr_reader asserted_type: AST::Types::t
|
|
44
|
-
|
|
45
|
-
attr_reader location: Parser::Source::Range
|
|
46
|
-
|
|
47
|
-
def initialize: (node: Parser::AST::Node, original_type: AST::Types::t, asserted_type: AST::Types::t, location: Parser::Source::Range) -> void
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
class MethodCallContent
|
|
51
|
-
attr_reader node: Parser::AST::Node
|
|
52
|
-
|
|
53
|
-
type call = TypeInference::MethodCall::Typed | TypeInference::MethodCall::Special | TypeInference::MethodCall::Error
|
|
54
|
-
|
|
55
|
-
attr_reader method_call: call
|
|
56
|
-
|
|
57
|
-
attr_reader location: Parser::Source::Range
|
|
58
|
-
|
|
59
|
-
def initialize: (node: Parser::AST::Node, method_call: TypeInference::MethodCall::t, location: Parser::Source::Range) -> void
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class DefinitionContent
|
|
63
|
-
attr_reader node: Parser::AST::Node
|
|
64
|
-
|
|
65
|
-
attr_reader method_name: method_name
|
|
66
|
-
|
|
67
|
-
attr_reader method_type: Interface::MethodType
|
|
68
|
-
|
|
69
|
-
attr_reader definition: ::RBS::Definition::Method
|
|
70
|
-
|
|
71
|
-
attr_reader location: Parser::Source::Range
|
|
72
|
-
|
|
73
|
-
def initialize: (node: Parser::AST::Node, method_name: method_name, method_type: Interface::MethodType, definition: ::RBS::Definition::Method, location: Parser::Source::Range) -> void
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
class ConstantContent
|
|
77
|
-
attr_reader location: Parser::Source::Range
|
|
78
|
-
|
|
79
|
-
attr_reader full_name: ::RBS::TypeName
|
|
80
|
-
|
|
81
|
-
attr_reader type: AST::Types::t
|
|
82
|
-
|
|
83
|
-
type decl = ::RBS::Environment::ClassEntry
|
|
84
|
-
| ::RBS::Environment::ModuleEntry
|
|
85
|
-
| ::RBS::Environment::ClassAliasEntry
|
|
86
|
-
| ::RBS::Environment::ModuleAliasEntry
|
|
87
|
-
| ::RBS::Environment::ConstantEntry
|
|
88
|
-
|
|
89
|
-
attr_reader decl: decl
|
|
90
|
-
|
|
91
|
-
attr_reader class_decl(): ::RBS::Environment::ClassEntry | ::RBS::Environment::ModuleEntry | nil
|
|
92
|
-
|
|
93
|
-
attr_reader class_alias(): ::RBS::Environment::ClassAliasEntry | ::RBS::Environment::ModuleAliasEntry | nil
|
|
94
|
-
|
|
95
|
-
attr_reader constant_decl(): ::RBS::Environment::ConstantEntry?
|
|
96
|
-
|
|
97
|
-
def initialize: (location: Parser::Source::Range, full_name: ::RBS::TypeName, type: AST::Types::t, decl: decl) -> void
|
|
98
|
-
|
|
99
|
-
def comments: () -> Array[::RBS::AST::Comment]
|
|
100
|
-
|
|
101
|
-
# Returns true if `decl` is a class/module definition
|
|
102
|
-
def class_or_module?: () -> bool
|
|
103
|
-
|
|
104
|
-
# Returns true if `decl` is a constant definition
|
|
105
|
-
def constant?: () -> bool
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
type content = TypeContent | VariableContent | MethodCallContent | DefinitionContent | ConstantContent | TypeAssertionContent
|
|
109
|
-
|
|
110
|
-
attr_reader service: TypeCheckService
|
|
111
|
-
|
|
112
|
-
def initialize: (service: TypeCheckService) -> void
|
|
113
|
-
|
|
114
|
-
def project: () -> Project
|
|
115
|
-
|
|
116
|
-
def method_definition_for: (AST::Types::Factory factory, ::RBS::TypeName type_name, singleton_method: Symbol) -> ::RBS::Definition::Method
|
|
117
|
-
| (AST::Types::Factory factory, ::RBS::TypeName type_name, instance_method: Symbol) -> ::RBS::Definition::Method
|
|
118
|
-
|
|
119
|
-
def typecheck: (Project::Target target, path: Pathname, content: String, line: Integer, column: Integer) -> Typing?
|
|
120
|
-
|
|
121
|
-
def method_name_from_method: (TypeInference::Context::MethodContext context, builder: ::RBS::DefinitionBuilder) -> method_name
|
|
122
|
-
|
|
123
|
-
def content_for: (target: Project::Target, path: Pathname, line: Integer, column: Integer) -> content?
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Services
|
|
3
|
-
module HoverProvider
|
|
4
|
-
module SingletonMethods
|
|
5
|
-
def content_for: (service: TypeCheckService, path: Pathname, line: Integer, column: Integer) -> (Ruby::content | RBS::content | nil)
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
extend SingletonMethods
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Steep
|
|
2
|
-
module Services
|
|
3
|
-
class PathAssignment
|
|
4
|
-
attr_reader index: Integer
|
|
5
|
-
|
|
6
|
-
attr_reader max_index: Integer
|
|
7
|
-
|
|
8
|
-
attr_reader cache: Hash[Pathname, Integer]
|
|
9
|
-
|
|
10
|
-
def initialize: (index: Integer, max_index: Integer) -> void
|
|
11
|
-
|
|
12
|
-
def self.all: () -> PathAssignment
|
|
13
|
-
|
|
14
|
-
def =~: (Pathname path) -> bool
|
|
15
|
-
|
|
16
|
-
alias === =~
|
|
17
|
-
|
|
18
|
-
def self.index_for: (path: String, max_index: Integer) -> Integer
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
use RBS::Environment
|
|
2
|
-
|
|
3
|
-
module Steep
|
|
4
|
-
module Services
|
|
5
|
-
class SignatureHelpProvider
|
|
6
|
-
module MethodCall = TypeInference::MethodCall
|
|
7
|
-
|
|
8
|
-
class Item
|
|
9
|
-
attr_reader method_type: RBS::MethodType
|
|
10
|
-
|
|
11
|
-
attr_reader comment: RBS::AST::Comment?
|
|
12
|
-
|
|
13
|
-
attr_reader active_parameter: Integer?
|
|
14
|
-
|
|
15
|
-
def initialize: (RBS::MethodType, RBS::AST::Comment?, Integer?) -> void
|
|
16
|
-
|
|
17
|
-
def parameters: () -> Array[String]
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
include Steep::NodeHelper
|
|
21
|
-
|
|
22
|
-
attr_reader source: Source
|
|
23
|
-
|
|
24
|
-
attr_reader path: Pathname
|
|
25
|
-
|
|
26
|
-
attr_reader subtyping: Subtyping::Check
|
|
27
|
-
|
|
28
|
-
attr_reader buffer: RBS::Buffer
|
|
29
|
-
|
|
30
|
-
def env: () -> Environment
|
|
31
|
-
|
|
32
|
-
def initialize: (source: Source, subtyping: Subtyping::Check) -> void
|
|
33
|
-
|
|
34
|
-
# 1-origin line, 0-origin column
|
|
35
|
-
#
|
|
36
|
-
def run: (line: Integer, column: Integer) -> [Array[Item], Integer?]?
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def active_parameter_for: (RBS::MethodType?, Array[Parser::AST::Node], Array[Parser::AST::Node]?, Parser::AST::Node) -> Integer?
|
|
41
|
-
|
|
42
|
-
def arguments_for: (RBS::MethodType) -> Array[String]
|
|
43
|
-
|
|
44
|
-
def last_argument_nodes_for: (argument_nodes: Array[Parser::AST::Node], line: Integer, column: Integer) -> Array[Parser::AST::Node]?
|
|
45
|
-
|
|
46
|
-
def signature_help_for: (Parser::AST::Node, Array[Parser::AST::Node], Array[Parser::AST::Node]?, Typing) -> [Array[Item], Integer?]?
|
|
47
|
-
|
|
48
|
-
def type_check!: (line: Integer, column: Integer) -> Typing
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|