Merge pull request #8996 from LemonBoy/fix-2574
The VM cannot call methods
This commit is contained in:
commit
a5d014233a
2 changed files with 17 additions and 0 deletions
|
|
@ -1842,6 +1842,9 @@ proc gen(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags = {}) =
|
||||||
let s = n.sons[0].sym
|
let s = n.sons[0].sym
|
||||||
if s.magic != mNone:
|
if s.magic != mNone:
|
||||||
genMagic(c, n, dest, s.magic)
|
genMagic(c, n, dest, s.magic)
|
||||||
|
elif s.kind == skMethod:
|
||||||
|
localError(c.config, n.info, "cannot call method " & s.name.s &
|
||||||
|
" at compile time")
|
||||||
elif matches(s, "stdlib", "marshal", "to"):
|
elif matches(s, "stdlib", "marshal", "to"):
|
||||||
# XXX marshal load&store should not be opcodes, but use the
|
# XXX marshal load&store should not be opcodes, but use the
|
||||||
# general callback mechanisms.
|
# general callback mechanisms.
|
||||||
|
|
|
||||||
14
tests/vm/t2574.nim
Normal file
14
tests/vm/t2574.nim
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
discard """
|
||||||
|
line: 14
|
||||||
|
errormsg: "cannot call method eval at compile time"
|
||||||
|
"""
|
||||||
|
|
||||||
|
type
|
||||||
|
PExpr = ref object of RootObj
|
||||||
|
|
||||||
|
method eval(e: PExpr): int =
|
||||||
|
discard
|
||||||
|
|
||||||
|
static:
|
||||||
|
let x = PExpr()
|
||||||
|
discard x.eval
|
||||||
Loading…
Add table
Add a link
Reference in a new issue