@@ -30,7 +30,6 @@ import dmd.dmacro;
3030import dmd.doc;
3131import dmd.dscope;
3232import dmd.dsymbol;
33- import dmd.dsymbolsem : dsymbolSemantic;
3433import dmd.errors;
3534import dmd.errorsink;
3635import dmd.expression;
@@ -65,21 +64,6 @@ else version (Posix)
6564else
6665 static assert (0 );
6766
68- // function used to call semantic3 on a module's dependencies
69- void semantic3OnDependencies (Module m)
70- {
71- if (! m)
72- return ;
73-
74- if (m.semanticRun > PASS .semantic3)
75- return ;
76-
77- m.semantic3(null );
78-
79- foreach (i; 1 .. m.aimports.length)
80- semantic3OnDependencies(m.aimports[i]);
81- }
82-
8367/**
8468 * Remove generated .di files on error and exit
8569 */
@@ -964,125 +948,6 @@ extern (C++) final class Module : Package
964948 File .remove(docfile.toChars());
965949 }
966950
967- /* ******************************************
968- * Can't run semantic on s now, try again later.
969- */
970- extern (D ) static void addDeferredSemantic(Dsymbol s)
971- {
972- // printf("Module::addDeferredSemantic('%s')\n", s.toChars());
973- if (! s.deferred)
974- {
975- s.deferred = true ;
976- deferred.push(s);
977- }
978- }
979-
980- extern (D ) static void addDeferredSemantic2(Dsymbol s)
981- {
982- // printf("Module::addDeferredSemantic2('%s')\n", s.toChars());
983- if (! s.deferred2)
984- {
985- s.deferred2 = true ;
986- deferred2.push(s);
987- }
988- }
989-
990- extern (D ) static void addDeferredSemantic3(Dsymbol s)
991- {
992- // printf("Module::addDeferredSemantic3('%s')\n", s.toChars());
993- if (! s.deferred3)
994- {
995- s.deferred3 = true ;
996- deferred3.push(s);
997- }
998- }
999-
1000- /* *****************************************
1001- * Run semantic() on deferred symbols.
1002- */
1003- static void runDeferredSemantic ()
1004- {
1005- __gshared int nested;
1006- if (nested)
1007- return ;
1008- // if (deferred.length) printf("+Module::runDeferredSemantic(), len = %ld\n", deferred.length);
1009- nested++ ;
1010-
1011- size_t len;
1012- do
1013- {
1014- len = deferred.length;
1015- if (! len)
1016- break ;
1017-
1018- Dsymbol* todo;
1019- Dsymbol* todoalloc = null ;
1020- Dsymbol tmp;
1021- if (len == 1 )
1022- {
1023- todo = &tmp;
1024- }
1025- else
1026- {
1027- todo = cast (Dsymbol* )Mem.check(malloc(len * Dsymbol.sizeof));
1028- todoalloc = todo;
1029- }
1030- memcpy(todo, deferred.tdata(), len * Dsymbol.sizeof);
1031- foreach (Dsymbol s; Module.deferred[])
1032- s.deferred = false ;
1033- deferred.setDim(0 );
1034-
1035- foreach (i; 0 .. len)
1036- {
1037- Dsymbol s = todo[i];
1038- s.dsymbolSemantic(null );
1039- // printf("deferred: %s, parent = %s\n", s.toChars(), s.parent.toChars());
1040- }
1041- // printf("\tdeferred.length = %ld, len = %ld\n", deferred.length, len);
1042- if (todoalloc)
1043- free(todoalloc);
1044- }
1045- while (deferred.length != len); // while making progress
1046- nested-- ;
1047- // printf("-Module::runDeferredSemantic(), len = %ld\n", deferred.length);
1048- }
1049-
1050- static void runDeferredSemantic2 ()
1051- {
1052- Module.runDeferredSemantic();
1053-
1054- Dsymbols* a = &Module.deferred2;
1055- for (size_t i = 0 ; i < a.length; i++ )
1056- {
1057- Dsymbol s = (* a)[i];
1058- s.deferred2 = false ;
1059- // printf("[%d] %s semantic2a\n", i, s.toPrettyChars());
1060- s.semantic2(null );
1061-
1062- if (global.errors)
1063- break ;
1064- }
1065- a.setDim(0 );
1066- }
1067-
1068- static void runDeferredSemantic3 ()
1069- {
1070- Module.runDeferredSemantic2();
1071-
1072- Dsymbols* a = &Module.deferred3;
1073- for (size_t i = 0 ; i < a.length; i++ )
1074- {
1075- Dsymbol s = (* a)[i];
1076- s.deferred3 = false ;
1077- // printf("[%d] %s semantic3a\n", i, s.toPrettyChars());
1078- s.semantic3(null );
1079-
1080- if (global.errors)
1081- break ;
1082- }
1083- a.setDim(0 );
1084- }
1085-
1086951 extern (D ) static void clearCache() nothrow
1087952 {
1088953 foreach (Module m; amodules)
0 commit comments