Issue #6946 has been updated by Jacek Masiulaniec.
Let's try this theory. Let's assume true and false are merely strings.
[jacekm@localhost ~]$ echo -en '$whatever=true\nif !($whatever in ["true",
"false"]) { /* ... */ }' | puppet
'true' from left operand of 'in' expression is not a string at line 2 on
node localhost.localdomain
[jacekm@localhost ~]$
The compiler is explicit: 'true' is not a string
Is the compiler buggy?
Or is the language different from your description of it?
I wish the Puppet language had clear and usable language specification. While
learning it I'm relying too much on trial and error because [1] cannot answer
all usage questions, despite the claim to contain "all the language details".
[1] http://docs.puppetlabs.com/guides/language_guide.html
Good example of clear and usable spec: http://golang.org/doc/go_spec.html
----------------------------------------
Bug #6946: arrays cannot contain booleans
https://projects.puppetlabs.com/issues/6946
Author: Jacek Masiulaniec
Status: Accepted
Priority: Normal
Assignee: Ben Hughes
Category:
Target version:
Affected Puppet version: 2.6.4
Keywords:
Branch:
Problematic code:
if !($whatever in [true, false]) {
# ...
}
The error:
mac:~ jacekm$ echo 'if !($whatever in [true, false]) { /* ... */ }' | puppet
'undef' from left operand of 'in' expression is not a string at line 1 on
node mac.home
mac:~ jacekm$
Nowhere in the documentation does it say that arrays cannot contain booleans.
--
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.