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.

Reply via email to