Почему возникает конфликт модулей?

ma.d

module ma;

struct A{ }

mb.d

module mb;
import ma : A;

struct B{ }

main.d

import ma;
import mb;

void main(){

  A a;
}

Когда скомпилировано:

main.d (6): Ошибка: ma.A в ma.d (3) конфликтует с mb.A в mb.d (2)

В mb.d A является не общедоступным импортом, так почему возникает ошибка?

Как ни странно, компилируется следующий код:

main.d

import mb;

void main(){

  A a;
}

Итак, это еще одна ошибка DMD или Я неправильно понял, как работает импорт и общий импорт?

6
задан Arlen 29 December 2011 в 22:56
поделиться