summary refs log tree commit diff stats
path: root/compiler/ast.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/ast.nim')
-rwxr-xr-xcompiler/ast.nim9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim
index 419c1f2d8..8763e750e 100755
--- a/compiler/ast.nim
+++ b/compiler/ast.nim
@@ -603,11 +603,18 @@ type
       
   PLib* = ref TLib
   TSym* = object of TIdObj
+    # proc and type instantiations are cached in the generic symbol
     case kind*: TSymKind
-    of skType:                # generic instantiation caches
+    of skType:
       typeInstCache*: seq[PType]
     of routineKinds:
       procInstCache*: seq[PInstantiation]
+    of skModule:
+      # modules keep track of the generic symbols they use from other modules.
+      # this is because in incremental compilation, when a module is about to
+      # be replaced with a newer version, we must decrement the usage count
+      # of all previously used generics.
+      usedGenerics*: seq[PInstantiation]
     else: nil
 
     magic*: TMagic