On 1/6/22 6:06 PM, kdevel wrote:
When you import this file, the compiler sees that it has imports, and
assumes you must have built the `ModuleInfo` in some object somewhere,
so it outputs a reference for the import graph.
Makes sense. It seems that if there are just type definitions with enum
constants the module is a "leaf module". As soon as I add the delegate
which calls writefln
```somemodule.d
struct File {
enum title = "File";
enum void function (string) foo = (a => writefln ("a <%s>", a));
}
```
to the source the linker complains about the missing ModuleInfo.
The reasons the compiler decides to require `ModuleInfo` are somewhat
unspecified. I would have expected just importing std.stdio would do it,
but maybe you have to actually use something from that module.
-Steve