Skip to content

Can't deepCopy inside macros #2383

@def-

Description

@def-
import macros

macro m(x: expr): stmt =
  var y: NimNode
  y.deepCopy(x)

m(10)

I see there is a copyNimNode and copyNimTree, but this should at least throw another error than this:

x.nim(5, 3) Error: internal error: cannot generate code for: mDeepCopy
Traceback (most recent call last)
nim.nim(94)              nim
nim.nim(56)              handleCmdLine
main.nim(251)            mainCommand
main.nim(62)             commandCompileToC
modules.nim(203)         compileProject
modules.nim(151)         compileModule
passes.nim(197)          processModule
passes.nim(137)          processTopLevelStmt
sem.nim(446)             myProcess
sem.nim(420)             semStmtAndGenerateGenerics
semstmts.nim(1343)       semStmt
semexprs.nim(893)        semExprNoType
semexprs.nim(2086)       semExpr
semexprs.nim(877)        semDirectOp
semexprs.nim(860)        afterCallActions
sem.nim(354)             semMacroExpr
vm.nim(1478)             evalMacroCall
vmgen.nim(1776)          genProc
vmgen.nim(239)           gen
vmgen.nim(1613)          gen
vmgen.nim(239)           gen
vmgen.nim(1613)          gen
vmgen.nim(239)           gen
vmgen.nim(1573)          gen
vmgen.nim(1028)          genMagic
msgs.nim(849)            internalError
msgs.nim(826)            liMessage
msgs.nim(728)            handleError
FAILURE

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions