Issue #16116 has been updated by Andrew  Parker.

Category set to language
Status changed from Unreviewed to Accepted
Target version set to 3.x

This is completely unwanted behavior. 

<pre>
[14:27:51][Ruby(ruby-1.9.3-p125)][Git(3.x)] andy:puppet
> puppet apply -e '$a = [1, 2] $a[0] = 3 notice($a)'
Scope(Class[main]): 3 2
Finished catalog run in 0.18 seconds
</pre>
----------------------------------------
Bug #16116: Arrays and hashes are mutable; new members can be added and 
existing values changed
https://projects.puppetlabs.com/issues/16116#change-69834

Author: Nick Fagerlund
Status: Accepted
Priority: Normal
Assignee: 
Category: language
Target version: 3.x
Affected Puppet version: 
Keywords: 
Branch: 


Courtesy Henrik: Puppet doesn't let you reassign variables within a given 
scope, but it lets you change the values of hashes and arrays by mucking with 
their members. That seems wrong. 

    $myary = ['zero', 'one', 'two']
    $myhash = {first => 'one', second => 'two', third => 'three'}

    $myary[3] = 'three' #can insert new element 
    $myary[3] = 'something else' #can reassign
    notice($myary[3])

    $myhash[fourth] = 'four' #can insert new element
    $myhash[fourth] = 'something else' #can't reassign, fails compilation
    notice($myhash[fourth])

    $myary += ['four'] #can't append in same scope, fails compilation

AND it's inconsistent, so obviously SOMETHING is whacked, even if we actually 
do want these objects to be mutable.

I don't know what we should do about this. I think the extent to which this is 
being used in the wild is completely unknown. 


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to