complicated expressions can't be dereferenced directly
Jesse Luehrs [Tue, 19 Oct 2010 04:58:23 +0000 (23:58 -0500)]
Ambiguous use of @{do{...}} resolved to @do{...}

32 files changed:
lib/Moose/Meta/Method/Accessor/Native/Array/Writer.pm
lib/Moose/Meta/Method/Accessor/Native/Array/count.pm
lib/Moose/Meta/Method/Accessor/Native/Array/delete.pm
lib/Moose/Meta/Method/Accessor/Native/Array/elements.pm
lib/Moose/Meta/Method/Accessor/Native/Array/first.pm
lib/Moose/Meta/Method/Accessor/Native/Array/grep.pm
lib/Moose/Meta/Method/Accessor/Native/Array/insert.pm
lib/Moose/Meta/Method/Accessor/Native/Array/is_empty.pm
lib/Moose/Meta/Method/Accessor/Native/Array/join.pm
lib/Moose/Meta/Method/Accessor/Native/Array/map.pm
lib/Moose/Meta/Method/Accessor/Native/Array/natatime.pm
lib/Moose/Meta/Method/Accessor/Native/Array/pop.pm
lib/Moose/Meta/Method/Accessor/Native/Array/push.pm
lib/Moose/Meta/Method/Accessor/Native/Array/reduce.pm
lib/Moose/Meta/Method/Accessor/Native/Array/set.pm
lib/Moose/Meta/Method/Accessor/Native/Array/shift.pm
lib/Moose/Meta/Method/Accessor/Native/Array/shuffle.pm
lib/Moose/Meta/Method/Accessor/Native/Array/sort.pm
lib/Moose/Meta/Method/Accessor/Native/Array/sort_in_place.pm
lib/Moose/Meta/Method/Accessor/Native/Array/splice.pm
lib/Moose/Meta/Method/Accessor/Native/Array/uniq.pm
lib/Moose/Meta/Method/Accessor/Native/Array/unshift.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/Writer.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/count.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/delete.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/elements.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/get.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/is_empty.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/keys.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/kv.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/set.pm
lib/Moose/Meta/Method/Accessor/Native/Hash/values.pm

index 0e5d60b..cd6aa03 100644 (file)
@@ -18,7 +18,7 @@ sub _new_members {'@_'}
 sub _inline_copy_old_value {
     my ( $self, $slot_access ) = @_;
 
-    return '[ @{' . $slot_access . '} ]';
+    return '[ @{(' . $slot_access . ')} ]';
 }
 
 1;
index 4e2e479..89e6dd9 100644 (file)
@@ -17,7 +17,7 @@ sub _maximum_arguments { 0 }
 sub _return_value {
     my ( $self, $slot_access ) = @_;
 
-    return "scalar \@{ $slot_access }";
+    return "scalar \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index aee35dd..5697b8a 100644 (file)
@@ -37,13 +37,13 @@ sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
     return
-        "( do { my \@potential = \@{ $slot_access }; \@return = splice \@potential, \$_[0], 1; \\\@potential } )";
+        "( do { my \@potential = \@{ ($slot_access) }; \@return = splice \@potential, \$_[0], 1; \\\@potential } )";
 }
 
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "\@return = splice \@{ $slot_access }, \$_[0], 1";
+    return "\@return = splice \@{ ($slot_access) }, \$_[0], 1";
 }
 
 sub _return_value {
index 847449c..437ea36 100644 (file)
@@ -18,7 +18,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "\@{ $slot_access }";
+    return "\@{ ($slot_access) }";
 }
 
 no Moose::Role;
index 80b7be4..d9a9990 100644 (file)
@@ -38,7 +38,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "&List::Util::first( \$_[0], \@{ ${slot_access} } )";
+    return "&List::Util::first( \$_[0], \@{ ($slot_access) } )";
 }
 
 no Moose::Role;
index cf441d1..d7a209d 100644 (file)
@@ -37,7 +37,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "grep { \$_[0]->() } \@{ $slot_access }";
+    return "grep { \$_[0]->() } \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index 1afdb8c..e93985f 100644 (file)
@@ -31,7 +31,7 @@ sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
     return
-        "( do { my \@potential = \@{ $slot_access }; splice \@potential, \$_[0], 0, \$_[1]; \\\@potential } )";
+        "( do { my \@potential = \@{ ($slot_access) }; splice \@potential, \$_[0], 0, \$_[1]; \\\@potential } )";
 }
 
 sub _new_members { '$_[1]' }
@@ -39,7 +39,7 @@ sub _new_members { '$_[1]' }
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "splice \@{ $slot_access }, \$_[0], 0, \$_[1];";
+    return "splice \@{ ($slot_access) }, \$_[0], 0, \$_[1];";
 }
 
 sub _return_value {
index fe90c00..254640d 100644 (file)
@@ -18,7 +18,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "\@{ $slot_access } ? 0 : 1";
+    return "\@{ ($slot_access) } ? 0 : 1";
 }
 
 no Moose::Role;
index 04c1209..1be84e3 100644 (file)
@@ -37,7 +37,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "join \$_[0], \@{ $slot_access }";
+    return "join \$_[0], \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index 0082136..889ea14 100644 (file)
@@ -37,7 +37,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "map { \$_[0]->() } \@{ $slot_access }";
+    return "map { \$_[0]->() } \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index 63d0be7..17ed1bc 100644 (file)
@@ -42,7 +42,7 @@ sub _inline_return_value {
     my ( $self, $slot_access ) = @_;
 
     return
-        "my \$iter = List::MoreUtils::natatime( \$_[0], \@{ $slot_access } );"
+        "my \$iter = List::MoreUtils::natatime( \$_[0], \@{ ($slot_access) } );"
         . "\n"
         . 'if ( $_[1] ) {' . "\n"
         . 'while (my @vals = $iter->()) {' . "\n"
index f270ec2..9e371b3 100644 (file)
@@ -25,7 +25,7 @@ sub _adds_members { 0 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "[ \@{ $slot_access } > 1 ? \@{ $slot_access }[ 0 .. \$#{ $slot_access } - 1 ] : () ]";
+    return "[ \@{ ($slot_access) } > 1 ? \@{ ($slot_access) }[ 0 .. \$#{ ($slot_access) } - 1 ] : () ]";
 }
 
 sub _inline_capture_return_value {
@@ -37,7 +37,7 @@ sub _inline_capture_return_value {
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "pop \@{ $slot_access }";
+    return "pop \@{ ($slot_access) }";
 }
 
 sub _return_value {
index 48995b7..ce6a11a 100644 (file)
@@ -23,19 +23,19 @@ sub _adds_members { 1 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "[ \@{ $slot_access }, \@_ ]";
+    return "[ \@{ ($slot_access) }, \@_ ]";
 }
 
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "push \@{ $slot_access }, \@_";
+    return "push \@{ ($slot_access) }, \@_";
 }
 
 sub _return_value {
     my ( $self, $slot_access ) = @_;
 
-    return "return scalar \@{ $slot_access }";
+    return "return scalar \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index 8c61f93..9176db6 100644 (file)
@@ -38,7 +38,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "List::Util::reduce { \$_[0]->( \$a, \$b ) } \@{ ${slot_access} }";
+    return "List::Util::reduce { \$_[0]->( \$a, \$b ) } \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index d4129cf..4d8b6df 100644 (file)
@@ -38,7 +38,7 @@ sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
     return
-        "( do { my \@potential = \@{ $slot_access }; \$potential[ \$_[0] ] = \$_[1]; \\\@potential } )";
+        "( do { my \@potential = \@{ ($slot_access) }; \$potential[ \$_[0] ] = \$_[1]; \\\@potential } )";
 }
 
 sub _new_members { '$_[1]' }
index bdd10f6..8d3e7ff 100644 (file)
@@ -27,7 +27,7 @@ sub _adds_members { 0 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "[ \@{ $slot_access } > 1 ? \@{ $slot_access }[ 1 .. \$#{ $slot_access } ] : () ]";
+    return "[ \@{ ($slot_access) } > 1 ? \@{ ($slot_access) }[ 1 .. \$#{ ($slot_access) } ] : () ]";
 }
 
 sub _inline_capture_return_value {
@@ -39,7 +39,7 @@ sub _inline_capture_return_value {
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "shift \@{ $slot_access };";
+    return "shift \@{ ($slot_access) };";
 }
 
 sub _return_value {
index bddbd95..1b193a9 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "List::Util::shuffle \@{ $slot_access }";
+    return "List::Util::shuffle \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index c3c5a13..99239ca 100644 (file)
@@ -35,7 +35,7 @@ sub _return_value {
     my $slot_access = shift;
 
     return
-        "\$_[0] ? sort { \$_[0]->( \$a, \$b ) } \@{ ${slot_access} } : sort \@{ $slot_access }";
+        "\$_[0] ? sort { \$_[0]->( \$a, \$b ) } \@{ ($slot_access) } : sort \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index c412c13..7942334 100644 (file)
@@ -37,7 +37,7 @@ sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
     return
-        "[ \$_[0] ? sort { \$_[0]->( \$a, \$b ) } \@{ $slot_access } : sort \@{ $slot_access} ]";
+        "[ \$_[0] ? sort { \$_[0]->( \$a, \$b ) } \@{ ($slot_access) } : sort \@{ ($slot_access) } ]";
 }
 
 sub _return_value { return q{} }
index 09fbcbe..e97836b 100644 (file)
@@ -41,14 +41,14 @@ sub _inline_check_arguments {
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "( do { my \@potential = \@{ $slot_access };"
+    return "( do { my \@potential = \@{ ($slot_access) };"
         . '@return = defined $len ? ( splice @potential, $idx, $len, @_ ) : ( splice @potential, $idx ); \\@potential } )';
 }
 
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "\@return = defined \$len ? ( splice \@{ $slot_access }, \$idx, \$len, \@_ ) : ( splice \@{ $slot_access }, \$idx )";
+    return "\@return = defined \$len ? ( splice \@{ ($slot_access) }, \$idx, \$len, \@_ ) : ( splice \@{ ($slot_access) }, \$idx )";
 }
 
 sub _return_value {
index c8522e0..f87f1f3 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "List::MoreUtils::uniq \@{ $slot_access }";
+    return "List::MoreUtils::uniq \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index d0d9881..6313cdb 100644 (file)
@@ -23,19 +23,19 @@ sub _adds_members { 1 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "[ \@_, \@{ $slot_access } ]";
+    return "[ \@_, \@{ ($slot_access) } ]";
 }
 
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "unshift \@{ $slot_access }, \@_";
+    return "unshift \@{ ($slot_access) }, \@_";
 }
 
 sub _return_value {
     my ( $self, $slot_access ) = @_;
 
-    return "return scalar \@{ $slot_access }";
+    return "return scalar \@{ ($slot_access) }";
 }
 
 no Moose::Role;
index ea39c58..7e06103 100644 (file)
@@ -20,7 +20,7 @@ sub _new_values {'@values'}
 sub _inline_copy_old_value {
     my ( $self, $slot_access ) = @_;
 
-    return '{ %{' . $slot_access . '} }';
+    return '{ %{(' . $slot_access . ')} }';
 }
 
 no Moose::Role;
index 5057e21..fe0f7a6 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "scalar keys \%{ $slot_access }";
+    return "scalar keys \%{ ($slot_access) }";
 }
 
 no Moose::Role;
index 54af8f5..e7cf85d 100644 (file)
@@ -23,13 +23,13 @@ sub _adds_members { 0 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "( do { my \%potential = %{ $slot_access }; \@return = delete \@potential{\@_}; \\\%potential; } )";
+    return "( do { my \%potential = %{ ($slot_access) }; \@return = delete \@potential{\@_}; \\\%potential; } )";
 }
 
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "\@return = delete \@{ $slot_access }{\@_}";
+    return "\@return = delete \@{ ($slot_access) }{\@_}";
 }
 
 sub _return_value {
index bf25766..6e8f105 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "map { \$_, ${slot_access}->{\$_} } keys \%{ $slot_access }";
+    return "map { \$_, ${slot_access}->{\$_} } keys \%{ ($slot_access) }";
 }
 
 no Moose::Role;
index dbde3d5..a4b2e1e 100644 (file)
@@ -35,7 +35,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "\@_ > 1 ? \@{ $slot_access }{\@_} : ${slot_access}->{ \$_[0] }";
+    return "\@_ > 1 ? \@{ ($slot_access) }{\@_} : ${slot_access}->{ \$_[0] }";
 }
 
 no Moose::Role;
index 8f886b6..2de1604 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "scalar keys \%{ $slot_access } ? 0 : 1";
+    return "scalar keys \%{ ($slot_access) } ? 0 : 1";
 }
 
 no Moose::Role;
index f6ad9c9..22855e2 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "keys \%{ $slot_access }";
+    return "keys \%{ ($slot_access) }";
 }
 
 no Moose::Role;
index 06ad6fa..ad99400 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "map { [ \$_, ${slot_access}->{\$_} ] } keys \%{ $slot_access }";
+    return "map { [ \$_, ${slot_access}->{\$_} ] } keys \%{ ($slot_access) }";
 }
 
 no Moose::Role;
index 62850ca..1bb37cd 100644 (file)
@@ -61,7 +61,7 @@ sub _adds_members { 1 }
 sub _potential_value {
     my ( $self, $slot_access ) = @_;
 
-    return "{ %{ $slot_access }, \@_ }";
+    return "{ %{ ($slot_access) }, \@_ }";
 }
 
 sub _new_members { '@_[ @values_idx ]' }
@@ -69,13 +69,13 @@ sub _new_members { '@_[ @values_idx ]' }
 sub _inline_optimized_set_new_value {
     my ( $self, $inv, $new, $slot_access ) = @_;
 
-    return "\@{ $slot_access }{ \@_[ \@keys_idx] } = \@_[ \@values_idx ]";
+    return "\@{ ($slot_access) }{ \@_[ \@keys_idx] } = \@_[ \@values_idx ]";
 }
 
 sub _return_value {
     my ( $self, $slot_access ) = @_;
 
-    return "return wantarray ? \@{ $slot_access }{ \@_[ \@keys_idx ] } : ${slot_access}->{ \$_[ \$keys_idx[0] ] };";
+    return "return wantarray ? \@{ ($slot_access) }{ \@_[ \@keys_idx ] } : ${slot_access}->{ \$_[ \$keys_idx[0] ] };";
 }
 
 no Moose::Role;
index 79c6980..2845cae 100644 (file)
@@ -20,7 +20,7 @@ sub _return_value {
     my $self        = shift;
     my $slot_access = shift;
 
-    return "values \%{ $slot_access }";
+    return "values \%{ ($slot_access) }";
 }
 
 no Moose::Role;