parser 3.2.2.0 → 3.2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parser/builders/default.rb +13 -24
- data/lib/parser/ruby28.rb +8047 -0
- data/lib/parser/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8675f26d1fb8a457da79bb3f675a57647eefdefec8bf05d75bf97677e20860b0
|
4
|
+
data.tar.gz: fe0759d1f51da6d85b89b5cc9d1fb34a4493f2c58e71cef9598753b9643b2a0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
543
|
+
pairs.each do |pair|
|
544
|
+
next unless pair.type.eql?(:pair)
|
547
545
|
|
548
|
-
|
549
|
-
key2, = *pair_j
|
546
|
+
key, = *pair
|
550
547
|
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
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
|
-
|
567
|
-
|
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
|
|