2016-02-08 21:06 GMT+03:00 LCD 47 <[email protected]>:
> On 8 February 2016, Bram Moolenaar <[email protected]> wrote:
>> There is a balance between being backwards compatible and doing what is
>> expected. Spaces can be relevant, but that doesn't help for backwards
>> compatibility.
>>
>> One thing to keep in mind, why would you ever write:
>> "a" . 1.1
>> If you can write:
>> "a11"
>> Or:
>> "a1.1"
>>
>> This does not seem not so important. What is relevant:
>> let a = "header: "
>> echo a . 1.1
>
> Well, philosophically, I'd say literal numbers should never be
> promoted to strings, that is:
>
> let a = "header: "
> let b = 1
> echo a . b --> header: 1
> echo a . 1 --> error
>
> a . 1 looks like an accidental feature, and using it on purpose
> certainly feels like bad style. However, making it an error would be
> hard to document, let alone justify, and that would be much worse than
> the current behaviour.
I would say that both examples should be an error or should not be it.
The fact that I can use `{string expr} . {number expr}` only in case
when `{number expression}` is not a number looks like a bad design or
even error in parser. Though you may find this problem in lua:
print("%s":format("test")) -- error
print(("%s"):format("test")) -- prints test
local str = "%s"
print(str:format("test")) -- prints test
I have no idea why they have to have this kind of nonsense (also
applies to tables, now including the case when you do indexing), but
neither Python, nor Vim, nor Perl, nor even C99 has same behaviour:
echo $'#include <stdio.h>\nint main(void){printf("%d", (struct
{int a, b;}) {0, 0}.a);}' | clang -pedantic -Weverything -std=c99 -xc
-
works fine with no warnings (also with gcc, but replace -Weverything
with -Wall and note that number of enabled warnings will drop in this
case), `"str"[0]` works also.
In the mentioned languages if you can have expression of some type in
some position then this expression can be as well literal.
>
>> I assume most of us are surprised that the result is:
>> header: 11
>
> Yes, this is definitely unexpected. Maybe whoever depends on this
> behaviour deserves to see it breaking. :)
>
>> Perhaps we should just change that and see who complains?
>
> /lcd
>
> --
> --
> 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.
--
--
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.