prism 0.26.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 +45 -1
- data/Makefile +3 -2
- data/config.yml +305 -20
- data/docs/configuration.md +1 -0
- data/ext/prism/api_node.c +884 -879
- data/ext/prism/extconf.rb +23 -4
- data/ext/prism/extension.c +16 -9
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +298 -9
- data/include/prism/diagnostic.h +15 -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 +4 -4
- data/lib/prism/inspect_visitor.rb +2156 -0
- data/lib/prism/lex_compat.rb +18 -1
- data/lib/prism/mutation_compiler.rb +2 -2
- data/lib/prism/node.rb +2345 -1964
- data/lib/prism/node_ext.rb +34 -5
- data/lib/prism/parse_result/newlines.rb +0 -2
- data/lib/prism/parse_result.rb +137 -13
- 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 +21 -31
- data/lib/prism/serialize.rb +27 -17
- data/lib/prism/translation/parser/compiler.rb +34 -15
- data/lib/prism/translation/parser.rb +6 -6
- data/lib/prism/translation/ripper.rb +72 -68
- data/lib/prism/translation/ruby_parser.rb +69 -31
- data/lib/prism.rb +3 -2
- 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 +359 -321
- data/rbi/prism/parse_result.rbi +85 -34
- data/rbi/prism/reflection.rbi +7 -13
- data/rbi/prism/translation/ripper.rbi +1 -11
- data/rbi/prism.rbi +9 -9
- data/sig/prism/dsl.rbs +3 -3
- data/sig/prism/inspect_visitor.rbs +22 -0
- data/sig/prism/node.rbs +68 -48
- data/sig/prism/parse_result.rbs +42 -10
- data/sig/prism/reflection.rbs +2 -8
- data/sig/prism/serialize.rbs +2 -3
- data/sig/prism.rbs +9 -9
- data/src/diagnostic.c +44 -24
- data/src/node.c +41 -16
- data/src/options.c +2 -2
- data/src/prettyprint.c +61 -18
- data/src/prism.c +623 -188
- data/src/serialize.c +5 -2
- data/src/static_literals.c +120 -34
- data/src/token_type.c +4 -4
- data/src/util/pm_integer.c +9 -2
- 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
    
    | @@ -2,13 +2,13 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            class Prism::Source
         | 
| 4 4 | 
             
              sig { returns(String) }
         | 
| 5 | 
            -
               | 
| 5 | 
            +
              def source; end
         | 
| 6 6 |  | 
| 7 7 | 
             
              sig { returns(Integer) }
         | 
| 8 | 
            -
               | 
| 8 | 
            +
              def start_line; end
         | 
| 9 9 |  | 
| 10 10 | 
             
              sig { returns(T::Array[Integer]) }
         | 
| 11 | 
            -
               | 
| 11 | 
            +
              def offsets; end
         | 
| 12 12 |  | 
| 13 13 | 
             
              sig { params(source: String, start_line: Integer, offsets: T::Array[Integer]).void }
         | 
| 14 14 | 
             
              def initialize(source, start_line = 1, offsets = []); end
         | 
| @@ -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,15 +44,29 @@ 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
         | 
| 47 64 |  | 
| 48 65 | 
             
              sig { returns(Integer) }
         | 
| 49 | 
            -
               | 
| 66 | 
            +
              def start_offset; end
         | 
| 50 67 |  | 
| 51 68 | 
             
              sig { returns(Integer) }
         | 
| 52 | 
            -
               | 
| 69 | 
            +
              def length; end
         | 
| 53 70 |  | 
| 54 71 | 
             
              sig { params(source: Prism::Source, start_offset: Integer, length: Integer).void }
         | 
| 55 72 | 
             
              def initialize(source, start_offset, length); 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,13 +154,16 @@ 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
         | 
| 140 163 | 
             
              abstract!
         | 
| 141 164 |  | 
| 142 165 | 
             
              sig { returns(Prism::Location) }
         | 
| 143 | 
            -
               | 
| 166 | 
            +
              def location; end
         | 
| 144 167 |  | 
| 145 168 | 
             
              sig { params(location: Prism::Location).void }
         | 
| 146 169 | 
             
              def initialize(location); end
         | 
| @@ -173,10 +196,10 @@ end | |
| 173 196 |  | 
| 174 197 | 
             
            class Prism::MagicComment
         | 
| 175 198 | 
             
              sig { returns(Prism::Location) }
         | 
| 176 | 
            -
               | 
| 199 | 
            +
              def key_loc; end
         | 
| 177 200 |  | 
| 178 201 | 
             
              sig { returns(Prism::Location) }
         | 
| 179 | 
            -
               | 
| 202 | 
            +
              def value_loc; end
         | 
| 180 203 |  | 
| 181 204 | 
             
              sig { params(key_loc: Prism::Location, value_loc: Prism::Location).void }
         | 
| 182 205 | 
             
              def initialize(key_loc, value_loc); end
         | 
| @@ -196,16 +219,16 @@ end | |
| 196 219 |  | 
| 197 220 | 
             
            class Prism::ParseError
         | 
| 198 221 | 
             
              sig { returns(Symbol) }
         | 
| 199 | 
            -
               | 
| 222 | 
            +
              def type; end
         | 
| 200 223 |  | 
| 201 224 | 
             
              sig { returns(String) }
         | 
| 202 | 
            -
               | 
| 225 | 
            +
              def message; end
         | 
| 203 226 |  | 
| 204 227 | 
             
              sig { returns(Prism::Location) }
         | 
| 205 | 
            -
               | 
| 228 | 
            +
              def location; end
         | 
| 206 229 |  | 
| 207 230 | 
             
              sig { returns(Symbol) }
         | 
| 208 | 
            -
               | 
| 231 | 
            +
              def level; end
         | 
| 209 232 |  | 
| 210 233 | 
             
              sig { params(type: Symbol, message: String, location: Prism::Location, level: Symbol).void }
         | 
| 211 234 | 
             
              def initialize(type, message, location, level); end
         | 
| @@ -219,16 +242,16 @@ end | |
| 219 242 |  | 
| 220 243 | 
             
            class Prism::ParseWarning
         | 
| 221 244 | 
             
              sig { returns(Symbol) }
         | 
| 222 | 
            -
               | 
| 245 | 
            +
              def type; end
         | 
| 223 246 |  | 
| 224 247 | 
             
              sig { returns(String) }
         | 
| 225 | 
            -
               | 
| 248 | 
            +
              def message; end
         | 
| 226 249 |  | 
| 227 250 | 
             
              sig { returns(Prism::Location) }
         | 
| 228 | 
            -
               | 
| 251 | 
            +
              def location; end
         | 
| 229 252 |  | 
| 230 253 | 
             
              sig { returns(Symbol) }
         | 
| 231 | 
            -
               | 
| 254 | 
            +
              def level; end
         | 
| 232 255 |  | 
| 233 256 | 
             
              sig { params(type: Symbol, message: String, location: Prism::Location, level: Symbol).void }
         | 
| 234 257 | 
             
              def initialize(type, message, location, level); end
         | 
| @@ -240,32 +263,27 @@ class Prism::ParseWarning | |
| 240 263 | 
             
              def inspect; end
         | 
| 241 264 | 
             
            end
         | 
| 242 265 |  | 
| 243 | 
            -
            class Prism:: | 
| 244 | 
            -
               | 
| 245 | 
            -
             | 
| 246 | 
            -
              sig { returns(Value) }
         | 
| 247 | 
            -
              attr_reader :value
         | 
| 266 | 
            +
            class Prism::Result
         | 
| 267 | 
            +
              sig { params(comments: T::Array[Prism::Comment], magic_comments: T::Array[Prism::MagicComment], data_loc: T.nilable(Prism::Location), errors: T::Array[Prism::ParseError], warnings: T::Array[Prism::ParseWarning], source: Prism::Source).void }
         | 
| 268 | 
            +
              def initialize(comments, magic_comments, data_loc, errors, warnings, source); end
         | 
| 248 269 |  | 
| 249 270 | 
             
              sig { returns(T::Array[Prism::Comment]) }
         | 
| 250 | 
            -
               | 
| 271 | 
            +
              def comments; end
         | 
| 251 272 |  | 
| 252 273 | 
             
              sig { returns(T::Array[Prism::MagicComment]) }
         | 
| 253 | 
            -
               | 
| 274 | 
            +
              def magic_comments; end
         | 
| 254 275 |  | 
| 255 276 | 
             
              sig { returns(T.nilable(Prism::Location)) }
         | 
| 256 | 
            -
               | 
| 277 | 
            +
              def data_loc; end
         | 
| 257 278 |  | 
| 258 279 | 
             
              sig { returns(T::Array[Prism::ParseError]) }
         | 
| 259 | 
            -
               | 
| 280 | 
            +
              def errors; end
         | 
| 260 281 |  | 
| 261 282 | 
             
              sig { returns(T::Array[Prism::ParseWarning]) }
         | 
| 262 | 
            -
               | 
| 283 | 
            +
              def warnings; end
         | 
| 263 284 |  | 
| 264 285 | 
             
              sig { returns(Prism::Source) }
         | 
| 265 | 
            -
               | 
| 266 | 
            -
             | 
| 267 | 
            -
              sig { params(value: Value, comments: T::Array[Prism::Comment], magic_comments: T::Array[Prism::MagicComment], data_loc: T.nilable(Prism::Location), errors: T::Array[Prism::ParseError], warnings: T::Array[Prism::ParseWarning], source: Prism::Source).void }
         | 
| 268 | 
            -
              def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
         | 
| 286 | 
            +
              def source; end
         | 
| 269 287 |  | 
| 270 288 | 
             
              sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
         | 
| 271 289 | 
             
              def deconstruct_keys(keys); end
         | 
| @@ -280,15 +298,48 @@ class Prism::ParseResult | |
| 280 298 | 
             
              def failure?; end
         | 
| 281 299 | 
             
            end
         | 
| 282 300 |  | 
| 301 | 
            +
            class Prism::ParseResult < Prism::Result
         | 
| 302 | 
            +
              sig { params(value: Prism::ProgramNode, comments: T::Array[Prism::Comment], magic_comments: T::Array[Prism::MagicComment], data_loc: T.nilable(Prism::Location), errors: T::Array[Prism::ParseError], warnings: T::Array[Prism::ParseWarning], source: Prism::Source).void }
         | 
| 303 | 
            +
              def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
         | 
| 304 | 
            +
             | 
| 305 | 
            +
              sig { returns(Prism::ProgramNode) }
         | 
| 306 | 
            +
              def value; end
         | 
| 307 | 
            +
             | 
| 308 | 
            +
              sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
         | 
| 309 | 
            +
              def deconstruct_keys(keys); end
         | 
| 310 | 
            +
            end
         | 
| 311 | 
            +
             | 
| 312 | 
            +
            class Prism::LexResult < Prism::Result
         | 
| 313 | 
            +
              sig { params(value: T::Array[T.untyped], comments: T::Array[Prism::Comment], magic_comments: T::Array[Prism::MagicComment], data_loc: T.nilable(Prism::Location), errors: T::Array[Prism::ParseError], warnings: T::Array[Prism::ParseWarning], source: Prism::Source).void }
         | 
| 314 | 
            +
              def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
         | 
| 315 | 
            +
             | 
| 316 | 
            +
              sig { returns(T::Array[T.untyped]) }
         | 
| 317 | 
            +
              def value; end
         | 
| 318 | 
            +
             | 
| 319 | 
            +
              sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
         | 
| 320 | 
            +
              def deconstruct_keys(keys); end
         | 
| 321 | 
            +
            end
         | 
| 322 | 
            +
             | 
| 323 | 
            +
            class Prism::ParseLexResult < Prism::Result
         | 
| 324 | 
            +
              sig { params(value: [Prism::ProgramNode, T::Array[T.untyped]], comments: T::Array[Prism::Comment], magic_comments: T::Array[Prism::MagicComment], data_loc: T.nilable(Prism::Location), errors: T::Array[Prism::ParseError], warnings: T::Array[Prism::ParseWarning], source: Prism::Source).void }
         | 
| 325 | 
            +
              def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
         | 
| 326 | 
            +
             | 
| 327 | 
            +
              sig { returns([Prism::ProgramNode, T::Array[T.untyped]]) }
         | 
| 328 | 
            +
              def value; end
         | 
| 329 | 
            +
             | 
| 330 | 
            +
              sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
         | 
| 331 | 
            +
              def deconstruct_keys(keys); end
         | 
| 332 | 
            +
            end
         | 
| 333 | 
            +
             | 
| 283 334 | 
             
            class Prism::Token
         | 
| 284 335 | 
             
              sig { returns(Prism::Source) }
         | 
| 285 | 
            -
               | 
| 336 | 
            +
              def source; end
         | 
| 286 337 |  | 
| 287 338 | 
             
              sig { returns(Symbol) }
         | 
| 288 | 
            -
               | 
| 339 | 
            +
              def type; end
         | 
| 289 340 |  | 
| 290 341 | 
             
              sig { returns(String) }
         | 
| 291 | 
            -
               | 
| 342 | 
            +
              def value; end
         | 
| 292 343 |  | 
| 293 344 | 
             
              sig { params(source: Prism::Source, type: Symbol, value: String, location: T.any(Integer, Prism::Location)).void }
         | 
| 294 345 | 
             
              def initialize(source, type, value, location); end
         | 
    
        data/rbi/prism/reflection.rbi
    CHANGED
    
    | @@ -4,11 +4,11 @@ module Prism::Reflection | |
| 4 4 | 
             
            end
         | 
| 5 5 |  | 
| 6 6 | 
             
            class Prism::Reflection::Field
         | 
| 7 | 
            -
              sig { returns(Symbol) }
         | 
| 8 | 
            -
              attr_reader :name
         | 
| 9 | 
            -
             | 
| 10 7 | 
             
              sig { params(name: Symbol).void }
         | 
| 11 8 | 
             
              def initialize(name); end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              sig { returns(Symbol) }
         | 
| 11 | 
            +
              def name; end
         | 
| 12 12 | 
             
            end
         | 
| 13 13 |  | 
| 14 14 | 
             
            class Prism::Reflection::NodeField < Prism::Reflection::Field
         | 
| @@ -38,24 +38,18 @@ end | |
| 38 38 | 
             
            class Prism::Reflection::OptionalLocationField < Prism::Reflection::Field
         | 
| 39 39 | 
             
            end
         | 
| 40 40 |  | 
| 41 | 
            -
            class Prism::Reflection:: | 
| 41 | 
            +
            class Prism::Reflection::IntegerField < Prism::Reflection::Field
         | 
| 42 42 | 
             
            end
         | 
| 43 43 |  | 
| 44 | 
            -
            class Prism::Reflection:: | 
| 44 | 
            +
            class Prism::Reflection::FloatField < Prism::Reflection::Field
         | 
| 45 45 | 
             
            end
         | 
| 46 46 |  | 
| 47 47 | 
             
            class Prism::Reflection::FlagsField < Prism::Reflection::Field
         | 
| 48 | 
            -
              sig { returns(T::Array[Symbol]) }
         | 
| 49 | 
            -
              attr_reader :flags
         | 
| 50 | 
            -
             | 
| 51 48 | 
             
              sig { params(name: Symbol, flags: T::Array[Symbol]).void }
         | 
| 52 49 | 
             
              def initialize(name, flags); end
         | 
| 53 | 
            -
            end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
            class Prism::Reflection::IntegerField < Prism::Reflection::Field
         | 
| 56 | 
            -
            end
         | 
| 57 50 |  | 
| 58 | 
            -
             | 
| 51 | 
            +
              sig { returns(T::Array[Symbol]) }
         | 
| 52 | 
            +
              def flags; end
         | 
| 59 53 | 
             
            end
         | 
| 60 54 |  | 
| 61 55 | 
             
            module Prism::Reflection
         | 
| @@ -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/rbi/prism.rbi
    CHANGED
    
    | @@ -7,28 +7,28 @@ module Prism | |
| 7 7 | 
             
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(String) }
         | 
| 8 8 | 
             
              def self.dump_file(filepath, command_line: nil, encoding: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 9 9 |  | 
| 10 | 
            -
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism:: | 
| 10 | 
            +
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::LexResult) }
         | 
| 11 11 | 
             
              def self.lex(source, command_line: nil, encoding: nil, filepath: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 12 12 |  | 
| 13 | 
            -
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism:: | 
| 13 | 
            +
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::LexResult) }
         | 
| 14 14 | 
             
              def self.lex_file(filepath, command_line: nil, encoding: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 15 15 |  | 
| 16 | 
            -
              sig { params(source: String, options: T::Hash[Symbol, T.untyped]).returns(Prism:: | 
| 16 | 
            +
              sig { params(source: String, options: T::Hash[Symbol, T.untyped]).returns(Prism::LexCompat::Result) }
         | 
| 17 17 | 
             
              def self.lex_compat(source, **options); end
         | 
| 18 18 |  | 
| 19 19 | 
             
              sig { params(source: String).returns(T::Array[T.untyped]) }
         | 
| 20 20 | 
             
              def self.lex_ripper(source); end
         | 
| 21 21 |  | 
| 22 | 
            -
              sig { params(source: String, serialized: String).returns(Prism::ParseResult | 
| 22 | 
            +
              sig { params(source: String, serialized: String).returns(Prism::ParseResult) }
         | 
| 23 23 | 
             
              def self.load(source, serialized); end
         | 
| 24 24 |  | 
| 25 | 
            -
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult | 
| 25 | 
            +
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult) }
         | 
| 26 26 | 
             
              def self.parse(source, command_line: nil, encoding: nil, filepath: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 27 27 |  | 
| 28 | 
            -
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult | 
| 28 | 
            +
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult) }
         | 
| 29 29 | 
             
              def self.parse_file(filepath, command_line: nil, encoding: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 30 30 |  | 
| 31 | 
            -
              sig { params(stream: T.any(IO, StringIO), command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult | 
| 31 | 
            +
              sig { params(stream: T.any(IO, StringIO), command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseResult) }
         | 
| 32 32 | 
             
              def self.parse_stream(stream, command_line: nil, encoding: nil, filepath: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 33 33 |  | 
| 34 34 | 
             
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(T::Array[Prism::Comment]) }
         | 
| @@ -37,10 +37,10 @@ module Prism | |
| 37 37 | 
             
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(T::Array[Prism::Comment]) }
         | 
| 38 38 | 
             
              def self.parse_file_comments(filepath, command_line: nil, encoding: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 39 39 |  | 
| 40 | 
            -
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism:: | 
| 40 | 
            +
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseLexResult) }
         | 
| 41 41 | 
             
              def self.parse_lex(source, command_line: nil, encoding: nil, filepath: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 42 42 |  | 
| 43 | 
            -
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism:: | 
| 43 | 
            +
              sig { params(filepath: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(Prism::ParseLexResult) }
         | 
| 44 44 | 
             
              def self.parse_lex_file(filepath, command_line: nil, encoding: nil, frozen_string_literal: nil, line: nil, scopes: nil, version: nil); end
         | 
| 45 45 |  | 
| 46 46 | 
             
              sig { params(source: String, command_line: T.nilable(String), encoding: T.nilable(T.any(String, Encoding)), filepath: T.nilable(String), frozen_string_literal: T.nilable(T::Boolean), line: T.nilable(Integer), scopes: T.nilable(T::Array[T::Array[Symbol]]), version: T.nilable(String)).returns(T::Boolean) }
         | 
    
        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
         |