| /* TEST_OUTPUT: |
| --- |
| fail_compilation/fail18093.d(19): Error: function `void fail18093.GenericTransitiveVisitor!(ASTCodegen).GenericTransitiveVisitor.ParseVisitMethods!(ASTCodegen).visit()` does not override any function, did you mean to override `extern (C++) void fail18093.ParseTimeVisitor!(ASTCodegen).ParseTimeVisitor.visit()`? |
| fail_compilation/fail18093.d(24): Error: mixin `fail18093.GenericTransitiveVisitor!(ASTCodegen).GenericTransitiveVisitor.ParseVisitMethods!(ASTCodegen)` error instantiating |
| fail_compilation/fail18093.d(27): Error: template instance `fail18093.GenericTransitiveVisitor!(ASTCodegen)` error instantiating |
| --- |
| * https://issues.dlang.org/show_bug.cgi?id=18093 |
| */ |
| |
| |
| struct ASTCodegen {} |
| |
| extern (C++) class ParseTimeVisitor(AST) |
| { |
| void visit() {} |
| } |
| template ParseVisitMethods(AST) |
| { |
| override void visit() {} |
| } |
| |
| class GenericTransitiveVisitor(AST) : ParseTimeVisitor!AST |
| { |
| mixin ParseVisitMethods!AST; |
| } |
| |
| alias SemanticTimeTransitiveVisitor = GenericTransitiveVisitor!ASTCodegen; |