Issue #10744 has been updated by Nigel Kersten.
Status changed from Needs Decision to Accepted
Assignee deleted (Nigel Kersten)
The bugs here that need to be fixed are the ones other than 'defined', which as
James pointed out is rather problematic, so much so that we've considered
pulling it from the DSL :(
<pre>
$h = { "a" => 42 }
if $h["b"] { notice( "if B should not print" ) } # prints but
shouldn't
</pre>
That's the killer one. :(
----------------------------------------
Bug #10744: Hash keys, defined & truth do not work as expected
https://projects.puppetlabs.com/issues/10744
Author: Jos Boumans
Status: Accepted
Priority: Normal
Assignee:
Category: language
Target version: 2.6.x
Affected Puppet version: 2.6.3
Keywords:
Branch:
The following manifest has a few very unexpected outcomes:
<pre>
$h = { "a" => 42 }
if $h["a"] { notice( "if A should print" ) }
if defined( $h["a"] ) { notice( "defined A should print" ) } # doesn't print,
but should
if has_key( $h, "a" ) { notice( "has_key A should print" ) }
if $h["b"] { notice( "if B should not print" ) } # prints but
shouldn't
if defined( $h["b"] ) { notice( "defined B should not print" ) }
if has_key( $h, "b" ) { notice( "has_key B should not print" ) }
if $u { notice( "if U should not print" ) }
if defined( $u ) { notice( "defined U should not print" ) } # runtime
error, but shouldn't
else { notice( "defined U should print else" ) } # doesn't
print, but should
notice( "No execution errors" ) # doesn't reach here, but should
</pre>
Prints the following and exits with code 1:
<pre>
$ puppet apply x.pp
notice: Scope(Class[main]): if A should print
notice: Scope(Class[main]): has_key A should print
notice: Scope(Class[main]): if B should not print
interning empty string at /mnt/tmp/puppet.hash/y.pp:12 on node cc001.krxd.net
</pre>
--
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.