On Wednesday, 3 October 2018 at 17:33:43 UTC, Dennis wrote:
Sure, the Unix way is a nice philosophy, but let's face the facts: - Because of (amongst others) CTFE and mixin, D is an incredibly complicated language to reason about (unlike Java or C#) - There is only one D front-end, and it will likely stay that way for a while - Any static analysis tool that doesn't only work with a subset of the language must basically re-implement a complete compiler front-end or leverage dmd

This is a big point actually. There are several design choices in D that were made for the ease of parsability of the code, for example using !() instead of <> (personally I think <> look much cleaner, but I understand how it's harder to parse).


As for the thread. I think this could work either as a warning or in the compiler. The problem with making it a warning is that people might want to disable the feature once it breaks the build. It's a big pain in Go. Imagine importing a logger, and then putting some log methods int he code. Everything is fine. Then you comment out the log lines just for a moment, and bam, import logger is unnecessary and your build breaks.

Reply via email to