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

Reply via email to