`assert(0, msg)` seems like a good D translation of that, because the semantics are actually part of the language there. (Well, actually `llvm_unreachable` doesn't compile to a trap in release mode, just to the respective equivalent of `__builtin_unreachable` but that's a different story.)