new dependency tracking for nimsuggest

This commit is contained in:
Araq 2016-11-05 01:19:23 +01:00
commit 9e6fb3f696
21 changed files with 284 additions and 393 deletions

View file

@ -16,6 +16,8 @@ import
condsyms, rodutils, renderer, idgen, cgendata, ccgmerge, semfold, aliases,
lowerings, semparallel
from modulegraphs import ModuleGraph
import strutils except `%` # collides with ropes.`%`
when options.hasTinyCBackend:
@ -1174,7 +1176,7 @@ proc newModule(module: PSym): BModule =
if (sfDeadCodeElim in module.flags):
internalError("added pending module twice: " & module.filename)
proc myOpen(module: PSym; cache: IdentCache): PPassContext =
proc myOpen(graph: ModuleGraph; module: PSym; cache: IdentCache): PPassContext =
result = newModule(module)
if optGenIndex in gGlobalOptions and generatedHeader == nil:
let f = if headerFile.len > 0: headerFile else: gProjectFull
@ -1209,7 +1211,7 @@ proc getCFile(m: BModule): string =
else: ".c"
result = changeFileExt(completeCFilePath(m.cfilename.withPackageName), ext)
proc myOpenCached(module: PSym, rd: PRodReader): PPassContext =
proc myOpenCached(graph: ModuleGraph; module: PSym, rd: PRodReader): PPassContext =
assert optSymbolFiles in gGlobalOptions
var m = newModule(module)
readMergeInfo(getCFile(m), m)