ruby-next-core 1.0.0.rc.1 → 1.0.1
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 +7 -1
 - data/README.md +9 -6
 - data/lib/.rbnext/2.1/ruby-next/commands/nextify.rb +1 -1
 - data/lib/.rbnext/2.1/ruby-next/language.rb +5 -2
 - data/lib/.rbnext/2.3/ruby-next/commands/nextify.rb +1 -1
 - data/lib/.rbnext/2.3/ruby-next/config.rb +2 -2
 - data/lib/.rbnext/2.3/ruby-next/core/data.rb +4 -0
 - data/lib/.rbnext/2.3/ruby-next/language/eval.rb +4 -4
 - data/lib/.rbnext/2.6/ruby-next/core/data.rb +4 -0
 - data/lib/.rbnext/2.7/ruby-next/core/data.rb +4 -0
 - data/lib/ruby-next/commands/nextify.rb +1 -1
 - data/lib/ruby-next/config.rb +2 -2
 - data/lib/ruby-next/core/data.rb +4 -0
 - data/lib/ruby-next/language/eval.rb +4 -4
 - data/lib/ruby-next/language/parser.rb +8 -5
 - data/lib/ruby-next/language/rewriters/3.1/shorthand_hash.rb +2 -1
 - data/lib/ruby-next/language.rb +5 -2
 - data/lib/ruby-next/version.rb +1 -1
 - metadata +4 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5ad6cea22baa599e5a6edeb4fdda1fb7c9bd0b0d5617fb01cf4450374c7d9443
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: fa39e7d51cdf70c32dc2067000023e42dbe3b23bd1d8bf520e06a3a028d63b8d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: e7df787bfa90d036bbd45c7bd2dbc85f3513d922b3606dfde12ade0196f7ccb6789aba263d407fc012c7b4625d38b4aa6d7df05a5ac4e784b3b9cfc5db356b0f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a4c364d32b19003c219670096dd6420d415663445d68deb7e92c8d9763cc705884e7ab7e43fed81c6c084450f6a32e14bd8b50f24629256cb064c84a8bb87583
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -2,6 +2,12 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            ## master
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            ## 1.0.1 (2024-01-28)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            - Fix using Data with inheritance (`class X < Data.define(...)`). ([@palkan][])
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ## 1.0.0 🎄
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       5 
11 
     | 
    
         
             
            - Add `it` block parameter support. ([@palkan][])
         
     | 
| 
       6 
12 
     | 
    
         | 
| 
       7 
13 
     | 
    
         
             
            - Deprecate AST transpiling mode. ([@palkan][])
         
     | 
| 
         @@ -20,7 +26,7 @@ 
     | 
|
| 
       20 
26 
     | 
    
         | 
| 
       21 
27 
     | 
    
         
             
            - Use `.rbnextrc` arguments for runtime transpiling and auto-transpiling gems. ([@palkan][])
         
     | 
| 
       22 
28 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
            - Stop testing Ruby <2. 
     | 
| 
      
 29 
     | 
    
         
            +
            - Stop testing Ruby <2.4. ([@palkan][])
         
     | 
| 
       24 
30 
     | 
    
         | 
| 
       25 
31 
     | 
    
         
             
            - Extract `require-hooks`. ([@palkan][])
         
     | 
| 
       26 
32 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -127,7 +127,7 @@ First, install a gem: 
     | 
|
| 
       127 
127 
     | 
    
         
             
            gem "ruby-next-core"
         
     | 
| 
       128 
128 
     | 
    
         | 
| 
       129 
129 
     | 
    
         
             
            # gemspec
         
     | 
| 
       130 
     | 
    
         
            -
            spec.add_dependency "ruby-next-core"
         
     | 
| 
      
 130 
     | 
    
         
            +
            spec.add_dependency "ruby-next-core", "~> 1.0"
         
     | 
| 
       131 
131 
     | 
    
         
             
            ```
         
     | 
| 
       132 
132 
     | 
    
         | 
| 
       133 
133 
     | 
    
         
             
            **NOTE:** we use a different gem for _distribution_, `ruby-next-core`, to provide a zero-dependency, polyfills-only version.
         
     | 
| 
         @@ -170,6 +170,10 @@ Ruby 3.2 has introduced a new core class—[Data](https://bugs.ruby-lang.org/iss 
     | 
|
| 
       170 
170 
     | 
    
         | 
| 
       171 
171 
     | 
    
         
             
            If you want to opt-out from loading Data backport, you must set the `RUBY_NEXT_DISABLE_DATA` env variable to `true`.
         
     | 
| 
       172 
172 
     | 
    
         | 
| 
      
 173 
     | 
    
         
            +
            #### Known limitations
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
            Currently, passing Hash as a last positional argument to `Data.new` is not supported in Ruby <3.0 (due to the difference in keyword arguments handling). We recommend always using keyword arguments when initializing Data objects.
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
       173 
177 
     | 
    
         
             
            ## Transpiling
         
     | 
| 
       174 
178 
     | 
    
         | 
| 
       175 
179 
     | 
    
         
             
            Ruby Next allows you to transpile\* edge Ruby syntax to older versions.
         
     | 
| 
         @@ -182,10 +186,10 @@ Installation: 
     | 
|
| 
       182 
186 
     | 
    
         | 
| 
       183 
187 
     | 
    
         
             
            ```ruby
         
     | 
| 
       184 
188 
     | 
    
         
             
            # Gemfile
         
     | 
| 
       185 
     | 
    
         
            -
            gem "ruby-next"
         
     | 
| 
      
 189 
     | 
    
         
            +
            gem "ruby-next", "~> 1.0"
         
     | 
| 
       186 
190 
     | 
    
         | 
| 
       187 
191 
     | 
    
         
             
            # gemspec
         
     | 
| 
       188 
     | 
    
         
            -
            spec.add_dependency "ruby-next"
         
     | 
| 
      
 192 
     | 
    
         
            +
            spec.add_dependency "ruby-next", "~> 1.0"
         
     | 
| 
       189 
193 
     | 
    
         
             
            ```
         
     | 
| 
       190 
194 
     | 
    
         | 
| 
       191 
195 
     | 
    
         
             
            ```sh
         
     | 
| 
         @@ -222,7 +226,6 @@ Usage: ruby-next nextify DIRECTORY_OR_FILE [options] 
     | 
|
| 
       222 
226 
     | 
    
         
             
                    --overwrite                  Overwrites the original file with one version of --single-version (works only with --single-version or --rewrite)
         
     | 
| 
       223 
227 
     | 
    
         
             
                    --edge                       Enable edge (master) Ruby features
         
     | 
| 
       224 
228 
     | 
    
         
             
                    --proposed                   Enable proposed/experimental Ruby features
         
     | 
| 
       225 
     | 
    
         
            -
                    --transpile-mode=MODE        Transpiler mode (ast or rewrite). Default: ast
         
     | 
| 
       226 
229 
     | 
    
         
             
                    --[no-]refine                Do not inject `using RubyNext`
         
     | 
| 
       227 
230 
     | 
    
         
             
                    --list-rewriters             List available rewriters
         
     | 
| 
       228 
231 
     | 
    
         
             
                    --rewrite=REWRITERS...       Specify particular Ruby features to rewrite
         
     | 
| 
         @@ -234,7 +237,7 @@ Usage: ruby-next nextify DIRECTORY_OR_FILE [options] 
     | 
|
| 
       234 
237 
     | 
    
         | 
| 
       235 
238 
     | 
    
         
             
            The behaviour depends on whether you transpile a single file or a directory:
         
     | 
| 
       236 
239 
     | 
    
         | 
| 
       237 
     | 
    
         
            -
            - When transpiling a directory, the `.rbnext` subfolder is created within the target folder with subfolders for each supported Ruby versions (e.g., `.rbnext/2. 
     | 
| 
      
 240 
     | 
    
         
            +
            - When transpiling a directory, the `.rbnext` subfolder is created within the target folder with subfolders for each supported Ruby versions (e.g., `.rbnext/2.7`, `.rbnext/3.1`, `.rbnext/3.4`, etc.). If you want to create only a single version (the smallest), you can also pass `--single-version` flag. In that case, no version directory is created (i.e., transpiled files go into `.rbnext`).
         
     | 
| 
       238 
241 
     | 
    
         | 
| 
       239 
242 
     | 
    
         
             
            - When transpiling a file and providing the output path as a _file_ path, only a single version is created. For example:
         
     | 
| 
       240 
243 
     | 
    
         | 
| 
         @@ -300,7 +303,7 @@ Configuration file is a YAML with commands as keys and options as multiline stri 
     | 
|
| 
       300 
303 
     | 
    
         
             
            # ./.rbnextrc
         
     | 
| 
       301 
304 
     | 
    
         | 
| 
       302 
305 
     | 
    
         
             
            nextify: |
         
     | 
| 
       303 
     | 
    
         
            -
              -- 
     | 
| 
      
 306 
     | 
    
         
            +
              --min-version=2.7
         
     | 
| 
       304 
307 
     | 
    
         
             
              --edge
         
     | 
| 
       305 
308 
     | 
    
         
             
            ```
         
     | 
| 
       306 
309 
     | 
    
         | 
| 
         @@ -1,7 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            gem  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            # Checking gem specs doesn't work in ruby.wasm
         
     | 
| 
      
 4 
     | 
    
         
            +
            unless RUBY_PLATFORM.match?(/wasm/)
         
     | 
| 
      
 5 
     | 
    
         
            +
              gem "ruby-next-parser", ">= 2.8.0.3"
         
     | 
| 
      
 6 
     | 
    
         
            +
              gem "unparser", ">= 0.4.7"
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
       5 
8 
     | 
    
         | 
| 
       6 
9 
     | 
    
         
             
            require "set" # rubocop:disable Lint/RedundantRequireStatement
         
     | 
| 
       7 
10 
     | 
    
         | 
| 
         @@ -10,10 +10,10 @@ module RubyNext 
     | 
|
| 
       10 
10 
     | 
    
         
             
              # Defines last minor version for every major version
         
     | 
| 
       11 
11 
     | 
    
         
             
              LAST_MINOR_VERSIONS = {
         
     | 
| 
       12 
12 
     | 
    
         
             
                2 => 8, # 2.8 is required for backward compatibility: some gems already uses it
         
     | 
| 
       13 
     | 
    
         
            -
                3 =>  
     | 
| 
      
 13 
     | 
    
         
            +
                3 => 4
         
     | 
| 
       14 
14 
     | 
    
         
             
              }.freeze
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              LATEST_VERSION = [3,  
     | 
| 
      
 16 
     | 
    
         
            +
              LATEST_VERSION = [3, 4].freeze
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              # A virtual version number used for proposed features
         
     | 
| 
       19 
19 
     | 
    
         
             
              NEXT_VERSION = "1995.next.0"
         
     | 
| 
         @@ -11,7 +11,7 @@ module RubyNext 
     | 
|
| 
       11 
11 
     | 
    
         
             
                          using: ((((__safe_lvar__ = bind) || true) && (!__safe_lvar__.nil? || nil)) && __safe_lvar__.receiver) == TOPLEVEL_BINDING.receiver || ((((__safe_lvar__ = ((((__safe_lvar__ = bind) || true) && (!__safe_lvar__.nil? || nil)) && __safe_lvar__.receiver)) || true) && (!__safe_lvar__.nil? || nil)) && __safe_lvar__.is_a?(Module))
         
     | 
| 
       12 
12 
     | 
    
         
             
                        )
         
     | 
| 
       13 
13 
     | 
    
         
             
                        RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       14 
     | 
    
         
            -
                        super 
     | 
| 
      
 14 
     | 
    
         
            +
                        super(new_source, bind, *args)
         
     | 
| 
       15 
15 
     | 
    
         
             
                      end
         
     | 
| 
       16 
16 
     | 
    
         
             
                    end
         
     | 
| 
       17 
17 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -25,7 +25,7 @@ module RubyNext 
     | 
|
| 
       25 
25 
     | 
    
         
             
                      source = args.shift
         
     | 
| 
       26 
26 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       27 
27 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       28 
     | 
    
         
            -
                      super 
     | 
| 
      
 28 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       29 
29 
     | 
    
         
             
                    end
         
     | 
| 
       30 
30 
     | 
    
         
             
                  end
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
         @@ -39,7 +39,7 @@ module RubyNext 
     | 
|
| 
       39 
39 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       42 
     | 
    
         
            -
                      super 
     | 
| 
      
 42 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       43 
43 
     | 
    
         
             
                    end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                    def class_eval(*args, &block)
         
     | 
| 
         @@ -48,7 +48,7 @@ module RubyNext 
     | 
|
| 
       48 
48 
     | 
    
         
             
                      source = args.shift
         
     | 
| 
       49 
49 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       50 
50 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       51 
     | 
    
         
            -
                      super 
     | 
| 
      
 51 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
53 
     | 
    
         
             
                  end
         
     | 
| 
       54 
54 
     | 
    
         
             
                end
         
     | 
    
        data/lib/ruby-next/config.rb
    CHANGED
    
    | 
         @@ -10,10 +10,10 @@ module RubyNext 
     | 
|
| 
       10 
10 
     | 
    
         
             
              # Defines last minor version for every major version
         
     | 
| 
       11 
11 
     | 
    
         
             
              LAST_MINOR_VERSIONS = {
         
     | 
| 
       12 
12 
     | 
    
         
             
                2 => 8, # 2.8 is required for backward compatibility: some gems already uses it
         
     | 
| 
       13 
     | 
    
         
            -
                3 =>  
     | 
| 
      
 13 
     | 
    
         
            +
                3 => 4
         
     | 
| 
       14 
14 
     | 
    
         
             
              }.freeze
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              LATEST_VERSION = [3,  
     | 
| 
      
 16 
     | 
    
         
            +
              LATEST_VERSION = [3, 4].freeze
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              # A virtual version number used for proposed features
         
     | 
| 
       19 
19 
     | 
    
         
             
              NEXT_VERSION = "1995.next.0"
         
     | 
    
        data/lib/ruby-next/core/data.rb
    CHANGED
    
    
| 
         @@ -11,7 +11,7 @@ module RubyNext 
     | 
|
| 
       11 
11 
     | 
    
         
             
                          using: bind&.receiver == TOPLEVEL_BINDING.receiver || bind&.receiver&.is_a?(Module)
         
     | 
| 
       12 
12 
     | 
    
         
             
                        )
         
     | 
| 
       13 
13 
     | 
    
         
             
                        RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       14 
     | 
    
         
            -
                        super 
     | 
| 
      
 14 
     | 
    
         
            +
                        super(new_source, bind, *args)
         
     | 
| 
       15 
15 
     | 
    
         
             
                      end
         
     | 
| 
       16 
16 
     | 
    
         
             
                    end
         
     | 
| 
       17 
17 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -25,7 +25,7 @@ module RubyNext 
     | 
|
| 
       25 
25 
     | 
    
         
             
                      source = args.shift
         
     | 
| 
       26 
26 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       27 
27 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       28 
     | 
    
         
            -
                      super 
     | 
| 
      
 28 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       29 
29 
     | 
    
         
             
                    end
         
     | 
| 
       30 
30 
     | 
    
         
             
                  end
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
         @@ -39,7 +39,7 @@ module RubyNext 
     | 
|
| 
       39 
39 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       42 
     | 
    
         
            -
                      super 
     | 
| 
      
 42 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       43 
43 
     | 
    
         
             
                    end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                    def class_eval(*args, &block)
         
     | 
| 
         @@ -48,7 +48,7 @@ module RubyNext 
     | 
|
| 
       48 
48 
     | 
    
         
             
                      source = args.shift
         
     | 
| 
       49 
49 
     | 
    
         
             
                      new_source = ::RubyNext::Language::Runtime.transform(source, using: false)
         
     | 
| 
       50 
50 
     | 
    
         
             
                      RubyNext.debug_source(new_source, "(#{caller_locations(1, 1).first})")
         
     | 
| 
       51 
     | 
    
         
            -
                      super 
     | 
| 
      
 51 
     | 
    
         
            +
                      super(new_source, *args)
         
     | 
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
53 
     | 
    
         
             
                  end
         
     | 
| 
       54 
54 
     | 
    
         
             
                end
         
     | 
| 
         @@ -34,7 +34,7 @@ module RubyNext 
     | 
|
| 
       34 
34 
     | 
    
         
             
                end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                class << self
         
     | 
| 
       37 
     | 
    
         
            -
                  attr_accessor :parser_class
         
     | 
| 
      
 37 
     | 
    
         
            +
                  attr_accessor :parser_class, :parser_syntax_errors
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                  def parser
         
     | 
| 
       40 
40 
     | 
    
         
             
                    parser_class.new(Builder.new).tap do |prs|
         
     | 
| 
         @@ -50,8 +50,8 @@ module RubyNext 
     | 
|
| 
       50 
50 
     | 
    
         
             
                    end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                    parser.parse(buffer)
         
     | 
| 
       53 
     | 
    
         
            -
                  rescue  
     | 
| 
       54 
     | 
    
         
            -
                    raise ::SyntaxError, e.message
         
     | 
| 
      
 53 
     | 
    
         
            +
                  rescue *parser_syntax_errors => e
         
     | 
| 
      
 54 
     | 
    
         
            +
                    raise ::SyntaxError, e.message, e.backtrace
         
     | 
| 
       55 
55 
     | 
    
         
             
                  end
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
                  def parse_with_comments(source, file = "(string)")
         
     | 
| 
         @@ -60,16 +60,19 @@ module RubyNext 
     | 
|
| 
       60 
60 
     | 
    
         
             
                    end
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
                    parser.parse_with_comments(buffer)
         
     | 
| 
       63 
     | 
    
         
            -
                  rescue  
     | 
| 
       64 
     | 
    
         
            -
                    raise ::SyntaxError, e.message
         
     | 
| 
      
 63 
     | 
    
         
            +
                  rescue *parser_syntax_errors => e
         
     | 
| 
      
 64 
     | 
    
         
            +
                    raise ::SyntaxError, e.message, e.backtrace
         
     | 
| 
       65 
65 
     | 
    
         
             
                  end
         
     | 
| 
       66 
66 
     | 
    
         
             
                end
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
      
 68 
     | 
    
         
            +
                self.parser_syntax_errors = [::Parser::SyntaxError]
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
       68 
70 
     | 
    
         
             
                # Set up default parser
         
     | 
| 
       69 
71 
     | 
    
         
             
                unless parser_class
         
     | 
| 
       70 
72 
     | 
    
         
             
                  self.parser_class = if defined?(::Parser::RubyNext)
         
     | 
| 
       71 
73 
     | 
    
         
             
                    ::Parser::RubyNext
         
     | 
| 
       72 
74 
     | 
    
         
             
                  elsif defined?(::Parser::Prism)
         
     | 
| 
      
 75 
     | 
    
         
            +
                    parser_syntax_errors << ::Prism::ParserCompiler::CompilationError
         
     | 
| 
       73 
76 
     | 
    
         
             
                    ::Parser::Prism
         
     | 
| 
       74 
77 
     | 
    
         
             
                  else
         
     | 
| 
       75 
78 
     | 
    
         
             
                    ::Parser::Ruby33
         
     | 
| 
         @@ -9,7 +9,8 @@ module RubyNext 
     | 
|
| 
       9 
9 
     | 
    
         
             
                    MIN_SUPPORTED_VERSION = Gem::Version.new("3.1.0")
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                    def on_pair(node)
         
     | 
| 
       12 
     | 
    
         
            -
                      return super(node) unless node.children[0].loc.last_column == node.children[1].loc.last_column
         
     | 
| 
      
 12 
     | 
    
         
            +
                      return super(node) unless (node.children[0].loc.last_column == node.children[1].loc.last_column) &&
         
     | 
| 
      
 13 
     | 
    
         
            +
                        (node.children[1].loc.first_line == node.children[1].loc.last_line)
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
                      context.track! self
         
     | 
| 
       15 
16 
     | 
    
         | 
    
        data/lib/ruby-next/language.rb
    CHANGED
    
    | 
         @@ -1,7 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            gem  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            # Checking gem specs doesn't work in ruby.wasm
         
     | 
| 
      
 4 
     | 
    
         
            +
            unless RUBY_PLATFORM.match?(/wasm/)
         
     | 
| 
      
 5 
     | 
    
         
            +
              gem "ruby-next-parser", ">= 2.8.0.3"
         
     | 
| 
      
 6 
     | 
    
         
            +
              gem "unparser", ">= 0.4.7"
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
       5 
8 
     | 
    
         | 
| 
       6 
9 
     | 
    
         
             
            require "set" # rubocop:disable Lint/RedundantRequireStatement
         
     | 
| 
       7 
10 
     | 
    
         | 
    
        data/lib/ruby-next/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ruby-next-core
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Vladimir Dementyev
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-01-28 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: require-hooks
         
     | 
| 
         @@ -220,9 +220,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       220 
220 
     | 
    
         
             
                  version: 2.2.0
         
     | 
| 
       221 
221 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       222 
222 
     | 
    
         
             
              requirements:
         
     | 
| 
       223 
     | 
    
         
            -
              - - " 
     | 
| 
      
 223 
     | 
    
         
            +
              - - ">="
         
     | 
| 
       224 
224 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       225 
     | 
    
         
            -
                  version:  
     | 
| 
      
 225 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       226 
226 
     | 
    
         
             
            requirements: []
         
     | 
| 
       227 
227 
     | 
    
         
             
            rubygems_version: 3.4.20
         
     | 
| 
       228 
228 
     | 
    
         
             
            signing_key:
         
     |