Mercurial > projects > ldc
comparison dmd/module.c @ 875:330f999ade44
Merged DMD 1.038
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 06 Jan 2009 16:33:51 +0100 |
parents | aa953cc960b6 |
children | 369996c08420 |
comparison
equal
deleted
inserted
replaced
874:2ddee23bd70e | 875:330f999ade44 |
---|---|
887 } while (deferred.dim < len || dprogress); // while making progress | 887 } while (deferred.dim < len || dprogress); // while making progress |
888 nested--; | 888 nested--; |
889 //printf("-Module::runDeferredSemantic('%s'), len = %d\n", toChars(), deferred.dim); | 889 //printf("-Module::runDeferredSemantic('%s'), len = %d\n", toChars(), deferred.dim); |
890 } | 890 } |
891 | 891 |
892 /************************************ | |
893 * Recursively look at every module this module imports, | |
894 * return TRUE if it imports m. | |
895 * Can be used to detect circular imports. | |
896 */ | |
897 | |
898 int Module::imports(Module *m) | |
899 { | |
900 //printf("%s Module::imports(%s)\n", toChars(), m->toChars()); | |
901 int aimports_dim = aimports.dim; | |
902 #if 0 | |
903 for (int i = 0; i < aimports.dim; i++) | |
904 { Module *mi = (Module *)aimports.data[i]; | |
905 printf("\t[%d] %s\n", i, mi->toChars()); | |
906 } | |
907 #endif | |
908 for (int i = 0; i < aimports.dim; i++) | |
909 { Module *mi = (Module *)aimports.data[i]; | |
910 if (mi == m) | |
911 return TRUE; | |
912 if (!mi->insearch) | |
913 { | |
914 mi->insearch = 1; | |
915 int r = mi->imports(m); | |
916 mi->insearch = 0; | |
917 if (r) | |
918 return r; | |
919 } | |
920 } | |
921 return FALSE; | |
922 } | |
923 | |
892 /* =========================== ModuleDeclaration ===================== */ | 924 /* =========================== ModuleDeclaration ===================== */ |
893 | 925 |
894 ModuleDeclaration::ModuleDeclaration(Array *packages, Identifier *id) | 926 ModuleDeclaration::ModuleDeclaration(Array *packages, Identifier *id) |
895 { | 927 { |
896 this->packages = packages; | 928 this->packages = packages; |