On Friday, 3 December 2021 at 10:57:34 UTC, Stanislav Blinov wrote:
On Friday, 3 December 2021 at 10:42:37 UTC, Rumbu wrote:

Bug or feature? Is there any workaround?

The error message explains what to do :)

Error: class `mixinover.AnotherVisitor` use of `mixinover.Visitor.visit(S s)` is hidden by `AnotherVisitor`; use `alias visit = Visitor.visit;` to introduce base class overload set

Yes, I know, but in fact the compiler wrongly assumes that visit(A) is hiding visit(S). visit(A) is just an overload, it has a different signature than visit(S), theoretically the compiler must mangle it using a different name.

Finally I solved it by "finalizing" visit(S), so it's not taken into overrides set.

```d
class Visitor
{    
     final void visit(S s) {}
     //...
}

Reply via email to