https://issues.dlang.org/show_bug.cgi?id=19091
--- Comment #12 from FeepingCreature <[email protected]> --- I have found a whole new manifestation of this bug! struct Inner() { bool opEquals(Inner) { } } struct Outer() { Inner!() field; bool opEquals(Outer) { return field == field; } } void main() { void nested()() { cast(void) Outer!()(); } static assert(__traits(compiles, nested()) == false); nested(); } In 2.097.1, this results in an illegal instruction! Building with master reveals that this is a compiled-out assert; it actually errors with core.exception.AssertError@src/dmd/e2ir.d(529): Assertion failure ---------------- ??:? _d_assertp [0x55a6c3d0d8bd] src/dmd/e2ir.d:529 _ZN13ToElemVisitor5visitEP10Expression [0x55a6c3bbe899] src/dmd/visitor.d:66 _ZN7Visitor5visitEP8ErrorExp [0x55a6c3baf006] src/dmd/expression.d:2026 _ZN8ErrorExp6acceptEP7Visitor [0x55a6c3aca97d] src/dmd/e2ir.d:504 _Z6toElemP10ExpressionP7IRState [0x55a6c3bbe7d3] src/dmd/e2ir.d:411 _Z10toElemDtorP10ExpressionP7IRState [0x55a6c3bbe41c] src/dmd/s2ir.d:728 _ZN11S2irVisitor5visitEP15ReturnStatement [0x55a6c3be9ee3] src/dmd/statement.d:1430 _ZN15ReturnStatement6acceptEP7Visitor [0x55a6c3b7e1b1] src/dmd/s2ir.d:1537 _ZN11S2irVisitor14Statement_toIREP9StatementP7IRStateP9StmtStateI5blockE [0x55a6c3bec1c3] src/dmd/s2ir.d:786 _ZN11S2irVisitor5visitEP17CompoundStatement [0x55a6c3bea127] src/dmd/statement.d:620 _ZN17CompoundStatement6acceptEP7Visitor [0x55a6c3b7c815] src/dmd/s2ir.d:1557 _Z14Statement_toIRP9StatementP7IRState [0x55a6c3bec2bf] src/dmd/glue.d:1100 _Z25FuncDeclaration_toObjFileP15FuncDeclarationb [0x55a6c3be1430] src/dmd/toobj.d:311 _ZN9toObjFile9ToObjFile5visitEP15FuncDeclaration [0x55a6c3bf6a64] src/dmd/func.d:2817 _ZN15FuncDeclaration6acceptEP7Visitor [0x55a6c3b09cdd] src/dmd/toobj.d:534 void dmd.toobj.toObjFile(dmd.dsymbol.Dsymbol, bool).ToObjFile.visit(dmd.dstruct.StructDeclaration).__lambda2!(dmd.dsymbol.Dsymbol).__lambda2(dmd.dsymbol.Dsymbol) [0x55a6c3bf7251] src/dmd/dsymbol.d:105 void dmd.dsymbol.foreachDsymbol(dmd.root.array.Array!(dmd.dsymbol.Dsymbol).Array*, void delegate(dmd.dsymbol.Dsymbol)) [0x55a6c3a8739f] src/dmd/toobj.d:534 _ZN9toObjFile9ToObjFile5visitEP17StructDeclaration [0x55a6c3bf719e] src/dmd/dstruct.d:451 _ZN17StructDeclaration6acceptEP7Visitor [0x55a6c3a86c6d] src/dmd/toobj.d:827 void dmd.toobj.toObjFile(dmd.dsymbol.Dsymbol, bool).ToObjFile.visit(dmd.dtemplate.TemplateInstance).__lambda2!(dmd.dsymbol.Dsymbol).__lambda2(dmd.dsymbol.Dsymbol) [0x55a6c3bf7b35] src/dmd/dsymbol.d:105 void dmd.dsymbol.foreachDsymbol(dmd.root.array.Array!(dmd.dsymbol.Dsymbol).Array*, void delegate(dmd.dsymbol.Dsymbol)) [0x55a6c3a8739f] src/dmd/toobj.d:827 _ZN9toObjFile9ToObjFile5visitEP16TemplateInstance [0x55a6c3bf7b0e] src/dmd/dtemplate.d:7504 _ZN16TemplateInstance6acceptEP7Visitor [0x55a6c3ab4cd1] src/dmd/toobj.d:1008 _Z9toObjFileP7Dsymbolb [0x55a6c3bf69ca] src/dmd/glue.d:522 _Z10genObjFileP6Moduleb [0x55a6c3bdf9d3] src/dmd/glue.d:137 void dmd.glue.generateCodeAndWrite(dmd.dmodule.Module[], const(char)*[], const(char)[], const(char)[], bool, bool, bool, bool, bool) [0x55a6c3bde396] src/dmd/mars.d:571 int dmd.mars.tryMain(ulong, const(char)**, ref dmd.globals.Param) [0x55a6c39f92a5] src/dmd/mars.d:953 _Dmain [0x55a6c39fa851] --
