steep 1.7.0.dev.4 → 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.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +18 -0
  4. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
  5. data/lib/steep/rake_task.rb +132 -0
  6. data/lib/steep/type_construction.rb +1 -0
  7. data/lib/steep/version.rb +1 -1
  8. data/steep.gemspec +4 -1
  9. metadata +4 -143
  10. data/.github/dependabot.yml +0 -28
  11. data/.github/workflows/ruby-windows.yml +0 -35
  12. data/.github/workflows/ruby.yml +0 -32
  13. data/.vscode/steep-shared.code-snippets +0 -41
  14. data/Gemfile +0 -14
  15. data/Gemfile.lock +0 -104
  16. data/Gemfile.steep +0 -0
  17. data/gemfile_steep/Gemfile +0 -3
  18. data/gemfile_steep/Gemfile.lock +0 -77
  19. data/rbs_collection.steep.lock.yaml +0 -108
  20. data/rbs_collection.steep.yaml +0 -23
  21. data/sig/shims/bundler.rbs +0 -3
  22. data/sig/shims/concurrent-ruby.rbs +0 -39
  23. data/sig/shims/exception.rbs +0 -4
  24. data/sig/shims/language-server_protocol.rbs +0 -450
  25. data/sig/shims/parser/comment.rbs +0 -33
  26. data/sig/shims/parser/nodes.rbs +0 -252
  27. data/sig/shims/parser/source/map.rbs +0 -146
  28. data/sig/shims/parser/source/range.rbs +0 -237
  29. data/sig/shims/parser.rbs +0 -69
  30. data/sig/shims/string.rbs +0 -4
  31. data/sig/shims/tagged_logging.rbs +0 -6
  32. data/sig/shims/yaml.rbs +0 -4
  33. data/sig/steep/annotation_parser.rbs +0 -60
  34. data/sig/steep/ast/annotation/collection.rbs +0 -78
  35. data/sig/steep/ast/annotation.rbs +0 -121
  36. data/sig/steep/ast/builtin.rbs +0 -69
  37. data/sig/steep/ast/ignore.rbs +0 -66
  38. data/sig/steep/ast/node/type_application.rbs +0 -31
  39. data/sig/steep/ast/node/type_assertion.rbs +0 -32
  40. data/sig/steep/ast/types/any.rbs +0 -29
  41. data/sig/steep/ast/types/boolean.rbs +0 -31
  42. data/sig/steep/ast/types/bot.rbs +0 -29
  43. data/sig/steep/ast/types/class.rbs +0 -33
  44. data/sig/steep/ast/types/factory.rbs +0 -110
  45. data/sig/steep/ast/types/helper.rbs +0 -24
  46. data/sig/steep/ast/types/instance.rbs +0 -33
  47. data/sig/steep/ast/types/intersection.rbs +0 -40
  48. data/sig/steep/ast/types/literal.rbs +0 -35
  49. data/sig/steep/ast/types/logic.rbs +0 -83
  50. data/sig/steep/ast/types/name.rbs +0 -84
  51. data/sig/steep/ast/types/nil.rbs +0 -31
  52. data/sig/steep/ast/types/proc.rbs +0 -53
  53. data/sig/steep/ast/types/record.rbs +0 -39
  54. data/sig/steep/ast/types/self.rbs +0 -33
  55. data/sig/steep/ast/types/top.rbs +0 -29
  56. data/sig/steep/ast/types/tuple.rbs +0 -37
  57. data/sig/steep/ast/types/union.rbs +0 -40
  58. data/sig/steep/ast/types/var.rbs +0 -42
  59. data/sig/steep/ast/types/void.rbs +0 -29
  60. data/sig/steep/ast/types.rbs +0 -16
  61. data/sig/steep/cli.rbs +0 -55
  62. data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
  63. data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
  64. data/sig/steep/diagnostic/helper.rbs +0 -15
  65. data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
  66. data/sig/steep/diagnostic/ruby.rbs +0 -703
  67. data/sig/steep/diagnostic/signature.rbs +0 -252
  68. data/sig/steep/drivers/annotations.rbs +0 -17
  69. data/sig/steep/drivers/check.rbs +0 -33
  70. data/sig/steep/drivers/checkfile.rbs +0 -27
  71. data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
  72. data/sig/steep/drivers/init.rbs +0 -19
  73. data/sig/steep/drivers/langserver.rbs +0 -36
  74. data/sig/steep/drivers/print_project.rbs +0 -15
  75. data/sig/steep/drivers/stats.rbs +0 -47
  76. data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
  77. data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
  78. data/sig/steep/drivers/validate.rbs +0 -15
  79. data/sig/steep/drivers/vendor.rbs +0 -19
  80. data/sig/steep/drivers/watch.rbs +0 -27
  81. data/sig/steep/drivers/worker.rbs +0 -29
  82. data/sig/steep/equatable.rbs +0 -11
  83. data/sig/steep/expectations.rbs +0 -72
  84. data/sig/steep/index/rbs_index.rbs +0 -141
  85. data/sig/steep/index/signature_symbol_provider.rbs +0 -41
  86. data/sig/steep/index/source_index.rbs +0 -63
  87. data/sig/steep/interface/block.rbs +0 -41
  88. data/sig/steep/interface/builder.rbs +0 -111
  89. data/sig/steep/interface/function.rbs +0 -271
  90. data/sig/steep/interface/method_type.rbs +0 -105
  91. data/sig/steep/interface/shape.rbs +0 -80
  92. data/sig/steep/interface/substitution.rbs +0 -51
  93. data/sig/steep/interface/type_param.rbs +0 -43
  94. data/sig/steep/method_name.rbs +0 -30
  95. data/sig/steep/module_helper.rbs +0 -16
  96. data/sig/steep/node_helper.rbs +0 -91
  97. data/sig/steep/path_helper.rbs +0 -15
  98. data/sig/steep/project/dsl.rbs +0 -108
  99. data/sig/steep/project/options.rbs +0 -47
  100. data/sig/steep/project/pattern.rbs +0 -47
  101. data/sig/steep/project/target.rbs +0 -25
  102. data/sig/steep/project.rbs +0 -26
  103. data/sig/steep/range_extension.rbs +0 -7
  104. data/sig/steep/server/base_worker.rbs +0 -49
  105. data/sig/steep/server/change_buffer.rbs +0 -38
  106. data/sig/steep/server/delay_queue.rbs +0 -37
  107. data/sig/steep/server/interaction_worker.rbs +0 -90
  108. data/sig/steep/server/lsp_formatter.rbs +0 -63
  109. data/sig/steep/server/master.rbs +0 -299
  110. data/sig/steep/server/type_check_worker.rbs +0 -141
  111. data/sig/steep/server/worker_process.rbs +0 -97
  112. data/sig/steep/services/completion_provider.rbs +0 -264
  113. data/sig/steep/services/content_change.rbs +0 -37
  114. data/sig/steep/services/file_loader.rbs +0 -21
  115. data/sig/steep/services/goto_service.rbs +0 -106
  116. data/sig/steep/services/hover_provider/rbs.rbs +0 -47
  117. data/sig/steep/services/hover_provider/ruby.rbs +0 -127
  118. data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
  119. data/sig/steep/services/path_assignment.rbs +0 -21
  120. data/sig/steep/services/signature_help_provider.rbs +0 -51
  121. data/sig/steep/services/signature_service.rbs +0 -156
  122. data/sig/steep/services/stats_calculator.rbs +0 -41
  123. data/sig/steep/services/type_check_service.rbs +0 -112
  124. data/sig/steep/services/type_name_completion.rbs +0 -135
  125. data/sig/steep/signature/validator.rbs +0 -85
  126. data/sig/steep/source/ignore_ranges.rbs +0 -38
  127. data/sig/steep/source.rbs +0 -105
  128. data/sig/steep/subtyping/cache.rbs +0 -17
  129. data/sig/steep/subtyping/check.rbs +0 -131
  130. data/sig/steep/subtyping/constraints.rbs +0 -111
  131. data/sig/steep/subtyping/relation.rbs +0 -63
  132. data/sig/steep/subtyping/result.rbs +0 -179
  133. data/sig/steep/subtyping/variable_variance.rbs +0 -25
  134. data/sig/steep/thread_waiter.rbs +0 -13
  135. data/sig/steep/type_construction.rbs +0 -542
  136. data/sig/steep/type_inference/block_params.rbs +0 -170
  137. data/sig/steep/type_inference/case_when.rbs +0 -130
  138. data/sig/steep/type_inference/constant_env.rbs +0 -29
  139. data/sig/steep/type_inference/context.rbs +0 -216
  140. data/sig/steep/type_inference/context_array.rbs +0 -38
  141. data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
  142. data/sig/steep/type_inference/method_call.rbs +0 -124
  143. data/sig/steep/type_inference/method_params.rbs +0 -127
  144. data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
  145. data/sig/steep/type_inference/send_args.rbs +0 -243
  146. data/sig/steep/type_inference/type_env.rbs +0 -160
  147. data/sig/steep/type_inference/type_env_builder.rbs +0 -81
  148. data/sig/steep/typing.rbs +0 -75
  149. data/sig/steep.rbs +0 -45
@@ -1,146 +0,0 @@
1
- module Parser
2
- module Source
3
- #
4
- # {Map} relates AST nodes to the source code they were parsed from.
5
- # More specifically, a {Map} or its subclass contains a set of ranges:
6
- #
7
- # * `expression`: smallest range which includes all source corresponding
8
- # to the node and all `expression` ranges of its children.
9
- # * other ranges (`begin`, `end`, `operator`, ...): node-specific ranges
10
- # pointing to various interesting tokens corresponding to the node.
11
- #
12
- # Note that the {Map::Heredoc} map is the only one whose `expression` does
13
- # not include other ranges. It only covers the heredoc marker (`<<HERE`),
14
- # not the here document itself.
15
- #
16
- # All ranges except `expression` are defined by {Map} subclasses.
17
- #
18
- # Ranges (except `expression`) can be `nil` if the corresponding token is
19
- # not present in source. For example, a hash may not have opening/closing
20
- # braces, and so would its source map.
21
- #
22
- # p Parser::CurrentRuby.parse('[1 => 2]').children[0].loc
23
- # # => <Parser::Source::Map::Collection:0x007f5492b547d8
24
- # # @end=nil, @begin=nil,
25
- # # @expression=#<Source::Range (string) 1...7>>
26
- #
27
- # The {file:doc/AST_FORMAT.md} document describes how ranges associated to source
28
- # code tokens. For example, the entry
29
- #
30
- # (array (int 1) (int 2))
31
- #
32
- # "[1, 2]"
33
- # ^ begin
34
- # ^ end
35
- # ~~~~~~ expression
36
- #
37
- # means that if `node` is an {Parser::AST::Node} `(array (int 1) (int 2))`,
38
- # then `node.loc` responds to `begin`, `end` and `expression`, and
39
- # `node.loc.begin` returns a range pointing at the opening bracket, and so on.
40
- #
41
- # If you want to write code polymorphic by the source map (i.e. accepting
42
- # several subclasses of {Map}), use `respond_to?` instead of `is_a?` to
43
- # check whether the map features the range you need. Concrete {Map}
44
- # subclasses may not be preserved between versions, but their interfaces
45
- # will be kept compatible.
46
- #
47
- # You can visualize the source maps with `ruby-parse -E` command-line tool.
48
- #
49
- # @example
50
- # require 'parser/current'
51
- #
52
- # p Parser::CurrentRuby.parse('[1, 2]').loc
53
- # # => #<Parser::Source::Map::Collection:0x007f14b80eccd8
54
- # # @end=#<Source::Range (string) 5...6>,
55
- # # @begin=#<Source::Range (string) 0...1>,
56
- # # @expression=#<Source::Range (string) 0...6>>
57
- #
58
- # @!attribute [r] node
59
- # The node that is described by this map. Nodes and maps have 1:1 correspondence.
60
- # @return [Parser::AST::Node]
61
- #
62
- # @!attribute [r] expression
63
- # @return [Range]
64
- #
65
- # @api public
66
- #
67
- class Map
68
- attr_reader node: AST::Node
69
-
70
- attr_reader expression: Range
71
-
72
- #
73
- # @param [Range] expression
74
- def initialize: (untyped expression) -> void
75
-
76
- #
77
- # @api private
78
- def initialize_copy: (untyped other) -> untyped
79
-
80
- #
81
- # @api private
82
- def node=: (untyped node) -> untyped
83
-
84
- #
85
- # A shortcut for `self.expression.line`.
86
- # @return [Integer]
87
- #
88
- def line: () -> Integer
89
-
90
- alias first_line line
91
-
92
- #
93
- # A shortcut for `self.expression.column`.
94
- # @return [Integer]
95
- #
96
- def column: () -> Integer
97
-
98
- #
99
- # A shortcut for `self.expression.last_line`.
100
- # @return [Integer]
101
- #
102
- def last_line: () -> Integer
103
-
104
- #
105
- # A shortcut for `self.expression.last_column`.
106
- # @return [Integer]
107
- #
108
- def last_column: () -> Integer
109
-
110
- #
111
- # @api private
112
- #
113
- def with_expression: (untyped expression_l) -> untyped
114
-
115
- #
116
- # Compares source maps.
117
- # @return [Boolean]
118
- #
119
- def ==: (untyped other) -> bool
120
-
121
- #
122
- # Converts this source map to a hash with keys corresponding to
123
- # ranges. For example, if called on an instance of {Collection},
124
- # which adds the `begin` and `end` ranges, the resulting hash
125
- # will contain keys `:expression`, `:begin` and `:end`.
126
- #
127
- # @example
128
- # require 'parser/current'
129
- #
130
- # p Parser::CurrentRuby.parse('[1, 2]').loc.to_hash
131
- # # => {
132
- # # :begin => #<Source::Range (string) 0...1>,
133
- # # :end => #<Source::Range (string) 5...6>,
134
- # # :expression => #<Source::Range (string) 0...6>
135
- # # }
136
- #
137
- # @return [Hash<Symbol, Parser::Source::Range>]
138
- #
139
- def to_hash: () -> Hash[Symbol, Range]
140
-
141
- def with: () ?{ () -> untyped } -> untyped
142
-
143
- def update_expression: (untyped expression_l) -> untyped
144
- end
145
- end
146
- end
@@ -1,237 +0,0 @@
1
- module Parser
2
- module Source
3
- #
4
- # A range of characters in a particular source buffer.
5
- #
6
- # The range is always exclusive, i.e. a range with `begin_pos` of 3 and
7
- # `end_pos` of 5 will contain the following characters:
8
- #
9
- # example
10
- # ^^
11
- #
12
- # @!attribute [r] source_buffer
13
- # @return [Parser::Source::Buffer]
14
- #
15
- # @!attribute [r] begin_pos
16
- # @return [Integer] index of the first character in the range
17
- #
18
- # @!attribute [r] end_pos
19
- # @return [Integer] index of the character after the last character in the range
20
- #
21
- # @api public
22
- #
23
- class Range
24
- include Comparable
25
-
26
- attr_reader source_buffer: untyped
27
-
28
- attr_reader begin_pos: Integer
29
-
30
- attr_reader end_pos: Integer
31
-
32
- #
33
- # @param [Buffer] source_buffer
34
- # @param [Integer] begin_pos
35
- # @param [Integer] end_pos
36
- #
37
- def initialize: (untyped source_buffer, untyped begin_pos, untyped end_pos) -> void
38
-
39
- #
40
- # @return [Range] a zero-length range located just before the beginning
41
- # of this range.
42
- #
43
- def begin: () -> Range
44
-
45
- #
46
- # @return [Range] a zero-length range located just after the end
47
- # of this range.
48
- #
49
- def end: () -> Range
50
-
51
- #
52
- # @return [Integer] amount of characters included in this range.
53
- #
54
- def size: () -> Integer
55
-
56
- alias length size
57
-
58
- #
59
- # Line number of the beginning of this range. By default, the first line
60
- # of a buffer is 1; as such, line numbers are most commonly one-based.
61
- #
62
- # @see Buffer
63
- # @return [Integer] line number of the beginning of this range.
64
- #
65
- def line: () -> Integer
66
-
67
- alias first_line line
68
-
69
- #
70
- # @return [Integer] zero-based column number of the beginning of this range.
71
- #
72
- def column: () -> Integer
73
-
74
- #
75
- # @return [Integer] line number of the end of this range.
76
- #
77
- def last_line: () -> Integer
78
-
79
- #
80
- # @return [Integer] zero-based column number of the end of this range.
81
- #
82
- def last_column: () -> Integer
83
-
84
- #
85
- # @return [::Range] a range of columns spanned by this range.
86
- # @raise RangeError
87
- #
88
- def column_range: () -> ::Range[Integer]
89
-
90
- #
91
- # @return [String] a line of source code containing the beginning of this range.
92
- #
93
- def source_line: () -> String
94
-
95
- #
96
- # @return [String] all source code covered by this range.
97
- #
98
- def source: () -> String
99
-
100
- #
101
- # `is?` provides a concise way to compare the source corresponding to this range.
102
- # For example, `r.source == '(' || r.source == 'begin'` is equivalent to
103
- # `r.is?('(', 'begin')`.
104
- #
105
- def is?: (*untyped what) -> untyped
106
-
107
- #
108
- # @return [Array<Integer>] a set of character indexes contained in this range.
109
- #
110
- def to_a: () -> Array[Integer]
111
-
112
- #
113
- # @return [Range] a Ruby range with the same `begin_pos` and `end_pos`
114
- #
115
- def to_range: () -> ::Range[Integer]
116
-
117
- #
118
- # Composes a GNU/Clang-style string representation of the beginning of this
119
- # range.
120
- #
121
- # For example, for the following range in file `foo.rb`,
122
- #
123
- # def foo
124
- # ^^^
125
- #
126
- # `to_s` will return `foo.rb:1:5`.
127
- # Note that the column index is one-based.
128
- #
129
- # @return [String]
130
- #
131
- def to_s: () -> String
132
-
133
- #
134
- # @param [Hash] Endpoint(s) to change, any combination of :begin_pos or :end_pos
135
- # @return [Range] the same range as this range but with the given end point(s) changed
136
- # to the given value(s).
137
- #
138
- def with: (?begin_pos: untyped, ?end_pos: untyped) -> untyped
139
-
140
- #
141
- # @param [Hash] Endpoint(s) to change, any combination of :begin_pos or :end_pos
142
- # @return [Range] the same range as this range but with the given end point(s) adjusted
143
- # by the given amount(s)
144
- #
145
- def adjust: (?begin_pos: ::Integer, ?end_pos: ::Integer) -> untyped
146
-
147
- #
148
- # @param [Integer] new_size
149
- # @return [Range] a range beginning at the same point as this range and length `new_size`.
150
- #
151
- def resize: (untyped new_size) -> untyped
152
-
153
- #
154
- # @param [Range] other
155
- # @return [Range] smallest possible range spanning both this range and `other`.
156
- #
157
- def join: (untyped other) -> untyped
158
-
159
- #
160
- # @param [Range] other
161
- # @return [Range] overlapping region of this range and `other`, or `nil`
162
- # if they do not overlap
163
- #
164
- def intersect: (untyped other) -> (untyped | nil)
165
-
166
- #
167
- # Return `true` iff this range and `other` are disjoint.
168
- #
169
- # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
170
- #
171
- # @param [Range] other
172
- # @return [Boolean]
173
- #
174
- def disjoint?: (untyped other) -> untyped
175
-
176
- #
177
- # Return `true` iff this range is not disjoint from `other`.
178
- #
179
- # @param [Range] other
180
- # @return [Boolean] `true` if this range and `other` overlap
181
- #
182
- def overlaps?: (untyped other) -> untyped
183
-
184
- #
185
- # Returns true iff this range contains (strictly) `other`.
186
- #
187
- # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
188
- #
189
- # @param [Range] other
190
- # @return [Boolean]
191
- #
192
- def contains?: (untyped other) -> untyped
193
-
194
- #
195
- # Return `other.contains?(self)`
196
- #
197
- # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
198
- #
199
- # @param [Range] other
200
- # @return [Boolean]
201
- #
202
- def contained?: (untyped other) -> untyped
203
-
204
- #
205
- # Returns true iff both ranges intersect and also have different elements from one another.
206
- #
207
- # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
208
- #
209
- # @param [Range] other
210
- # @return [Boolean]
211
- #
212
- def crossing?: (untyped other) -> (false | untyped)
213
-
214
- #
215
- # Checks if a range is empty; if it contains no characters
216
- # @return [Boolean]
217
- def empty?: () -> untyped
218
-
219
- #
220
- # Compare ranges, first by begin_pos, then by end_pos.
221
- #
222
- def <=>: (untyped other) -> (nil | untyped)
223
-
224
- alias eql? ==
225
-
226
- #
227
- # Support for Ranges be used in as Hash indices and in Sets.
228
- #
229
- def hash: () -> untyped
230
-
231
- #
232
- # @return [String] a human-readable representation of this range.
233
- #
234
- def inspect: () -> ::String
235
- end
236
- end
237
- end
data/sig/shims/parser.rbs DELETED
@@ -1,69 +0,0 @@
1
- module Parser
2
- module AST
3
- class Node
4
- attr_reader type: Symbol
5
-
6
- attr_reader children: Array[untyped]
7
-
8
- def initialize: (Symbol `type`, ?Array[untyped] children, ?Hash[Symbol, untyped] properties) -> void
9
-
10
- def updated: (?Symbol?, ?Array[untyped]?, ?Hash[Symbol, untyped]? properties) -> Node
11
-
12
- attr_reader location: Source::Map
13
-
14
- alias loc location
15
- end
16
- end
17
-
18
- class Ruby31
19
- def initialize: (untyped builder) -> void
20
-
21
- def parse: (Source::Buffer) -> AST
22
-
23
- def parse_with_comments: (Source::Buffer) -> [AST::Node, Array[Source::Comment]]
24
-
25
- attr_reader diagnostics: untyped
26
- end
27
-
28
- class Ruby32
29
- def initialize: (untyped builder) -> void
30
-
31
- def parse: (Source::Buffer) -> AST
32
-
33
- def parse_with_comments: (Source::Buffer) -> [AST::Node, Array[Source::Comment]]
34
-
35
- attr_reader diagnostics: untyped
36
- end
37
-
38
- class Ruby33
39
- def initialize: (untyped builder) -> void
40
-
41
- def parse: (Source::Buffer) -> AST
42
-
43
- def parse_with_comments: (Source::Buffer) -> [AST::Node, Array[Source::Comment]]
44
-
45
- attr_reader diagnostics: untyped
46
- end
47
-
48
- module Source
49
- class Buffer
50
- def initialize: (String file, Integer lineno, source: String) -> void
51
- end
52
- end
53
-
54
- module Builders
55
- class Default
56
- attr_accessor self.emit_lambda: bool
57
- attr_accessor self.emit_procarg0: bool
58
- attr_accessor self.emit_kwargs: bool
59
- attr_accessor self.emit_forward_arg: bool
60
-
61
- def string_value: (untyped) -> untyped
62
-
63
- def value: (untyped) -> untyped
64
- end
65
- end
66
-
67
- class SyntaxError < StandardError
68
- end
69
- end
data/sig/shims/string.rbs DELETED
@@ -1,4 +0,0 @@
1
- class String
2
- def start_with?: (Regexp) -> bool
3
- | ...
4
- end
@@ -1,6 +0,0 @@
1
- module ActiveSupport::TaggedLogging
2
- def tagged: [A] (*String) { () -> A } -> A
3
- | ...
4
-
5
- def formatter: () -> Formatter
6
- end
data/sig/shims/yaml.rbs DELETED
@@ -1,4 +0,0 @@
1
- module Psych
2
- class SyntaxError < StandardError
3
- end
4
- end
@@ -1,60 +0,0 @@
1
- module Steep
2
- class AnnotationParser
3
- VAR_NAME: Regexp
4
-
5
- METHOD_NAME: Regexp
6
-
7
- CONST_NAME: Regexp
8
-
9
- DYNAMIC_NAME: Regexp
10
-
11
- IVAR_NAME: Regexp
12
-
13
- attr_reader factory: AST::Types::Factory
14
-
15
- def initialize: (factory: AST::Types::Factory) -> void
16
-
17
- class SyntaxError < StandardError
18
- attr_reader source: String
19
-
20
- attr_reader location: RBS::Location[untyped, untyped]
21
-
22
- def initialize: (source: String, location: RBS::Location[untyped, untyped], exn: Exception) -> void
23
- | (source: String, location: RBS::Location[untyped, untyped], message: String) -> void
24
- end
25
-
26
- TYPE: Regexp
27
-
28
- COLON: Regexp
29
-
30
- PARAM: Regexp
31
-
32
- TYPE_PARAMS: Regexp
33
-
34
- def parse_type: (MatchData, ?Symbol, location: RBS::Location[untyped, untyped]) -> AST::Types::t
35
-
36
- # ```
37
- # @type ${keyword} ${name}: ${type}
38
- # ```
39
- #
40
- # Example:
41
- #
42
- # - `@type const Foo::Bar: String`
43
- # - `@type var xyzzy: Array[String]`
44
- #
45
- def keyword_subject_type: (String keyword, Regexp name) -> Regexp
46
-
47
- # ```
48
- # @type ${keyword}: ${type}
49
- # ```
50
- #
51
- # Example:
52
- #
53
- # - `@type break: String`
54
- # - `@type self: Foo`
55
- #
56
- def keyword_and_type: (String keyword) -> ::Regexp
57
-
58
- def parse: (String src, location: RBS::Location[untyped, untyped]) -> AST::Annotation::t?
59
- end
60
- end
@@ -1,78 +0,0 @@
1
- module Steep
2
- module AST
3
- module Annotation
4
- class Collection
5
- attr_reader annotations: Array[Annotation::t]
6
-
7
- attr_reader factory: Types::Factory
8
-
9
- attr_reader context: RBS::Resolver::context
10
-
11
- attr_reader var_type_annotations: Hash[Symbol, VarType]
12
-
13
- attr_reader const_type_annotations: Hash[RBS::TypeName, ConstType]
14
-
15
- attr_reader ivar_type_annotations: Hash[Symbol, IvarType]
16
-
17
- attr_reader method_type_annotations: Hash[Symbol, MethodType?]
18
-
19
- attr_reader block_type_annotation: BlockType?
20
-
21
- attr_reader return_type_annotation: ReturnType?
22
-
23
- attr_reader self_type_annotation: SelfType?
24
-
25
- attr_reader instance_type_annotation: InstanceType?
26
-
27
- attr_reader module_type_annotation: ModuleType?
28
-
29
- attr_reader implement_module_annotation: Implements?
30
-
31
- attr_reader dynamic_annotations: Array[Dynamic]
32
-
33
- attr_reader break_type_annotation: BreakType?
34
-
35
- def initialize: (annotations: Array[Annotation::t], factory: Types::Factory, context: RBS::Resolver::context) -> void
36
-
37
- def absolute_type: (Types::t) -> Types::t
38
- | (Types::t?) -> Types::t?
39
-
40
- def var_type: (lvar: Symbol) -> Types::t?
41
- | (ivar: Symbol) -> Types::t?
42
- | (const: RBS::TypeName) -> Types::t?
43
-
44
- def method_type: (Symbol name) -> Interface::MethodType?
45
-
46
- %a{pure} def block_type: () -> Types::t?
47
-
48
- %a{pure} def return_type: () -> Types::t?
49
-
50
- %a{pure} def self_type: () -> Types::t?
51
-
52
- %a{pure} def instance_type: () -> Types::t?
53
-
54
- %a{pure} def module_type: () -> Types::t?
55
-
56
- %a{pure} def break_type: () -> Types::t?
57
-
58
- def lvar_types: () -> Hash[Symbol, Types::t]
59
-
60
- def ivar_types: () -> Hash[Symbol, Types::t]
61
-
62
- def const_types: () -> Hash[RBS::TypeName, Types::t]
63
-
64
- def instance_dynamics: () -> Array[Symbol]
65
-
66
- def module_dynamics: () -> Array[Symbol]
67
-
68
- def merge_block_annotations: (Collection annotations) -> Collection
69
-
70
- def any?: () { (Annotation::t) -> boolish } -> bool
71
-
72
- def size: () -> Integer
73
-
74
- def include?: (Annotation::t obj) -> bool
75
- end
76
- end
77
- end
78
- end