interface Foo { void tranform(); } class Bar : Foo { override void transform() { } } override.d(8): Error: function override.Bar.transform does not override any function Omitting override gives the equally useless message: override.d(6): Error: class override.Bar interface function Foo.tranform isn't implemented I once spent a lot of time to figure out the cause of this error because the missing 's' is hardly noticeable. Why doesn't dmd use its spellchecker to help here? Similar problem is if the name is correct but parameters or other things don't match. In this case dmd should also suggest something like "did you mean transform(f) instead of transform(const f)" or whatever.
k, had a quick look, obviously FuncDeclaration::findVtblIndex would need to be modified.
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/945772cd984d7f6c469ffcbedb0a33711e5d3471 fix issue 4507 https://github.com/D-Programming-Language/dmd/commit/641cc658ef2b11d44b3c3239378be6d8afbd1d09 Merge pull request #801 from dawgfoto/fix4507 fix issue 4507