parser 3.2.1.1 → 3.2.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4e9c12d9347a88fa7fb419e76b338e1d69a647a841be6c2440b0370f6bf3e5f
4
- data.tar.gz: 2a297a328b99e43ad62241d9c8a5cf1b73f68dcc13ed5afaabbd0028b547c6f5
3
+ metadata.gz: 8675f26d1fb8a457da79bb3f675a57647eefdefec8bf05d75bf97677e20860b0
4
+ data.tar.gz: fe0759d1f51da6d85b89b5cc9d1fb34a4493f2c58e71cef9598753b9643b2a0a
5
5
  SHA512:
6
- metadata.gz: 330a825c26fdcbc939dd171df1994b5879f38ba896c5130ef70bdf703dd26f374eec9b7511363ff3b84daebf4be9470b836e98b6086725510a14300eea5b8dde
7
- data.tar.gz: aa843389469df522448da099801725c294852d2641d9bc276319fa7fdd1cbfe1af88c898b7edc821cf948bf4d307617f2c1621c7f0bf3372d9bbef8868a724a1
6
+ metadata.gz: 2271cfa20f5c8bd349e8465f0b5f4f667309c410ec7f622ec330e28adf4b896b560e0ce2f744bc267b6a7e4be687dfe351599660b200487de5ef9a7f2317121c
7
+ data.tar.gz: 86e4b5e6368f0857ebeed00fafd2fb9ff274288602458aff86eac29324fa743c5acf4d3d5e45e0ea767b2501ec315888ef37b154d8c75069826b02631320f31d
@@ -538,34 +538,23 @@ module Parser
538
538
  end
539
539
 
540
540
  def associate(begin_t, pairs, end_t)
541
- 0.upto(pairs.length - 1) do |i|
542
- (i + 1).upto(pairs.length - 1) do |j|
543
- pair_i = pairs[i]
544
- pair_j = pairs[j]
541
+ key_set = Set.new
545
542
 
546
- next if pair_i.type != :pair || pair_j.type != :pair
543
+ pairs.each do |pair|
544
+ next unless pair.type.eql?(:pair)
547
545
 
548
- key1, = *pair_i
549
- key2, = *pair_j
546
+ key, = *pair
550
547
 
551
- do_warn = false
552
-
553
- # keys have to be simple nodes, MRI ignores equal composite keys like
554
- # `{ a(1) => 1, a(1) => 1 }`
555
- case key1.type
556
- when :sym, :str, :int, :float
557
- if key1 == key2
558
- do_warn = true
559
- end
560
- when :rational, :complex, :regexp
561
- if @parser.version >= 31 && key1 == key2
562
- do_warn = true
563
- end
564
- end
548
+ case key.type
549
+ when :sym, :str, :int, :float
550
+ when :rational, :complex, :regexp
551
+ next unless @parser.version >= 31
552
+ else
553
+ next
554
+ end
565
555
 
566
- if do_warn
567
- diagnostic :warning, :duplicate_hash_key, nil, key2.loc.expression
568
- end
556
+ unless key_set.add?(key)
557
+ diagnostic :warning, :duplicate_hash_key, nil, key.loc.expression
569
558
  end
570
559
  end
571
560
 
@@ -75,7 +75,7 @@ module Parser
75
75
  CurrentRuby = Ruby26
76
76
 
77
77
  when /^2\.7\./
78
- current_version = '2.7.7'
78
+ current_version = '2.7.8'
79
79
  if RUBY_VERSION != current_version
80
80
  warn_syntax_deviation 'parser/ruby27', current_version
81
81
  end
@@ -84,7 +84,7 @@ module Parser
84
84
  CurrentRuby = Ruby27
85
85
 
86
86
  when /^3\.0\./
87
- current_version = '3.0.5'
87
+ current_version = '3.0.6'
88
88
  if RUBY_VERSION != current_version
89
89
  warn_syntax_deviation 'parser/ruby30', current_version
90
90
  end
@@ -93,7 +93,7 @@ module Parser
93
93
  CurrentRuby = Ruby30
94
94
 
95
95
  when /^3\.1\./
96
- current_version = '3.1.3'
96
+ current_version = '3.1.4'
97
97
  if RUBY_VERSION != current_version
98
98
  warn_syntax_deviation 'parser/ruby31', current_version
99
99
  end
@@ -102,7 +102,7 @@ module Parser
102
102
  CurrentRuby = Ruby31
103
103
 
104
104
  when /^3\.2\./
105
- current_version = '3.2.1'
105
+ current_version = '3.2.2'
106
106
  if RUBY_VERSION != current_version
107
107
  warn_syntax_deviation 'parser/ruby32', current_version
108
108
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parser
4
- VERSION = '3.2.1.1'
4
+ VERSION = '3.2.2.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1.1
4
+ version: 3.2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - whitequark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-08 00:00:00.000000000 Z
11
+ date: 2023-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -249,9 +249,9 @@ licenses:
249
249
  - MIT
250
250
  metadata:
251
251
  bug_tracker_uri: https://github.com/whitequark/parser/issues
252
- changelog_uri: https://github.com/whitequark/parser/blob/v3.2.1.1/CHANGELOG.md
253
- documentation_uri: https://www.rubydoc.info/gems/parser/3.2.1.1
254
- source_code_uri: https://github.com/whitequark/parser/tree/v3.2.1.1
252
+ changelog_uri: https://github.com/whitequark/parser/blob/v3.2.2.1/CHANGELOG.md
253
+ documentation_uri: https://www.rubydoc.info/gems/parser/3.2.2.1
254
+ source_code_uri: https://github.com/whitequark/parser/tree/v3.2.2.1
255
255
  post_install_message:
256
256
  rdoc_options: []
257
257
  require_paths: