I've noticed that, when passed multiple files at once, DMD is generally buggy in ways that I can't reproduce in small test cases. This includes things like magically ignoring __gshared variables, and not being able to convert a type to an alias to the same type, for example, not being able to convert a size_t to a uint on 32-bit, or not being able to convert a float[] to an R where R is a template parameter instantiated as float[].
I have two questions: 1. Has anyone experienced similar things and if so are they further along than me at creating decent test cases? 2. I'm used to using Code::Blocks, but want to switch to Visual D because it seems to work a lot better for the most part. However, by default it seems to pass all project files to the compiler at once, where Code::Blocks compiles one file at a time. This means I have to deal with DMD's bugginess when passed mutliple files at once. Does anyone know how to make Visual D work Code::Blocks style, i.e. compile each file to an object file and link them afterwords?