On Monday, 9 April 2018 at 03:41:17 UTC, Adam D. Ruppe wrote:
On Monday, 9 April 2018 at 03:20:58 UTC, helxi wrote:

visit, being a template, is @nogc or not based on the arguments passed to it as well as its own body, so while the error messages point to visit itself, these are frequently actually caused the predicate your pass.


std.variant.VariantException.this is not marked @nogc (but it prolly could be)

VariantN.peek is not @nogc because it calls Object.opEquals... which is broken af, sadly, but can probably be fixed for this case by marking TypeInfo.opEquals nogc.

IMO, this is one more reason why sum-types should be built into the language compiler, instead of being implemented in user-space.

Reply via email to