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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +18 -0
- data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
- data/lib/steep/rake_task.rb +132 -0
- data/lib/steep/type_construction.rb +1 -0
- data/lib/steep/version.rb +1 -1
- data/steep.gemspec +4 -1
- metadata +4 -143
- 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 -111
- data/sig/steep/interface/function.rbs +0 -271
- 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,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
data/sig/shims/yaml.rbs
DELETED
|
@@ -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
|