Why is there a conflict of modules?

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; } 

When compiling:

main.d (6): Error: ma.A with ma.d (3) conflicts with mb.A on mb.d (2)

There is no public import in mb.d A , so why an error?

Oddly enough, the following code compiles:

main.d

 import mb; void main(){ A a; } 

So, is this another DMD mistake, or did I misunderstand how import and public import work?

+6
source share

Source: https://habr.com/ru/post/904710/


All Articles