Is there any progress on this? >Removing sticky type checking On Tue, Feb 9, 2016 at 8:47 AM, tyru <[email protected]> wrote: > On Tue, Feb 9, 2016 at 6:08 AM, Bram Moolenaar <[email protected]> wrote: >> >> Takuya Fujiwara wrote: >> >>> On Mon, Feb 8, 2016 at 6:48 PM, Bram Moolenaar <[email protected]> wrote: >>> > >>> > [adjusted the subject, it was "Why is v:none needed"] >>> > >>> > Takuya Fujiwara wrote: >>> > >>> >> > [...] >>> >> > >>> >> > > >> let json = jsonencode({"key": v:none}) >>> >> > > >> if json is v:none >>> >> > > >> echoerr 'error!' >>> >> > > >> return ... >>> >> > > >> endif >>> >> > > > >>> >> > > > Well, let's just return an empty string. Returning a different >>> >> > > > type >>> >> > > > often makes it more complicated. >>> >> > > >>> >> > > I agree. >>> >> > > However, I think "E706: Variable type mismatch" should be removed >>> >> > > becase it is not so useful for me... >>> >> > >>> >> > Where do you get that? Or do you mean that the sticky type checking >>> >> > isn't all that useful in general? I've been wondering whether we would >>> >> > be better off without it. >>> >> >>> >> I don't think it is useful in lightweight languages >>> >> (I don't think *only* a strict type checking is useful). >>> >> A strict type checking is useful for a language which has a strong type >>> >> system. >>> >> Because we can detect errors by different types, and so on. >>> > >>> > At the time it seemed like a good idea, to have some type checking to >>> > avoid mistakes. Over time I can't say this has uncovered a problem. I >>> > did run into the error when I didn't want it. Currently I think we >>> > might be better off without it. >>> > >>> > So, let's ask: who finds the sticky type checking useful? >>> >>> +1. >>> >>> I'll show a example here, why we might be better off a sticky type checking. >> >> Sorry, I'm confused. Do you +1 sticky type checking or the removal? > > I +1 the removal, of cource! :) > I don't like it because I have so often struggled a type mismatch error... > >> >>> for i in ['foo', 'bar', {'key': 'baz'}] >>> echo string(i) >>> endfor >>> >>> Will output: >>> >>> 'foo' >>> 'bar' >>> E706: Variable type mismatch for: i >>> >>> We need 'unlet i'. >>> It is easy to miss it... >> >> Well, this is both an argument for and against. It's helpful if you >> wanted to be warned about mixed types, it's annoying if you >> intentionally have mixed types. >> >>> for i in ['foo', 'bar', {'key': 'baz'}] >>> echo string(i) >>> >>> " If you :continue here, you need to :unlet in the condition, too... >>> if ... >>> unlet i >>> continue >>> endif >>> >>> " We need this always! >>> unlet i >>> endfor >> >> -- >> hundred-and-one symptoms of being an internet addict: >> 184. You no longer ask prospective dates what their sign is, instead >> your line is "Hi, what's your URL?" >> >> /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ >> /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ >> \\\ an exciting new programming language -- http://www.Zimbu.org /// >> \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-- Takuya Fujiwara -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
