On Thursday, 18 December 2014 at 23:06:12 UTC, ketmar via Digitalmars-d wrote:
On Thu, 18 Dec 2014 22:46:04 +0000
Jonathan Marler via Digitalmars-d <[email protected]> wrote:

What are peoples thoughts on having an inferred type for "cast"? Good/Bad idea? If good, how helpful would this be? Would this break existing code somehow? I think this feature would be a nice added convenience. Not super helpful but nice to have.

Here's the details
-------------------
Typed Cast: cast(T)v
   try to cast v to T
Type Inferred Cast: cast(auto)v
try to cast v to whatever type is required in the current context

void foo(string s)
{
   // ...
}
void main()
{
     const(char)[] s = "hello";
     foo(cast(string)s); // Current
foo(cast(auto) s); // The type of the cast is inferred to be a string
     foo(cast() s);      // Another possible syntax
}

This would help refactoribility. If a function argument changes it's type, and the caller is using a cast, then the caller's cast type will be updated automatically. Note that if it changes to an invalid type, the cast will still fail like normal.

using casts is a bad practice. and "auto casts" is... i can't even find a word. the only thing this will help is to hide bugs, i believe.

please, don't.

nothing personal, i'm just terrified by the idea.

Performing a grep on phobos reveals there are currently almost 3,000 casts. I never like to use casts but they are a necessary evil. I think anything D can do to help the programmer get their job done is a win. The initial "pro" I saw for this idea was improving refactoribility. I see this as a huge win. You claim it will hide bugs? Could you give an example?

When I requested other people to chime in on this idea I was more looking for data/examples. Maybe someone will think of an example that shows this idea could encourage bad coding practices? Maybe it will hide bugs? My point is, I don't want to discourage you from providing your opinion, but I would really like to understand where your opinion comes from. I hope that wasn't harsh, I've read other posts you've made on the forums and although I don't agree with everything you say I would value your assessment. Thanks.

Reply via email to