rbs 1.6.2 → 1.7.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +0 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -0
- data/Rakefile +7 -22
- data/core/kernel.rbs +4 -4
- data/core/trace_point.rbs +1 -1
- data/ext/rbs/extension/constants.c +140 -0
- data/ext/rbs/extension/constants.h +72 -0
- data/ext/rbs/extension/extconf.rb +3 -0
- data/ext/rbs/extension/lexer.c +1070 -0
- data/ext/rbs/extension/lexer.h +145 -0
- data/ext/rbs/extension/location.c +295 -0
- data/ext/rbs/extension/location.h +59 -0
- data/ext/rbs/extension/main.c +9 -0
- data/ext/rbs/extension/parser.c +2418 -0
- data/ext/rbs/extension/parser.h +23 -0
- data/ext/rbs/extension/parserstate.c +313 -0
- data/ext/rbs/extension/parserstate.h +141 -0
- data/ext/rbs/extension/rbs_extension.h +40 -0
- data/ext/rbs/extension/ruby_objs.c +585 -0
- data/ext/rbs/extension/ruby_objs.h +46 -0
- data/ext/rbs/extension/unescape.c +65 -0
- data/goodcheck.yml +1 -1
- data/lib/rbs/ast/comment.rb +0 -12
- data/lib/rbs/buffer.rb +4 -0
- data/lib/rbs/cli.rb +5 -8
- data/lib/rbs/collection/sources/git.rb +18 -3
- data/lib/rbs/errors.rb +14 -1
- data/lib/rbs/location.rb +221 -217
- data/lib/rbs/location_aux.rb +108 -0
- data/lib/rbs/locator.rb +10 -7
- data/lib/rbs/parser_aux.rb +24 -0
- data/lib/rbs/types.rb +2 -3
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +4 -2
- data/lib/rbs.rb +3 -7
- data/rbs.gemspec +2 -1
- data/sig/ancestor_builder.rbs +2 -2
- data/sig/annotation.rbs +2 -2
- data/sig/comment.rbs +7 -7
- data/sig/constant_table.rbs +1 -1
- data/sig/declarations.rbs +9 -9
- data/sig/definition.rbs +1 -1
- data/sig/definition_builder.rbs +2 -2
- data/sig/errors.rbs +30 -25
- data/sig/location.rbs +42 -79
- data/sig/locator.rbs +2 -2
- data/sig/members.rbs +7 -7
- data/sig/method_types.rbs +3 -3
- data/sig/parser.rbs +11 -21
- data/sig/types.rbs +45 -27
- data/sig/writer.rbs +1 -1
- data/stdlib/json/0/json.rbs +3 -3
- metadata +24 -6
- data/lib/rbs/parser.rb +0 -3614
@@ -0,0 +1,108 @@
|
|
1
|
+
module RBS
|
2
|
+
class Location
|
3
|
+
def inspect
|
4
|
+
rks = each_required_key.to_a
|
5
|
+
ops = each_optional_key.to_a.map {|x| "?#{x}" }
|
6
|
+
"#<#{self.class}:#{self.__id__} buffer=#{buffer.name}, start=#{start_line}:#{start_column}, pos=#{start_pos}...#{end_pos}, children=#{(rks + ops).join(",")} source='#{source.lines.first&.chomp}'>"
|
7
|
+
end
|
8
|
+
|
9
|
+
def name
|
10
|
+
buffer.name
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_line
|
14
|
+
start_loc[0]
|
15
|
+
end
|
16
|
+
|
17
|
+
def start_column
|
18
|
+
start_loc[1]
|
19
|
+
end
|
20
|
+
|
21
|
+
def end_line
|
22
|
+
end_loc[0]
|
23
|
+
end
|
24
|
+
|
25
|
+
def end_column
|
26
|
+
end_loc[1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def start_loc
|
30
|
+
@start_loc ||= begin
|
31
|
+
_start_loc || buffer.pos_to_loc(start_pos)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def end_loc
|
36
|
+
@end_loc ||= begin
|
37
|
+
_end_loc || buffer.pos_to_loc(end_pos)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def range
|
42
|
+
@range ||= start_pos...end_pos
|
43
|
+
end
|
44
|
+
|
45
|
+
def source
|
46
|
+
@source ||= buffer.content[range] or raise
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_s
|
50
|
+
"#{name || "-"}:#{start_line}:#{start_column}...#{end_line}:#{end_column}"
|
51
|
+
end
|
52
|
+
|
53
|
+
def ==(other)
|
54
|
+
other.is_a?(Location) &&
|
55
|
+
other.buffer == buffer &&
|
56
|
+
other.start_pos == start_pos &&
|
57
|
+
other.end_pos == end_pos
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_json(state = _ = nil)
|
61
|
+
{
|
62
|
+
start: {
|
63
|
+
line: start_line,
|
64
|
+
column: start_column
|
65
|
+
},
|
66
|
+
end: {
|
67
|
+
line: end_line,
|
68
|
+
column: end_column
|
69
|
+
},
|
70
|
+
buffer: {
|
71
|
+
name: name&.to_s
|
72
|
+
}
|
73
|
+
}.to_json(state)
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.to_string(location, default: "*:*:*...*:*")
|
77
|
+
location&.to_s || default
|
78
|
+
end
|
79
|
+
|
80
|
+
def add_required_child(name, range)
|
81
|
+
_add_required_child(name, range.begin, range.end)
|
82
|
+
end
|
83
|
+
|
84
|
+
def add_optional_child(name, range)
|
85
|
+
if range
|
86
|
+
_add_optional_child(name, range.begin, range.end)
|
87
|
+
else
|
88
|
+
_add_optional_no_child(name);
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def each_optional_key(&block)
|
93
|
+
if block
|
94
|
+
_optional_keys.uniq.each(&block)
|
95
|
+
else
|
96
|
+
enum_for(:each_optional_key)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def each_required_key(&block)
|
101
|
+
if block
|
102
|
+
_required_keys.uniq.each(&block)
|
103
|
+
else
|
104
|
+
enum_for(:each_required_key)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
data/lib/rbs/locator.rb
CHANGED
@@ -172,16 +172,19 @@ module RBS
|
|
172
172
|
|
173
173
|
def find_in_loc(pos, location:, array:)
|
174
174
|
if test_loc(pos, location: location)
|
175
|
-
if location.is_a?(Location
|
176
|
-
location.
|
177
|
-
if
|
178
|
-
|
179
|
-
|
175
|
+
if location.is_a?(Location)
|
176
|
+
location.each_optional_key do |key|
|
177
|
+
if loc = location[key]
|
178
|
+
if loc.range === pos
|
179
|
+
array.unshift(key)
|
180
|
+
return true
|
181
|
+
end
|
180
182
|
end
|
181
183
|
end
|
182
184
|
|
183
|
-
location.
|
184
|
-
|
185
|
+
location.each_required_key do |key|
|
186
|
+
loc = location[key] or raise
|
187
|
+
if loc.range === pos
|
185
188
|
array.unshift(key)
|
186
189
|
return true
|
187
190
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module RBS
|
2
|
+
class Parser
|
3
|
+
def self.parse_type(source, line: 1, column: 0, variables: [])
|
4
|
+
_parse_type(buffer(source), line, column, variables)
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.parse_method_type(source, line: 1, column: 0, variables: [])
|
8
|
+
_parse_method_type(buffer(source), line, column, variables)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.parse_signature(source, line: 1, column: 0)
|
12
|
+
_parse_signature(buffer(source), line, column)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.buffer(source)
|
16
|
+
case source
|
17
|
+
when String
|
18
|
+
Buffer.new(content: source, name: "a.rbs")
|
19
|
+
when Buffer
|
20
|
+
source
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/rbs/types.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
module RBS
|
3
2
|
module Types
|
4
3
|
module NoFreeVariables
|
@@ -434,7 +433,7 @@ module RBS
|
|
434
433
|
return "{ }" if self.fields.empty?
|
435
434
|
|
436
435
|
fields = self.fields.map do |key, type|
|
437
|
-
if key.is_a?(Symbol) && key.match?(/\A[A-Za-z_][A-Za-z_]*\z/) && !key
|
436
|
+
if key.is_a?(Symbol) && key.match?(/\A[A-Za-z_][A-Za-z_]*\z/) && !Parser::KEYWORDS.key?(key)
|
438
437
|
"#{key}: #{type}"
|
439
438
|
else
|
440
439
|
"#{key.inspect} => #{type}"
|
@@ -691,7 +690,7 @@ module RBS
|
|
691
690
|
|
692
691
|
def to_s
|
693
692
|
if name
|
694
|
-
if
|
693
|
+
if Parser::KEYWORDS.key?(name)
|
695
694
|
"#{type} `#{name}`"
|
696
695
|
else
|
697
696
|
"#{type} #{name}"
|
data/lib/rbs/version.rb
CHANGED
data/lib/rbs/writer.rb
CHANGED
@@ -232,8 +232,10 @@ module RBS
|
|
232
232
|
def method_name(name)
|
233
233
|
s = name.to_s
|
234
234
|
|
235
|
-
|
236
|
-
|
235
|
+
case s
|
236
|
+
when /\A(_?)[A-Za-z_]\w*(\?|!|=)?\Z/
|
237
|
+
s
|
238
|
+
when *%w(| ^ & <=> == === =~ > >= < <= << >> + - * / % ** ~ +@ -@ [] []= ` ! != !~)
|
237
239
|
s
|
238
240
|
else
|
239
241
|
"`#{s}`"
|
data/lib/rbs.rb
CHANGED
@@ -12,7 +12,6 @@ require "strscan"
|
|
12
12
|
require "rbs/char_scanner"
|
13
13
|
require "rbs/errors"
|
14
14
|
require "rbs/buffer"
|
15
|
-
require "rbs/location"
|
16
15
|
require "rbs/namespace"
|
17
16
|
require "rbs/type_name"
|
18
17
|
require "rbs/types"
|
@@ -47,12 +46,9 @@ require "rbs/locator"
|
|
47
46
|
require "rbs/type_alias_dependency"
|
48
47
|
require "rbs/collection"
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
STDERR.puts "Missing parser Ruby code? Running `rake parser` may solve the issue"
|
54
|
-
raise
|
55
|
-
end
|
49
|
+
require "rbs/extension"
|
50
|
+
require "rbs/parser_aux"
|
51
|
+
require "rbs/location_aux"
|
56
52
|
|
57
53
|
module RBS
|
58
54
|
class <<self
|
data/rbs.gemspec
CHANGED
@@ -30,7 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
31
31
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
|
32
32
|
end
|
33
|
-
spec.
|
33
|
+
spec.extensions = %w{ext/rbs/extension/extconf.rb}
|
34
|
+
|
34
35
|
spec.bindir = "exe"
|
35
36
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
36
37
|
spec.require_paths = ["lib"]
|
data/sig/ancestor_builder.rbs
CHANGED
@@ -82,7 +82,7 @@ module RBS
|
|
82
82
|
def mixin_ancestors: (Environment::ClassEntry | Environment::ModuleEntry,
|
83
83
|
TypeName,
|
84
84
|
included_modules: Array[Definition::Ancestor::Instance]?,
|
85
|
-
included_interfaces:Array[Definition::Ancestor::Instance]?,
|
85
|
+
included_interfaces: Array[Definition::Ancestor::Instance]?,
|
86
86
|
prepended_modules: Array[Definition::Ancestor::Instance]?,
|
87
87
|
extended_modules: Array[Definition::Ancestor::Instance]?,
|
88
88
|
extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
|
@@ -91,7 +91,7 @@ module RBS
|
|
91
91
|
TypeName,
|
92
92
|
align_params: Substitution?,
|
93
93
|
included_modules: Array[Definition::Ancestor::Instance]?,
|
94
|
-
included_interfaces:Array[Definition::Ancestor::Instance]?,
|
94
|
+
included_interfaces: Array[Definition::Ancestor::Instance]?,
|
95
95
|
prepended_modules: Array[Definition::Ancestor::Instance]?,
|
96
96
|
extended_modules: Array[Definition::Ancestor::Instance]?,
|
97
97
|
extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
|
data/sig/annotation.rbs
CHANGED
@@ -10,9 +10,9 @@ module RBS
|
|
10
10
|
#
|
11
11
|
class Annotation
|
12
12
|
attr_reader string: String
|
13
|
-
attr_reader location: Location?
|
13
|
+
attr_reader location: Location[untyped, untyped]?
|
14
14
|
|
15
|
-
def initialize: (string: String, location: Location?) -> void
|
15
|
+
def initialize: (string: String, location: Location[untyped, untyped]?) -> void
|
16
16
|
|
17
17
|
def ==: (untyped other) -> bool
|
18
18
|
|
data/sig/comment.rbs
CHANGED
@@ -2,15 +2,17 @@ module RBS
|
|
2
2
|
module AST
|
3
3
|
# RBS allows writing documentation of declarations and members.
|
4
4
|
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
5
|
+
# ```
|
6
|
+
# # This is a doc for class.
|
7
|
+
# class Hello
|
8
|
+
# end
|
9
|
+
# ```
|
8
10
|
#
|
9
11
|
class Comment
|
10
12
|
attr_reader string: String
|
11
|
-
attr_reader location: Location?
|
13
|
+
attr_reader location: Location[bot, bot]?
|
12
14
|
|
13
|
-
def initialize: (string: String, location: Location?) -> void
|
15
|
+
def initialize: (string: String, location: Location[bot, bot]?) -> void
|
14
16
|
|
15
17
|
def ==: (untyped other) -> bool
|
16
18
|
|
@@ -19,8 +21,6 @@ module RBS
|
|
19
21
|
def hash: () -> Integer
|
20
22
|
|
21
23
|
include _ToJson
|
22
|
-
|
23
|
-
def concat: (string: String, location: Location?) -> self
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/sig/constant_table.rbs
CHANGED
@@ -9,7 +9,7 @@ module RBS
|
|
9
9
|
|
10
10
|
def absolute_type: (Types::t, context: Array[Namespace]) -> Types::t
|
11
11
|
|
12
|
-
def absolute_type_name: (TypeName, context: Array[Namespace], location: Location?) -> TypeName
|
12
|
+
def absolute_type_name: (TypeName, context: Array[Namespace], location: Location[untyped, untyped]?) -> TypeName
|
13
13
|
|
14
14
|
def name_to_constant: (TypeName) -> Constant?
|
15
15
|
|
data/sig/declarations.rbs
CHANGED
@@ -17,7 +17,7 @@ module RBS
|
|
17
17
|
# ^^^^^^^^^ unchecked
|
18
18
|
# ^^^ variance
|
19
19
|
# ^^^^ name
|
20
|
-
type loc = Location
|
20
|
+
type loc = Location[:name, :variance | :unchecked]
|
21
21
|
|
22
22
|
attr_reader name: Symbol
|
23
23
|
attr_reader variance: variance
|
@@ -86,7 +86,7 @@ module RBS
|
|
86
86
|
# ^^^^^ name
|
87
87
|
# ^^^^^^^^ args
|
88
88
|
#
|
89
|
-
type loc = Location
|
89
|
+
type loc = Location[:name, :args]
|
90
90
|
|
91
91
|
attr_reader name: TypeName
|
92
92
|
attr_reader args: Array[Types::t]
|
@@ -112,7 +112,7 @@ module RBS
|
|
112
112
|
# ^ lt
|
113
113
|
# ^^^ end
|
114
114
|
#
|
115
|
-
type loc = Location
|
115
|
+
type loc = Location[:keyword | :name | :end, :type_params | :lt]
|
116
116
|
|
117
117
|
include NestedDeclarationHelper
|
118
118
|
include MixinHelper
|
@@ -137,7 +137,7 @@ module RBS
|
|
137
137
|
# ^^^^^ name
|
138
138
|
# ^^^^^^^^ args
|
139
139
|
#
|
140
|
-
type loc = Location
|
140
|
+
type loc = Location[:name, :args]
|
141
141
|
|
142
142
|
attr_reader name: TypeName
|
143
143
|
attr_reader args: Array[Types::t]
|
@@ -166,7 +166,7 @@ module RBS
|
|
166
166
|
# ^^^^^^^^^^^ self_types
|
167
167
|
# ^^^ end
|
168
168
|
#
|
169
|
-
type loc = Location
|
169
|
+
type loc = Location[:keyword | :name | :end, :type_params | :colon | :self_types]
|
170
170
|
|
171
171
|
include NestedDeclarationHelper
|
172
172
|
include MixinHelper
|
@@ -199,7 +199,7 @@ module RBS
|
|
199
199
|
# ^^^^^^ type_params
|
200
200
|
# ^^^ end
|
201
201
|
#
|
202
|
-
type loc = Location
|
202
|
+
type loc = Location[:name | :keyword | :end, :type_params]
|
203
203
|
|
204
204
|
attr_reader name: TypeName
|
205
205
|
attr_reader type_params: ModuleTypeParams
|
@@ -221,7 +221,7 @@ module RBS
|
|
221
221
|
# ^^^^ keyword
|
222
222
|
# ^^^ name
|
223
223
|
# ^ eq
|
224
|
-
type loc = Location
|
224
|
+
type loc = Location[:keyword | :name | :eq, bot]
|
225
225
|
|
226
226
|
attr_reader name: TypeName
|
227
227
|
attr_reader type: Types::t
|
@@ -240,7 +240,7 @@ module RBS
|
|
240
240
|
# ^^^^^^^ name
|
241
241
|
# ^ colon
|
242
242
|
#
|
243
|
-
type loc = Location
|
243
|
+
type loc = Location[:name | :colon, bot]
|
244
244
|
|
245
245
|
attr_reader name: TypeName
|
246
246
|
attr_reader type: Types::t
|
@@ -258,7 +258,7 @@ module RBS
|
|
258
258
|
# ^^^^^ name
|
259
259
|
# ^ colon
|
260
260
|
#
|
261
|
-
type loc = Location
|
261
|
+
type loc = Location[:name | :colon, bot]
|
262
262
|
|
263
263
|
attr_reader name: Symbol
|
264
264
|
attr_reader type: Types::t
|
data/sig/definition.rbs
CHANGED
@@ -90,7 +90,7 @@ module RBS
|
|
90
90
|
|
91
91
|
def initialize: (type_name: TypeName, params: Array[Symbol], ancestors: Array[Ancestor::t]) -> void
|
92
92
|
|
93
|
-
def apply: (Array[Types::t], location: Location?) -> Array[Ancestor::t]
|
93
|
+
def apply: (Array[Types::t], location: Location[untyped, untyped]?) -> Array[Ancestor::t]
|
94
94
|
end
|
95
95
|
|
96
96
|
class SingletonAncestors
|
data/sig/definition_builder.rbs
CHANGED
@@ -14,7 +14,7 @@ module RBS
|
|
14
14
|
|
15
15
|
def validate_super_class!: (TypeName, Environment::ClassEntry) -> void
|
16
16
|
|
17
|
-
def ensure_namespace!: (Namespace, location: Location?) -> void
|
17
|
+
def ensure_namespace!: (Namespace, location: Location[untyped, untyped]?) -> void
|
18
18
|
|
19
19
|
def build_interface: (TypeName) -> Definition
|
20
20
|
|
@@ -37,7 +37,7 @@ module RBS
|
|
37
37
|
|
38
38
|
def validate_type_params: (Definition, ancestors: AncestorBuilder::OneAncestors, methods: MethodBuilder::Methods) -> void
|
39
39
|
|
40
|
-
def source_location: (Definition::Ancestor::Instance::source, AST::Declarations::t) -> Location?
|
40
|
+
def source_location: (Definition::Ancestor::Instance::source, AST::Declarations::t) -> Location[untyped, untyped]?
|
41
41
|
|
42
42
|
def insert_variable: (TypeName, Hash[Symbol, Definition::Variable], name: Symbol, type: Types::t) -> void
|
43
43
|
|
data/sig/errors.rbs
CHANGED
@@ -19,6 +19,11 @@ module RBS
|
|
19
19
|
# Error class for errors raised during parsing.
|
20
20
|
#
|
21
21
|
class ParsingError < BaseError
|
22
|
+
attr_reader location: Location[untyped, untyped]
|
23
|
+
attr_reader error_message: String
|
24
|
+
attr_reader token_type: String
|
25
|
+
|
26
|
+
def initialize: (Location[untyped, untyped], String error_message, String token_type) -> void
|
22
27
|
end
|
23
28
|
|
24
29
|
# Error class for errors raised during loading environments.
|
@@ -35,45 +40,45 @@ module RBS
|
|
35
40
|
attr_reader type_name: TypeName
|
36
41
|
attr_reader args: Array[Types::t]
|
37
42
|
attr_reader params: Array[Symbol]
|
38
|
-
attr_reader location: Location?
|
43
|
+
attr_reader location: Location[untyped, untyped]?
|
39
44
|
|
40
|
-
def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[Symbol], location: Location?) -> void
|
45
|
+
def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[Symbol], location: Location[untyped, untyped]?) -> void
|
41
46
|
|
42
|
-
def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[Symbol], location: Location?) -> void
|
47
|
+
def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[Symbol], location: Location[untyped, untyped]?) -> void
|
43
48
|
end
|
44
49
|
|
45
50
|
class RecursiveAncestorError < DefinitionError
|
46
51
|
attr_reader ancestors: Array[Definition::Ancestor::t]
|
47
|
-
attr_reader location: Location?
|
52
|
+
attr_reader location: Location[untyped, untyped]?
|
48
53
|
|
49
|
-
def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location?) -> void
|
54
|
+
def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
50
55
|
|
51
|
-
def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location?) -> void
|
56
|
+
def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
|
52
57
|
end
|
53
58
|
|
54
59
|
class NoTypeFoundError < DefinitionError
|
55
60
|
attr_reader type_name: TypeName
|
56
|
-
attr_reader location: Location?
|
61
|
+
attr_reader location: Location[untyped, untyped]?
|
57
62
|
|
58
|
-
def initialize: (type_name: TypeName, location: Location?) -> void
|
63
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
59
64
|
|
60
|
-
def self.check!: (TypeName, env: Environment, location: Location?) -> TypeName
|
65
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> TypeName
|
61
66
|
end
|
62
67
|
|
63
68
|
class NoSuperclassFoundError < DefinitionError
|
64
69
|
attr_reader type_name: TypeName
|
65
|
-
attr_reader location: Location?
|
70
|
+
attr_reader location: Location[untyped, untyped]?
|
66
71
|
|
67
|
-
def initialize: (type_name: TypeName, location: Location?) -> void
|
72
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
68
73
|
|
69
|
-
def self.check!: (TypeName, env: Environment, location: Location?) -> void
|
74
|
+
def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> void
|
70
75
|
end
|
71
76
|
|
72
77
|
class NoSelfTypeFoundError < DefinitionError
|
73
78
|
attr_reader type_name: TypeName
|
74
|
-
attr_reader location: Location?
|
79
|
+
attr_reader location: Location[untyped, untyped]?
|
75
80
|
|
76
|
-
def initialize: (type_name: TypeName, location: Location?) -> void
|
81
|
+
def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
|
77
82
|
|
78
83
|
def self.check!: (AST::Declarations::Module::Self, env: Environment) -> void
|
79
84
|
end
|
@@ -84,7 +89,7 @@ module RBS
|
|
84
89
|
|
85
90
|
def initialize: (type_name: TypeName, member: AST::Members::t) -> void
|
86
91
|
|
87
|
-
def location: () -> Location?
|
92
|
+
def location: () -> Location[untyped, untyped]?
|
88
93
|
|
89
94
|
def self.check!: (TypeName, env: Environment, member: AST::Members::t) -> void
|
90
95
|
end
|
@@ -103,9 +108,9 @@ module RBS
|
|
103
108
|
|
104
109
|
def qualified_method_name: () -> String
|
105
110
|
|
106
|
-
def location: () -> Location?
|
111
|
+
def location: () -> Location[untyped, untyped]?
|
107
112
|
|
108
|
-
def other_locations: () -> Array[Location?]
|
113
|
+
def other_locations: () -> Array[Location[untyped, untyped]?]
|
109
114
|
end
|
110
115
|
|
111
116
|
class DuplicatedInterfaceMethodDefinitionError < DefinitionError
|
@@ -127,9 +132,9 @@ module RBS
|
|
127
132
|
attr_reader type_name: TypeName
|
128
133
|
attr_reader original_name: Symbol
|
129
134
|
attr_reader aliased_name: Symbol
|
130
|
-
attr_reader location: Location?
|
135
|
+
attr_reader location: Location[untyped, untyped]?
|
131
136
|
|
132
|
-
def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location?) -> void
|
137
|
+
def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location[untyped, untyped]?) -> void
|
133
138
|
end
|
134
139
|
|
135
140
|
class SuperclassMismatchError < DefinitionError
|
@@ -165,9 +170,9 @@ module RBS
|
|
165
170
|
class InvalidVarianceAnnotationError < DefinitionError
|
166
171
|
attr_reader type_name: TypeName
|
167
172
|
attr_reader param: AST::Declarations::ModuleTypeParams::TypeParam
|
168
|
-
attr_reader location: Location?
|
173
|
+
attr_reader location: Location[untyped, untyped]?
|
169
174
|
|
170
|
-
def initialize: (type_name: TypeName, param: AST::Declarations::ModuleTypeParams::TypeParam, location: Location?) -> void
|
175
|
+
def initialize: (type_name: TypeName, param: AST::Declarations::ModuleTypeParams::TypeParam, location: Location[untyped, untyped]?) -> void
|
171
176
|
end
|
172
177
|
|
173
178
|
class RecursiveAliasDefinitionError < DefinitionError
|
@@ -179,7 +184,7 @@ module RBS
|
|
179
184
|
|
180
185
|
def initialize: (type: ty, defs: Array[defn]) -> void
|
181
186
|
|
182
|
-
def location: () -> Location?
|
187
|
+
def location: () -> Location[untyped, untyped]?
|
183
188
|
end
|
184
189
|
|
185
190
|
class MixinClassError < DefinitionError
|
@@ -190,7 +195,7 @@ module RBS
|
|
190
195
|
|
191
196
|
def initialize: (type_name: TypeName, member: member) -> void
|
192
197
|
|
193
|
-
def location: () -> Location?
|
198
|
+
def location: () -> Location[untyped, untyped]?
|
194
199
|
|
195
200
|
def self.check!: (type_name: TypeName, env: Environment, member: member) -> void
|
196
201
|
|
@@ -199,9 +204,9 @@ module RBS
|
|
199
204
|
|
200
205
|
class RecursiveTypeAliasError < LoadingError
|
201
206
|
attr_reader alias_names: Array[TypeName]
|
202
|
-
attr_reader location: Location
|
207
|
+
attr_reader location: Location[untyped, untyped]?
|
203
208
|
|
204
|
-
def initialize: (alias_names: Array[TypeName], location: Location) -> void
|
209
|
+
def initialize: (alias_names: Array[TypeName], location: Location[untyped, untyped]?) -> void
|
205
210
|
|
206
211
|
def name: () -> String
|
207
212
|
end
|