diff options
author | Zahary Karadjov <zahary@gmail.com> | 2013-07-27 10:17:58 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2013-08-19 01:45:16 +0300 |
commit | b01d9b6181be56b1300847cc1352652caa77e437 (patch) | |
tree | fb83fe276d859444bdfaacc4a9cdb4a91d8aaed1 /compiler/seminst.nim | |
parent | 3e79e9f98185148899313da0a7436f861029c10c (diff) | |
download | Nim-b01d9b6181be56b1300847cc1352652caa77e437.tar.gz |
work-in-progress for compiling generics in their owner module
Diffstat (limited to 'compiler/seminst.nim')
-rw-r--r-- | compiler/seminst.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/seminst.nim b/compiler/seminst.nim index 15be33261..47d889a60 100644 --- a/compiler/seminst.nim +++ b/compiler/seminst.nim @@ -233,11 +233,11 @@ proc generateInstance(c: PContext, fn: PSym, pt: TIdTable, # we set the friend module: var oldFriend = c.friendModule c.friendModule = getModule(fn) + #let oldScope = c.currentScope + #c.currentScope = fn.scope result = copySym(fn, false) incl(result.flags, sfFromGeneric) - # keep the owner if it's an inner proc (for proper closure transformations): - if fn.owner.kind == skModule: - result.owner = getCurrOwner().owner + result.owner = fn result.ast = n pushOwner(result) openScope(c) @@ -267,6 +267,7 @@ proc generateInstance(c: PContext, fn: PSym, pt: TIdTable, popInfoContext() closeScope(c) # close scope for parameters popOwner() + #c.currentScope = oldScope c.friendModule = oldFriend dec(c.InstCounter) if result.kind == skMethod: finishMethod(c, result) |