http://d.puremagic.com/issues/show_bug.cgi?id=2982
Summary: Assertion failure in function if() clause Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzi...@digitalmars.com ReportedBy: and...@metalanguage.com This code: auto max(Ts...)(Ts args) if (Ts.length >= 2 && is(typeof(Ts[0].init > Ts[1].init ? Ts[1].init : Ts[0].init))) { static if (Ts.length == 2) return args[1] > args[0] ? args[1] : args[0]; else return max(max(args[0], args[1]), args[2 .. $]); } void main() { assert(max(4, 5) == 5); assert(max(2.2, 4.5) == 4.5); assert(max("Little", "Big") == "Little"); assert(max(4, 5.5) == 5.5); assert(max(5.5, 4) == 5.5); } is greeted with this error: dmd: inline.c:1423: Expression* FuncDeclaration::doInline(InlineScanState*, Expression*, Array*): Assertion `parameters->dim == arguments->dim' failed. Aborted dmd: inline.c:1423: Expression* FuncDeclaration::doInline(InlineScanState*, Expression*, Array*): Assertion `parameters->dim == arguments->dim' failed. Aborted when compiled with "-unittest -O -release -inline", and with this error: dmd: glue.c:939: virtual unsigned int Type::totym(): Assertion `0' failed. Aborted when compiled without flags. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------