summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/seminst.nim19
1 files changed, 5 insertions, 14 deletions
diff --git a/compiler/seminst.nim b/compiler/seminst.nim
index c7735903e..61480494b 100644
--- a/compiler/seminst.nim
+++ b/compiler/seminst.nim
@@ -29,11 +29,7 @@ proc addObjFieldsToLocalScope(c: PContext; n: PNode) =
   else: discard
 
 proc pushProcCon*(c: PContext; owner: PSym) =
-  var x: PProcCon
-  new(x)
-  x.owner = owner
-  x.next = c.p
-  c.p = x
+  c.p = PProcCon(owner: owner, next: c.p)
 
 const
   errCannotInstantiateX = "cannot instantiate: '$1'"
@@ -172,18 +168,13 @@ proc instGenericContainer(c: PContext, info: TLineInfo, header: PType,
                           allowMetaTypes = false): PType =
   internalAssert c.config, header.kind == tyGenericInvocation
 
-  var
-    cl: TReplTypeVars = default(TReplTypeVars)
+  var cl: TReplTypeVars = TReplTypeVars(symMap: initIdTable(),
+        localCache: initIdTable(), typeMap: LayeredIdTable(),
+        info: info, c: c, allowMetaTypes: allowMetaTypes
+      )
 
-  cl.symMap = initIdTable()
-  cl.localCache = initIdTable()
-  cl.typeMap = LayeredIdTable()
   cl.typeMap.topLayer = initIdTable()
 
-  cl.info = info
-  cl.c = c
-  cl.allowMetaTypes = allowMetaTypes
-
   # We must add all generic params in scope, because the generic body
   # may include tyFromExpr nodes depending on these generic params.
   # XXX: This looks quite similar to the code in matchUserTypeClass,