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
|
||||
if s.magic != mNone:
|
||||
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"):
|
||||
# XXX marshal load&store should not be opcodes, but use the
|
||||
# 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