www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Another interface bug -- double inheritance of same

Different from the last one.
"Double declaring" an interface seems to cause it to ignore the fact 
that a base class implements the interface.

interface Fruit
    ...  // some methods
interface Vehicle
    void drive_around();
    ...  // some other methods
interface MobileFruit : Fruit, Vehicle
    // nothing here, should inherit from superinterfaces

class BaseFruit : Fruit
    // implement (some of) Fruit's methods here

class MobileFruitGundam : BaseFruit, MobileFruit, Fruit
    // implement what's not in BaseFruit already

This complains that MobileFruitGundam doesn't implement Fruit's methods, 
even though they're implemented by BaseFruit.

It's not a huge problem because I think the result still acts like a 
Fruit even without the extra ",Fruit" there -- so
     Fruit f = new MobileFruitGundam;
is still ok, but I think it is an issue for template code that wants to 
derive from interfaces that are passed in as parameters or deduced from 
template parameters.

Does this sound like a bug too?

Apr 22 2007