Hi,

This is a rather strange thing, which suspiciously looks like bug. I have a 
file like this:

```
export module engine.memory : align_type;
export import engine.core;

export I32 get_5()
{
    return 5;
}

export namespace engine::memory
{
    enum class AlignType : I32
    {
        align_1   = 1,
        align_2   = 2,
        align_4   = 4,
        align_8   = 8,
        align_16  = 16,
        align_32  = 32,
        align_64  = 64,
        align_128 = 128,
        align_256 = 256
    };
}
```

I have another translation unit which then imports the module engine.memory. 
That file can use the function get_5(), but whenever I try to use the namespace 
engine.memory I get an error that that namespace has not been defined.

If I remove the `export import engine.core` then the namespace is suddenly 
exported. (!)

So there is an issue with namespaces being hidden (ie. non-exported) whenever a 
module partition unit imports another module. It does not make any difference 
if the imported module is export-import'ed or just imported.

Best,
Alexander

Reply via email to