prism 0.27.0 → 0.28.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 +26 -1
- data/config.yml +39 -27
- data/docs/configuration.md +1 -0
- data/ext/prism/api_node.c +814 -807
- data/ext/prism/extension.c +5 -3
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +38 -16
- data/include/prism/diagnostic.h +12 -5
- data/include/prism/options.h +2 -2
- data/include/prism/parser.h +10 -0
- data/include/prism/static_literals.h +8 -6
- data/include/prism/version.h +2 -2
- data/lib/prism/dot_visitor.rb +22 -6
- data/lib/prism/dsl.rb +8 -8
- data/lib/prism/ffi.rb +3 -3
- data/lib/prism/inspect_visitor.rb +2156 -0
- data/lib/prism/lex_compat.rb +1 -1
- data/lib/prism/mutation_compiler.rb +2 -2
- data/lib/prism/node.rb +589 -1715
- data/lib/prism/node_ext.rb +34 -5
- data/lib/prism/parse_result.rb +78 -0
- data/lib/prism/pattern.rb +12 -6
- data/lib/prism/polyfill/byteindex.rb +13 -0
- data/lib/prism/polyfill/unpack1.rb +14 -0
- data/lib/prism/reflection.rb +13 -13
- data/lib/prism/serialize.rb +21 -14
- data/lib/prism/translation/parser/compiler.rb +2 -2
- data/lib/prism/translation/parser.rb +6 -6
- data/lib/prism/translation/ripper.rb +13 -9
- data/lib/prism/translation/ruby_parser.rb +4 -4
- data/lib/prism.rb +2 -1
- data/prism.gemspec +36 -38
- data/rbi/prism/compiler.rbi +3 -5
- data/rbi/prism/inspect_visitor.rbi +12 -0
- data/rbi/prism/node.rbi +354 -319
- data/rbi/prism/parse_result.rbi +23 -0
- data/rbi/prism/translation/ripper.rbi +1 -11
- data/sig/prism/dsl.rbs +3 -3
- data/sig/prism/inspect_visitor.rbs +22 -0
- data/sig/prism/node.rbs +64 -47
- data/sig/prism/parse_result.rbs +12 -0
- data/src/diagnostic.c +38 -24
- data/src/node.c +41 -16
- data/src/options.c +2 -2
- data/src/prettyprint.c +61 -18
- data/src/prism.c +607 -185
- data/src/serialize.c +5 -2
- data/src/static_literals.c +120 -34
- data/src/token_type.c +4 -4
- metadata +7 -9
- data/lib/prism/node_inspector.rb +0 -68
- data/lib/prism/polyfill/string.rb +0 -12
- data/rbi/prism/desugar_compiler.rbi +0 -5
- data/rbi/prism/mutation_compiler.rbi +0 -5
- data/rbi/prism/translation/parser/compiler.rbi +0 -13
- data/rbi/prism/translation/ripper/ripper_compiler.rbi +0 -5
- data/rbi/prism/translation/ruby_parser.rbi +0 -11
data/rbi/prism/parse_result.rbi
CHANGED
@@ -16,6 +16,9 @@ class Prism::Source
|
|
16
16
|
sig { returns(Encoding) }
|
17
17
|
def encoding; end
|
18
18
|
|
19
|
+
sig { returns(T::Array[Integer]) }
|
20
|
+
def lines; end
|
21
|
+
|
19
22
|
sig { params(byte_offset: Integer, length: Integer).returns(String) }
|
20
23
|
def slice(byte_offset, length); end
|
21
24
|
|
@@ -41,6 +44,20 @@ class Prism::Source
|
|
41
44
|
def code_units_column(byte_offset, encoding); end
|
42
45
|
end
|
43
46
|
|
47
|
+
class Prism::ASCIISource < Prism::Source
|
48
|
+
sig { params(byte_offset: Integer).returns(Integer) }
|
49
|
+
def character_offset(byte_offset); end
|
50
|
+
|
51
|
+
sig { params(byte_offset: Integer).returns(Integer) }
|
52
|
+
def character_column(byte_offset); end
|
53
|
+
|
54
|
+
sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
|
55
|
+
def code_units_offset(byte_offset, encoding); end
|
56
|
+
|
57
|
+
sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
|
58
|
+
def code_units_column(byte_offset, encoding); end
|
59
|
+
end
|
60
|
+
|
44
61
|
class Prism::Location
|
45
62
|
sig { returns(Prism::Source) }
|
46
63
|
def source; end
|
@@ -78,6 +95,9 @@ class Prism::Location
|
|
78
95
|
sig { returns(String) }
|
79
96
|
def inspect; end
|
80
97
|
|
98
|
+
sig { returns(T::Array[String]) }
|
99
|
+
def source_lines; end
|
100
|
+
|
81
101
|
sig { returns(String) }
|
82
102
|
def slice; end
|
83
103
|
|
@@ -134,6 +154,9 @@ class Prism::Location
|
|
134
154
|
|
135
155
|
sig { params(other: Prism::Location).returns(Prism::Location) }
|
136
156
|
def join(other); end
|
157
|
+
|
158
|
+
sig { params(string: String).returns(Prism::Location) }
|
159
|
+
def adjoin(string); end
|
137
160
|
end
|
138
161
|
|
139
162
|
class Prism::Comment
|
@@ -1,12 +1,10 @@
|
|
1
1
|
# typed: strict
|
2
2
|
|
3
3
|
class Prism::Translation::Ripper < Prism::Compiler
|
4
|
-
Result = type_member
|
5
|
-
|
6
4
|
sig { returns(T::Boolean) }
|
7
5
|
def error?; end
|
8
6
|
|
9
|
-
sig { returns(T.
|
7
|
+
sig { returns(T.untyped) }
|
10
8
|
def parse; end
|
11
9
|
|
12
10
|
sig { params(source: String, filename: String, lineno: Integer, raise_errors: T.untyped).returns(T.untyped) }
|
@@ -15,11 +13,3 @@ class Prism::Translation::Ripper < Prism::Compiler
|
|
15
13
|
sig { params(source: String, filename: String, lineno: Integer, raise_errors: T.untyped).returns(T.untyped) }
|
16
14
|
def self.sexp(source, filename = "-", lineno = 1, raise_errors: false); end
|
17
15
|
end
|
18
|
-
|
19
|
-
class Prism::Translation::Ripper::SexpBuilder < Prism::Translation::Ripper
|
20
|
-
Result = type_member { { fixed: T::Array[T.untyped] } }
|
21
|
-
end
|
22
|
-
|
23
|
-
class Prism::Translation::Ripper::SexpBuilderPP < Prism::Translation::Ripper::SexpBuilder
|
24
|
-
Result = type_member { { fixed: T::Array[T.untyped] } }
|
25
|
-
end
|
data/sig/prism/dsl.rbs
CHANGED
@@ -118,7 +118,7 @@ module Prism
|
|
118
118
|
def ConstantPathAndWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathAndWriteNode
|
119
119
|
|
120
120
|
# Create a new ConstantPathNode node
|
121
|
-
def ConstantPathNode: (Prism::node? parent,
|
121
|
+
def ConstantPathNode: (Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, ?Source source, ?Location location) -> ConstantPathNode
|
122
122
|
|
123
123
|
# Create a new ConstantPathOperatorWriteNode node
|
124
124
|
def ConstantPathOperatorWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, Symbol operator, ?Source source, ?Location location) -> ConstantPathOperatorWriteNode
|
@@ -127,7 +127,7 @@ module Prism
|
|
127
127
|
def ConstantPathOrWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathOrWriteNode
|
128
128
|
|
129
129
|
# Create a new ConstantPathTargetNode node
|
130
|
-
def ConstantPathTargetNode: (Prism::node? parent,
|
130
|
+
def ConstantPathTargetNode: (Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, ?Source source, ?Location location) -> ConstantPathTargetNode
|
131
131
|
|
132
132
|
# Create a new ConstantPathWriteNode node
|
133
133
|
def ConstantPathWriteNode: (ConstantPathNode target, Location operator_loc, Prism::node value, ?Source source, ?Location location) -> ConstantPathWriteNode
|
@@ -400,7 +400,7 @@ module Prism
|
|
400
400
|
def RetryNode: (?Source source, ?Location location) -> RetryNode
|
401
401
|
|
402
402
|
# Create a new ReturnNode node
|
403
|
-
def ReturnNode: (Location keyword_loc, ArgumentsNode? arguments, ?Source source, ?Location location) -> ReturnNode
|
403
|
+
def ReturnNode: (Integer flags, Location keyword_loc, ArgumentsNode? arguments, ?Source source, ?Location location) -> ReturnNode
|
404
404
|
|
405
405
|
# Create a new SelfNode node
|
406
406
|
def SelfNode: (?Source source, ?Location location) -> SelfNode
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Prism
|
2
|
+
class InspectVisitor < Visitor
|
3
|
+
class Replace
|
4
|
+
attr_reader value: String
|
5
|
+
|
6
|
+
def initialize: (String value) -> void
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader indent: String
|
10
|
+
attr_reader commands: Array[[String | node | Replace, String]]
|
11
|
+
|
12
|
+
def initialize: (?String indent) -> void
|
13
|
+
def compose: () -> String
|
14
|
+
|
15
|
+
def self.compose: (node node) -> String
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def inspect_node: (String name, node node) -> String
|
20
|
+
def inspect_location: (Location? location) -> String
|
21
|
+
end
|
22
|
+
end
|
data/sig/prism/node.rbs
CHANGED
@@ -16,9 +16,13 @@ module Prism
|
|
16
16
|
|
17
17
|
def start_offset: () -> Integer
|
18
18
|
def end_offset: () -> Integer
|
19
|
+
def source_lines: () -> Array[String]
|
20
|
+
alias script_lines source_lines
|
19
21
|
def slice: () -> String
|
22
|
+
def slice_lines: () -> String
|
20
23
|
def pretty_print: (untyped q) -> untyped
|
21
24
|
def to_dot: () -> String
|
25
|
+
def tunnel: (Integer line, Integer column) -> Array[Prism::node]
|
22
26
|
end
|
23
27
|
|
24
28
|
type node_singleton = singleton(Node) & _NodeSingleton
|
@@ -31,7 +35,7 @@ module Prism
|
|
31
35
|
def compact_child_nodes: () -> Array[Prism::node]
|
32
36
|
def comment_targets: () -> Array[Prism::node | Location]
|
33
37
|
def fields: () -> Array[Prism::Reflection::Field]
|
34
|
-
def inspect: (
|
38
|
+
def inspect: () -> String
|
35
39
|
def type: () -> Symbol
|
36
40
|
end
|
37
41
|
|
@@ -125,12 +129,13 @@ module Prism
|
|
125
129
|
class ArgumentsNode < Node
|
126
130
|
include _Node
|
127
131
|
|
128
|
-
|
132
|
+
attr_reader flags: Integer
|
129
133
|
attr_reader arguments: Array[Prism::node]
|
130
134
|
|
131
135
|
def initialize: (Source source, Integer flags, Array[Prism::node] arguments, Location location) -> void
|
132
136
|
def copy: (?flags: Integer, ?arguments: Array[Prism::node], ?location: Location) -> ArgumentsNode
|
133
137
|
def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, arguments: Array[Prism::node], location: Location }
|
138
|
+
def contains_keywords?: () -> bool
|
134
139
|
def contains_keyword_splat?: () -> bool
|
135
140
|
def type: () -> :arguments_node
|
136
141
|
| ...
|
@@ -144,7 +149,7 @@ module Prism
|
|
144
149
|
class ArrayNode < Node
|
145
150
|
include _Node
|
146
151
|
|
147
|
-
|
152
|
+
attr_reader flags: Integer
|
148
153
|
attr_reader elements: Array[Prism::node]
|
149
154
|
attr_reader opening_loc: Location?
|
150
155
|
attr_reader closing_loc: Location?
|
@@ -304,7 +309,7 @@ module Prism
|
|
304
309
|
class BlockLocalVariableNode < Node
|
305
310
|
include _Node
|
306
311
|
|
307
|
-
|
312
|
+
attr_reader flags: Integer
|
308
313
|
attr_reader name: Symbol
|
309
314
|
|
310
315
|
def initialize: (Source source, Integer flags, Symbol name, Location location) -> void
|
@@ -347,7 +352,7 @@ module Prism
|
|
347
352
|
class BlockParameterNode < Node
|
348
353
|
include _Node
|
349
354
|
|
350
|
-
|
355
|
+
attr_reader flags: Integer
|
351
356
|
attr_reader name: Symbol?
|
352
357
|
attr_reader name_loc: Location?
|
353
358
|
attr_reader operator_loc: Location
|
@@ -414,7 +419,7 @@ module Prism
|
|
414
419
|
class CallAndWriteNode < Node
|
415
420
|
include _Node
|
416
421
|
|
417
|
-
|
422
|
+
attr_reader flags: Integer
|
418
423
|
attr_reader receiver: Prism::node?
|
419
424
|
attr_reader call_operator_loc: Location?
|
420
425
|
attr_reader message_loc: Location?
|
@@ -460,7 +465,7 @@ module Prism
|
|
460
465
|
class CallNode < Node
|
461
466
|
include _Node
|
462
467
|
|
463
|
-
|
468
|
+
attr_reader flags: Integer
|
464
469
|
attr_reader receiver: Prism::node?
|
465
470
|
attr_reader call_operator_loc: Location?
|
466
471
|
attr_reader name: Symbol
|
@@ -493,7 +498,7 @@ module Prism
|
|
493
498
|
class CallOperatorWriteNode < Node
|
494
499
|
include _Node
|
495
500
|
|
496
|
-
|
501
|
+
attr_reader flags: Integer
|
497
502
|
attr_reader receiver: Prism::node?
|
498
503
|
attr_reader call_operator_loc: Location?
|
499
504
|
attr_reader message_loc: Location?
|
@@ -524,7 +529,7 @@ module Prism
|
|
524
529
|
class CallOrWriteNode < Node
|
525
530
|
include _Node
|
526
531
|
|
527
|
-
|
532
|
+
attr_reader flags: Integer
|
528
533
|
attr_reader receiver: Prism::node?
|
529
534
|
attr_reader call_operator_loc: Location?
|
530
535
|
attr_reader message_loc: Location?
|
@@ -563,7 +568,7 @@ module Prism
|
|
563
568
|
class CallTargetNode < Node
|
564
569
|
include _Node
|
565
570
|
|
566
|
-
|
571
|
+
attr_reader flags: Integer
|
567
572
|
attr_reader receiver: Prism::node
|
568
573
|
attr_reader call_operator_loc: Location
|
569
574
|
attr_reader name: Symbol
|
@@ -889,12 +894,13 @@ module Prism
|
|
889
894
|
include _Node
|
890
895
|
|
891
896
|
attr_reader parent: Prism::node?
|
892
|
-
attr_reader
|
897
|
+
attr_reader name: Symbol?
|
893
898
|
attr_reader delimiter_loc: Location
|
899
|
+
attr_reader name_loc: Location
|
894
900
|
|
895
|
-
def initialize: (Source source, Prism::node? parent,
|
896
|
-
def copy: (?parent: Prism::node?, ?
|
897
|
-
def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?,
|
901
|
+
def initialize: (Source source, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, Location location) -> void
|
902
|
+
def copy: (?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location, ?location: Location) -> ConstantPathNode
|
903
|
+
def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location, location: Location }
|
898
904
|
def delimiter: () -> String
|
899
905
|
def type: () -> :constant_path_node
|
900
906
|
| ...
|
@@ -949,12 +955,13 @@ module Prism
|
|
949
955
|
include _Node
|
950
956
|
|
951
957
|
attr_reader parent: Prism::node?
|
952
|
-
attr_reader
|
958
|
+
attr_reader name: Symbol?
|
953
959
|
attr_reader delimiter_loc: Location
|
960
|
+
attr_reader name_loc: Location
|
954
961
|
|
955
|
-
def initialize: (Source source, Prism::node? parent,
|
956
|
-
def copy: (?parent: Prism::node?, ?
|
957
|
-
def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?,
|
962
|
+
def initialize: (Source source, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, Location location) -> void
|
963
|
+
def copy: (?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location, ?location: Location) -> ConstantPathTargetNode
|
964
|
+
def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location, location: Location }
|
958
965
|
def delimiter: () -> String
|
959
966
|
def type: () -> :constant_path_target_node
|
960
967
|
| ...
|
@@ -1239,7 +1246,7 @@ module Prism
|
|
1239
1246
|
class FlipFlopNode < Node
|
1240
1247
|
include _Node
|
1241
1248
|
|
1242
|
-
|
1249
|
+
attr_reader flags: Integer
|
1243
1250
|
attr_reader left: Prism::node?
|
1244
1251
|
attr_reader right: Prism::node?
|
1245
1252
|
attr_reader operator_loc: Location
|
@@ -1640,7 +1647,7 @@ module Prism
|
|
1640
1647
|
class IndexAndWriteNode < Node
|
1641
1648
|
include _Node
|
1642
1649
|
|
1643
|
-
|
1650
|
+
attr_reader flags: Integer
|
1644
1651
|
attr_reader receiver: Prism::node?
|
1645
1652
|
attr_reader call_operator_loc: Location?
|
1646
1653
|
attr_reader opening_loc: Location
|
@@ -1673,7 +1680,7 @@ module Prism
|
|
1673
1680
|
class IndexOperatorWriteNode < Node
|
1674
1681
|
include _Node
|
1675
1682
|
|
1676
|
-
|
1683
|
+
attr_reader flags: Integer
|
1677
1684
|
attr_reader receiver: Prism::node?
|
1678
1685
|
attr_reader call_operator_loc: Location?
|
1679
1686
|
attr_reader opening_loc: Location
|
@@ -1706,7 +1713,7 @@ module Prism
|
|
1706
1713
|
class IndexOrWriteNode < Node
|
1707
1714
|
include _Node
|
1708
1715
|
|
1709
|
-
|
1716
|
+
attr_reader flags: Integer
|
1710
1717
|
attr_reader receiver: Prism::node?
|
1711
1718
|
attr_reader call_operator_loc: Location?
|
1712
1719
|
attr_reader opening_loc: Location
|
@@ -1747,7 +1754,7 @@ module Prism
|
|
1747
1754
|
class IndexTargetNode < Node
|
1748
1755
|
include _Node
|
1749
1756
|
|
1750
|
-
|
1757
|
+
attr_reader flags: Integer
|
1751
1758
|
attr_reader receiver: Prism::node
|
1752
1759
|
attr_reader opening_loc: Location
|
1753
1760
|
attr_reader arguments: ArgumentsNode?
|
@@ -1893,7 +1900,7 @@ module Prism
|
|
1893
1900
|
class IntegerNode < Node
|
1894
1901
|
include _Node
|
1895
1902
|
|
1896
|
-
|
1903
|
+
attr_reader flags: Integer
|
1897
1904
|
attr_reader value: Integer
|
1898
1905
|
|
1899
1906
|
def initialize: (Source source, Integer flags, Integer value, Location location) -> void
|
@@ -1915,7 +1922,7 @@ module Prism
|
|
1915
1922
|
class InterpolatedMatchLastLineNode < Node
|
1916
1923
|
include _Node
|
1917
1924
|
|
1918
|
-
|
1925
|
+
attr_reader flags: Integer
|
1919
1926
|
attr_reader opening_loc: Location
|
1920
1927
|
attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
|
1921
1928
|
attr_reader closing_loc: Location
|
@@ -1948,7 +1955,7 @@ module Prism
|
|
1948
1955
|
class InterpolatedRegularExpressionNode < Node
|
1949
1956
|
include _Node
|
1950
1957
|
|
1951
|
-
|
1958
|
+
attr_reader flags: Integer
|
1952
1959
|
attr_reader opening_loc: Location
|
1953
1960
|
attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
|
1954
1961
|
attr_reader closing_loc: Location
|
@@ -1981,7 +1988,7 @@ module Prism
|
|
1981
1988
|
class InterpolatedStringNode < Node
|
1982
1989
|
include _Node
|
1983
1990
|
|
1984
|
-
|
1991
|
+
attr_reader flags: Integer
|
1985
1992
|
attr_reader opening_loc: Location?
|
1986
1993
|
attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode]
|
1987
1994
|
attr_reader closing_loc: Location?
|
@@ -2063,7 +2070,7 @@ module Prism
|
|
2063
2070
|
class KeywordHashNode < Node
|
2064
2071
|
include _Node
|
2065
2072
|
|
2066
|
-
|
2073
|
+
attr_reader flags: Integer
|
2067
2074
|
attr_reader elements: Array[AssocNode | AssocSplatNode]
|
2068
2075
|
|
2069
2076
|
def initialize: (Source source, Integer flags, Array[AssocNode | AssocSplatNode] elements, Location location) -> void
|
@@ -2083,7 +2090,7 @@ module Prism
|
|
2083
2090
|
class KeywordRestParameterNode < Node
|
2084
2091
|
include _Node
|
2085
2092
|
|
2086
|
-
|
2093
|
+
attr_reader flags: Integer
|
2087
2094
|
attr_reader name: Symbol?
|
2088
2095
|
attr_reader name_loc: Location?
|
2089
2096
|
attr_reader operator_loc: Location
|
@@ -2254,7 +2261,7 @@ module Prism
|
|
2254
2261
|
class MatchLastLineNode < Node
|
2255
2262
|
include _Node
|
2256
2263
|
|
2257
|
-
|
2264
|
+
attr_reader flags: Integer
|
2258
2265
|
attr_reader opening_loc: Location
|
2259
2266
|
attr_reader content_loc: Location
|
2260
2267
|
attr_reader closing_loc: Location
|
@@ -2524,7 +2531,7 @@ module Prism
|
|
2524
2531
|
class OptionalKeywordParameterNode < Node
|
2525
2532
|
include _Node
|
2526
2533
|
|
2527
|
-
|
2534
|
+
attr_reader flags: Integer
|
2528
2535
|
attr_reader name: Symbol
|
2529
2536
|
attr_reader name_loc: Location
|
2530
2537
|
attr_reader value: Prism::node
|
@@ -2546,7 +2553,7 @@ module Prism
|
|
2546
2553
|
class OptionalParameterNode < Node
|
2547
2554
|
include _Node
|
2548
2555
|
|
2549
|
-
|
2556
|
+
attr_reader flags: Integer
|
2550
2557
|
attr_reader name: Symbol
|
2551
2558
|
attr_reader name_loc: Location
|
2552
2559
|
attr_reader operator_loc: Location
|
@@ -2740,7 +2747,7 @@ module Prism
|
|
2740
2747
|
class RangeNode < Node
|
2741
2748
|
include _Node
|
2742
2749
|
|
2743
|
-
|
2750
|
+
attr_reader flags: Integer
|
2744
2751
|
attr_reader left: Prism::node?
|
2745
2752
|
attr_reader right: Prism::node?
|
2746
2753
|
attr_reader operator_loc: Location
|
@@ -2795,7 +2802,7 @@ module Prism
|
|
2795
2802
|
class RegularExpressionNode < Node
|
2796
2803
|
include _Node
|
2797
2804
|
|
2798
|
-
|
2805
|
+
attr_reader flags: Integer
|
2799
2806
|
attr_reader opening_loc: Location
|
2800
2807
|
attr_reader content_loc: Location
|
2801
2808
|
attr_reader closing_loc: Location
|
@@ -2831,7 +2838,7 @@ module Prism
|
|
2831
2838
|
class RequiredKeywordParameterNode < Node
|
2832
2839
|
include _Node
|
2833
2840
|
|
2834
|
-
|
2841
|
+
attr_reader flags: Integer
|
2835
2842
|
attr_reader name: Symbol
|
2836
2843
|
attr_reader name_loc: Location
|
2837
2844
|
|
@@ -2852,7 +2859,7 @@ module Prism
|
|
2852
2859
|
class RequiredParameterNode < Node
|
2853
2860
|
include _Node
|
2854
2861
|
|
2855
|
-
|
2862
|
+
attr_reader flags: Integer
|
2856
2863
|
attr_reader name: Symbol
|
2857
2864
|
|
2858
2865
|
def initialize: (Source source, Integer flags, Symbol name, Location location) -> void
|
@@ -2921,7 +2928,7 @@ module Prism
|
|
2921
2928
|
class RestParameterNode < Node
|
2922
2929
|
include _Node
|
2923
2930
|
|
2924
|
-
|
2931
|
+
attr_reader flags: Integer
|
2925
2932
|
attr_reader name: Symbol?
|
2926
2933
|
attr_reader name_loc: Location?
|
2927
2934
|
attr_reader operator_loc: Location
|
@@ -2959,12 +2966,14 @@ module Prism
|
|
2959
2966
|
class ReturnNode < Node
|
2960
2967
|
include _Node
|
2961
2968
|
|
2969
|
+
attr_reader flags: Integer
|
2962
2970
|
attr_reader keyword_loc: Location
|
2963
2971
|
attr_reader arguments: ArgumentsNode?
|
2964
2972
|
|
2965
|
-
def initialize: (Source source, Location keyword_loc, ArgumentsNode? arguments, Location location) -> void
|
2966
|
-
def copy: (?keyword_loc: Location, ?arguments: ArgumentsNode?, ?location: Location) -> ReturnNode
|
2967
|
-
def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, arguments: ArgumentsNode?, location: Location }
|
2973
|
+
def initialize: (Source source, Integer flags, Location keyword_loc, ArgumentsNode? arguments, Location location) -> void
|
2974
|
+
def copy: (?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?, ?location: Location) -> ReturnNode
|
2975
|
+
def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, arguments: ArgumentsNode?, location: Location }
|
2976
|
+
def redundant?: () -> bool
|
2968
2977
|
def keyword: () -> String
|
2969
2978
|
def type: () -> :return_node
|
2970
2979
|
| ...
|
@@ -2995,7 +3004,7 @@ module Prism
|
|
2995
3004
|
class ShareableConstantNode < Node
|
2996
3005
|
include _Node
|
2997
3006
|
|
2998
|
-
|
3007
|
+
attr_reader flags: Integer
|
2999
3008
|
attr_reader write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode
|
3000
3009
|
|
3001
3010
|
def initialize: (Source source, Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write, Location location) -> void
|
@@ -3057,7 +3066,7 @@ module Prism
|
|
3057
3066
|
class SourceFileNode < Node
|
3058
3067
|
include _Node
|
3059
3068
|
|
3060
|
-
|
3069
|
+
attr_reader flags: Integer
|
3061
3070
|
attr_reader filepath: String
|
3062
3071
|
|
3063
3072
|
def initialize: (Source source, Integer flags, String filepath, Location location) -> void
|
@@ -3137,7 +3146,7 @@ module Prism
|
|
3137
3146
|
class StringNode < Node
|
3138
3147
|
include _Node
|
3139
3148
|
|
3140
|
-
|
3149
|
+
attr_reader flags: Integer
|
3141
3150
|
attr_reader opening_loc: Location?
|
3142
3151
|
attr_reader content_loc: Location
|
3143
3152
|
attr_reader closing_loc: Location?
|
@@ -3195,7 +3204,7 @@ module Prism
|
|
3195
3204
|
class SymbolNode < Node
|
3196
3205
|
include _Node
|
3197
3206
|
|
3198
|
-
|
3207
|
+
attr_reader flags: Integer
|
3199
3208
|
attr_reader opening_loc: Location?
|
3200
3209
|
attr_reader value_loc: Location?
|
3201
3210
|
attr_reader closing_loc: Location?
|
@@ -3288,7 +3297,7 @@ module Prism
|
|
3288
3297
|
class UntilNode < Node
|
3289
3298
|
include _Node
|
3290
3299
|
|
3291
|
-
|
3300
|
+
attr_reader flags: Integer
|
3292
3301
|
attr_reader keyword_loc: Location
|
3293
3302
|
attr_reader closing_loc: Location?
|
3294
3303
|
attr_reader predicate: Prism::node
|
@@ -3339,7 +3348,7 @@ module Prism
|
|
3339
3348
|
class WhileNode < Node
|
3340
3349
|
include _Node
|
3341
3350
|
|
3342
|
-
|
3351
|
+
attr_reader flags: Integer
|
3343
3352
|
attr_reader keyword_loc: Location
|
3344
3353
|
attr_reader closing_loc: Location?
|
3345
3354
|
attr_reader predicate: Prism::node
|
@@ -3363,7 +3372,7 @@ module Prism
|
|
3363
3372
|
class XStringNode < Node
|
3364
3373
|
include _Node
|
3365
3374
|
|
3366
|
-
|
3375
|
+
attr_reader flags: Integer
|
3367
3376
|
attr_reader opening_loc: Location
|
3368
3377
|
attr_reader content_loc: Location
|
3369
3378
|
attr_reader closing_loc: Location
|
@@ -3407,6 +3416,8 @@ module Prism
|
|
3407
3416
|
|
3408
3417
|
# Flags for arguments nodes.
|
3409
3418
|
module ArgumentsNodeFlags
|
3419
|
+
# if arguments contain keywords
|
3420
|
+
CONTAINS_KEYWORDS: Integer
|
3410
3421
|
# if arguments contain keyword splat
|
3411
3422
|
CONTAINS_KEYWORD_SPLAT: Integer
|
3412
3423
|
end
|
@@ -3507,6 +3518,12 @@ module Prism
|
|
3507
3518
|
FORCED_US_ASCII_ENCODING: Integer
|
3508
3519
|
end
|
3509
3520
|
|
3521
|
+
# Flags for return nodes.
|
3522
|
+
module ReturnNodeFlags
|
3523
|
+
# a return statement that is redundant because it is the last statement in a method
|
3524
|
+
REDUNDANT: Integer
|
3525
|
+
end
|
3526
|
+
|
3510
3527
|
# Flags for shareable constant nodes.
|
3511
3528
|
module ShareableConstantNodeFlags
|
3512
3529
|
# constant writes that should be modified with shareable constant value literal
|
data/sig/prism/parse_result.rbs
CHANGED
@@ -6,9 +6,11 @@ module Prism
|
|
6
6
|
|
7
7
|
def initialize: (String source, ?Integer start_line, ?Array[Integer] offsets) -> void
|
8
8
|
def encoding: () -> Encoding
|
9
|
+
def lines: () -> Array[String]
|
9
10
|
def slice: (Integer byte_offset, Integer length) -> String
|
10
11
|
def line: (Integer byte_offset) -> Integer
|
11
12
|
def line_start: (Integer byte_offset) -> Integer
|
13
|
+
def line_end: (Integer byte_offset) -> Integer
|
12
14
|
def line_offset: (Integer byte_offset) -> Integer
|
13
15
|
def column: (Integer byte_offset) -> Integer
|
14
16
|
def character_offset: (Integer byte_offset) -> Integer
|
@@ -17,6 +19,13 @@ module Prism
|
|
17
19
|
def code_units_column: (Integer byte_offset, Encoding encoding) -> Integer
|
18
20
|
end
|
19
21
|
|
22
|
+
class ASCIISource < Source
|
23
|
+
def character_offset: (Integer byte_offset) -> Integer
|
24
|
+
def character_column: (Integer byte_offset) -> Integer
|
25
|
+
def code_units_offset: (Integer byte_offset, Encoding encoding) -> Integer
|
26
|
+
def code_units_column: (Integer byte_offset, Encoding encoding) -> Integer
|
27
|
+
end
|
28
|
+
|
20
29
|
class Location
|
21
30
|
attr_reader source: Source
|
22
31
|
attr_reader start_offset: Integer
|
@@ -30,7 +39,9 @@ module Prism
|
|
30
39
|
def comments: () -> Array[comment]
|
31
40
|
def copy: (?source: Source, ?start_offset: Integer, ?length: Integer) -> Location
|
32
41
|
def chop: () -> Location
|
42
|
+
def source_lines: () -> Array[String]
|
33
43
|
def slice: () -> String
|
44
|
+
def slice_lines: () -> String
|
34
45
|
def start_character_offset: () -> Integer
|
35
46
|
def end_offset: () -> Integer
|
36
47
|
def end_character_offset: () -> Integer
|
@@ -44,6 +55,7 @@ module Prism
|
|
44
55
|
def deconstruct_keys: (Array[Symbol]? keys) -> Hash[Symbol, untyped]
|
45
56
|
def pretty_print: (untyped q) -> untyped
|
46
57
|
def join: (Location other) -> Location
|
58
|
+
def adjoin: (String string) -> Location
|
47
59
|
end
|
48
60
|
|
49
61
|
class Comment
|