https://issues.dlang.org/show_bug.cgi?id=19692
--- Comment #1 from FeepingCreature <[email protected]> --- An alternate proposal: `__traits(compiles, ...)` returns an "error object" on failure that encapsulates the gagged error, and evaluates to false for if(), ||, etc, but is preserved through short-circuiting. Ie. error1 || error2 -> (error1 + error2); ie. it is an entirely valid symbol that happens to correspond to a compiler error. When a template instantiation failure is logged, the error is output to accompany the failure. This should preserve the cause of instantiation failures without requiring significant changes to existing code. --
