summary refs log tree commit diff stats
path: root/compiler/vm.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-08-02 01:51:06 +0200
committerAraq <rumpf_a@web.de>2015-08-02 02:56:01 +0200
commitea35cede8e99b936c4a3003640844335001fe0b3 (patch)
treea9d6a7794e9ee3868ea177acd11e9ddc3f057e11 /compiler/vm.nim
parente9899af9b20b1ac55c66b32a8ab354942ef2816f (diff)
downloadNim-ea35cede8e99b936c4a3003640844335001fe0b3.tar.gz
fixes #3103
Diffstat (limited to 'compiler/vm.nim')
-rw-r--r--compiler/vm.nim6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/vm.nim b/compiler/vm.nim
index 3166ba726..d7495d77f 100644
--- a/compiler/vm.nim
+++ b/compiler/vm.nim
@@ -510,8 +510,10 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
       of rkNode:
         if regs[rb].node.kind == nkNilLit:
           stackTrace(c, tos, pc, errNilAccess)
-        assert regs[rb].node.kind == nkRefTy
-        regs[ra].node = regs[rb].node.sons[0]
+        if regs[rb].node.kind == nkRefTy:
+          regs[ra].node = regs[rb].node.sons[0]
+        else:
+          stackTrace(c, tos, pc, errGenerated, "limited VM support for 'ref'")
       else:
         stackTrace(c, tos, pc, errNilAccess)
     of opcWrDeref: