Reading about D: few questions
Jonathan M Davis
jmdavisProg at gmx.com
Fri Dec 23 17:02:19 PST 2011
The core problem for a number of these situations is how types are handled
with regards to expressions. In an expression such as
char[] arr = s ~ '.';
the type of the value being assigned is determined _before_ the assignment is
done. So, even though in theory the compiler could make it work, it doesn't,
because by the time it's looking at the type being assigned to, it's too late.
There would need to be a fundamental change in how the language functions in
order to fix issues like this.
pure can do it when it can not because it's able to look at what the return
type is and changing the result of the expression accordingly but because it
has guarantees which make it so that it knows that the return value could be
converted to any level of constness and still be valid. The types used in the
expressions internally are generally irrelevant.
So, while I completely agree that it would be an improvement if the compiler
did a better job with implicit conversion when it could theoretically be done,
I'm not sure how much of that we're actually going to end up seeing simply
because of how the language and type system works in terms of the order of
evaluation.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list