6
ma.dDlaczego występuje konflikt modułów?
module ma;
struct A{ }
mb.d
module mb;
import ma : A;
struct B{ }
main.d
import ma;
import mb;
void main(){
A a;
}
Po opracowaniu:
main.d(6): Error: ma.A at ma.d(3) conflicts with mb.A at mb.d(2)
W mb.d
A
jest nie publiczny import, więc dlaczego błąd?
Co dziwne, następujący kod kompiluje:
main.d
import mb;
void main(){
A a;
}
Tak, jest to kolejny błąd DMD, albo ja źle jak import i import publiczne działają?
Niewiarygodne !!! – Arlen
@Allen Błędy w dmd są obecnie naprawiane w szybkim tempie (jak pokazuje [dziennik zmian] (http://d-programming-language.org/changelog.html), ale wciąż jest mnóstwo irytujących błędów pozostawione w nim. Sytuacja jest o wiele lepsza niż kiedyś, ale jeśli spodziewasz się w tym momencie kompilatora wolnego od błędów, najprawdopodobniej zostaniesz zignorowany. Idzie tam jednak. –
Walter [właśnie scalony] (https://github.com/D-Programming-Language/dmd/pull/190) poprawka dla tego problemu. – eco