Somehow give a warning when trying to assign a size_t/ptrdiff_t to int or uint
WebFreak001 via Digitalmars-d
digitalmars-d at puremagic.com
Sun Apr 17 02:51:07 PDT 2016
On Sunday, 17 April 2016 at 09:38:33 UTC, Temtaime wrote:
> On Sunday, 17 April 2016 at 09:29:33 UTC, WebFreak001 wrote:
>> It's annoying to fix all these `int index =
>> str.indexOf("something")` to size_t/ptrdiff_t because you
>> started writing the code thinking that indexOf returns an
>> integer even though it returns a ptrdiff_t. When porting code
>> from 32bit to 64bit you need to fix all these lines which can
>> quickly become quite complex from functions where you don't
>> expect them to return size_t or ptrdiff_t
>>
>> Adding a warning when trying to do something like `int i =
>> funcReturningPtrdiff();` would make porting easier because you
>> would already spot the issues on the OS/architecture you are
>> working on. This also affects porting windows to linux as DMD
>> on windows uses 32bit by default and on linux it uses the
>> architecture you downloaded as default.
>
> There already was a such bugreport.
> size_t is simple alias to int/long depending on the platform.
>
> So currently it's impossible without adding a new type in the
> frontend.
The compiler has the name of the alias and probably also the
origin of it. So just checking if its from object.d (or where it
comes from) could set a boolean "actualSize" or something like
that to true and then it could use that information somehow
More information about the Digitalmars-d
mailing list