Array implicit conversions subvert type system
Mike Capp
mike.capp at gmail.com
Fri Nov 24 12:58:29 PST 2006
Can't remember if I raised this before (it was loitering among the testcases
from my last peek at D), but it's still true in 0.174. "Derived[] to Base[]"
assignments really shouldn't happen without either a copy or an explit cast.
---
class Fruit {};
class Apple : Fruit {};
class Orange : Fruit {};
void main()
{
Apple[] apples;
apples.length = 3;
Fruit[] fruits = apples;
Orange orange = new Orange;
fruits[1] = orange;
if (apples[1] == orange) printf("Oops.\n");
}
More information about the Digitalmars-d
mailing list