On Tue, Nov 4, 2014 at 9:28 AM, Joshua Hoblitt <[email protected]> wrote:
> On 11/04/2014 09:46 AM, Henrik Lindberg wrote: > > It is a bit difficult since operators are overloaded on type. The good > > part is that if we stop transforming strings to numbers there will be > > errors for arithmetic expressions. > > > > The bad part is that ==, != cannot raise errors (since a string is > > simply not equal to a number). Currently comparisons order all numbers > > to be smaller than all strings. We could change those to instead error > > if the types are not comparable to each other. > > I think raising an exception when the types of operands to a comparison > operator are different is the least surprising behavior absent automatic > type conversion. > > It would also provide at lot more confidence that a manifest is 4x safe > if it passes `puppet parser validate`. Without that you'd have to worry > about conditional expressions silently changing their result between 3x > and 4x. > > The error would have to be at runtime, so puppet parser validate would not uncover these kinds of issues (except perhaps in trivial cases where it could be done). I have an experiment for creating a type inference system, but it is no where near complete enough to be a static type analysis system for puppet 4, and even then it would have to give up in far too many cases without yet more changes to the language. > -Josh > > -- > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-dev/54590CCE.1030305%40cpan.org. > For more options, visit https://groups.google.com/d/optout. > -- Andrew Parker [email protected] Freenode: zaphod42 Twitter: @aparker42 Software Developer *Join us at **PuppetConf 2015, October 5-9 in Portland, OR - * http://2015.puppetconf.com *Register early to save 40%!* -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CANhgQXuoq8%2BZW_%2BcqYSsU5cYS7vs%2Be%2B0nxNJZzuU_n%2BHP_p1JA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
