为什么模块会发生冲突?

时间:2011-12-29 22:56:38

标签: compiler-errors d

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 at ma.d(3)与mb.A在mb.d(2)冲突

mb.d A 公开导入,为什么会出错?

奇怪的是,以下代码编译:

main.d

import mb;

void main(){

  A a;
}

那么,这是另一个DMD错误,还是我误解了进口和公共进口的运作方式?