Disregard that, here is the real bug. I removed the circular struct definition.
The code below results in:
i.d(7): Error: b.B at b.d(5) conflicts with c.B at c.d(3)
But if the selective imports are changed to non-selective public imports(
bug[314]
) the error is gone.
--
module main;
import c;
void main(){}
--
module c;
import i;
import b : B;
//public import b;
class C : I{
this(){}
B fb(){
B b;
return b;
}
}
--
module i;
import b;
import c;
interface I{
B fb();
}
--
module b;
import a : A;
//public import a;
struct B{
A a;
}
--