Another interface bug -- double inheritance of same
    Bill Baxter 
    dnewsgroup at billbaxter.com
       
    Sun Apr 22 21:27:34 PDT 2007
    
    
  
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?
--bb
    
    
More information about the Digitalmars-d-bugs
mailing list