Deprecate implicit `int` to `bool` conversion for integer literals
Michael V. Franklin
slavo5150 at yahoo.com
Tue Nov 14 01:01:39 UTC 2017
On Saturday, 11 November 2017 at 23:30:18 UTC, Andrei
Alexandrescu wrote:
> A DIP is necessary for all language changes. In this case a
> short and well-argued DIP seems to be the ticket. Walter and I
> spoke and such a proposal has a good chance to be successful.
Subject issues:
https://issues.dlang.org/show_bug.cgi?id=9999
https://issues.dlang.org/show_bug.cgi?id=10560
Spec in question:
https://dlang.org/spec/type.html#bool
DIP:
https://github.com/dlang/DIPs/pull/99
I need some feedback from the community before I move forward
with the DIP. I'm torn between a few ideas and not sure how to
proceed.
1. Deprecate implicit conversion of integer literals to bool
2. Allow implicit conversion of integer literals to bool if a
function is not overloaded, but disallow it if the function is
overloaded.
3. Change the overload resolution rules as illustrated in
https://github.com/dlang/dmd/pull/1942
If I had to choose one I would go with 1, simply because the
implicit conversion is janky and circumvents the type system for
a mild-at-best convenience. But, it will cause breakage that
needs to be managed.
2 would solve the issues in question, but keep breakage at a
minimum, and would probably be preferred if users wish to
maintain the status quo. Disadvantage is it's a special case to
document, consider, and explain.
3 is similar to 2, and like 2, is a special case.
I don't even really have a dog in this fight, but the
demonstration of the problem in the bugzilla issues is simply
embarrassing, and I'm tired of seeing issues languish for so long
in bugzilla without any resolution.
Is there any general consensus in the community on this issue so
I can be sure I'm fulfilling the community's preference?
Thanks,
Mike
More information about the Digitalmars-d
mailing list