On Wed, Sep 23, 2020 at 07:08:47PM +0000, data pulverizer via Digitalmars-d-learn wrote: > On Wednesday, 23 September 2020 at 18:56:33 UTC, wjoe wrote: > > > > It doesn't occur to me that the compiler doesn't know at compile > > time that > > > > interface IFoo{} > > class Foo: IFoo {} > > > > class Foo implements interface IFoo. > > Didn't think that the compiler didn't know but wasn't aware that you > could use that information to statically dispatch. My mistake, I'll > shut up now!
Of course the compiler knows. And of course it can use this information for static dispatch. That's why D is so awesome at metaprogramming. ;-) What the compiler *doesn't* know is whether a variable of some supertype of Foo (say Object) implements IFoo, because that's something that can only be determined at runtime (effectively, you need to downcast to Foo / IFoo and test if it's null). But that's not what the OP is asking for in this case. T -- Error: Keyboard not attached. Press F1 to continue. -- Yoon Ha Lee, CONLANG