fixes #9675
This commit is contained in:
parent
6206ba8f30
commit
eb919c35b2
5 changed files with 6 additions and 3 deletions
|
|
@ -627,7 +627,7 @@ type
|
||||||
mIsPartOf, mAstToStr, mParallel,
|
mIsPartOf, mAstToStr, mParallel,
|
||||||
mSwap, mIsNil, mArrToSeq, mCopyStr, mCopyStrLast,
|
mSwap, mIsNil, mArrToSeq, mCopyStr, mCopyStrLast,
|
||||||
mNewString, mNewStringOfCap, mParseBiggestFloat,
|
mNewString, mNewStringOfCap, mParseBiggestFloat,
|
||||||
mMove, mWasMoved,
|
mMove, mWasMoved, mDestroy,
|
||||||
mReset,
|
mReset,
|
||||||
mArray, mOpenArray, mRange, mSet, mSeq, mOpt, mVarargs,
|
mArray, mOpenArray, mRange, mSet, mSeq, mOpt, mVarargs,
|
||||||
mRef, mPtr, mVar, mDistinct, mVoid, mTuple,
|
mRef, mPtr, mVar, mDistinct, mVoid, mTuple,
|
||||||
|
|
@ -664,7 +664,7 @@ const
|
||||||
ctfeWhitelist* = {mNone, mUnaryLt, mSucc,
|
ctfeWhitelist* = {mNone, mUnaryLt, mSucc,
|
||||||
mPred, mInc, mDec, mOrd, mLengthOpenArray,
|
mPred, mInc, mDec, mOrd, mLengthOpenArray,
|
||||||
mLengthStr, mLengthArray, mLengthSeq, mXLenStr, mXLenSeq,
|
mLengthStr, mLengthArray, mLengthSeq, mXLenStr, mXLenSeq,
|
||||||
mArrGet, mArrPut, mAsgn,
|
mArrGet, mArrPut, mAsgn, mDestroy,
|
||||||
mIncl, mExcl, mCard, mChr,
|
mIncl, mExcl, mCard, mChr,
|
||||||
mAddI, mSubI, mMulI, mDivI, mModI,
|
mAddI, mSubI, mMulI, mDivI, mModI,
|
||||||
mAddF64, mSubF64, mMulF64, mDivF64,
|
mAddF64, mSubF64, mMulF64, mDivF64,
|
||||||
|
|
|
||||||
|
|
@ -2034,6 +2034,7 @@ proc genMagicExpr(p: BProc, e: PNode, d: var TLoc, op: TMagic) =
|
||||||
of mDotDot, mEqCString: genCall(p, e, d)
|
of mDotDot, mEqCString: genCall(p, e, d)
|
||||||
of mWasMoved: genWasMoved(p, e)
|
of mWasMoved: genWasMoved(p, e)
|
||||||
of mMove: genMove(p, e, d)
|
of mMove: genMove(p, e, d)
|
||||||
|
of mDestroy: discard "ignore calls to the default destructor"
|
||||||
of mSlice:
|
of mSlice:
|
||||||
localError(p.config, e.info, "invalid context for 'toOpenArray'; " &
|
localError(p.config, e.info, "invalid context for 'toOpenArray'; " &
|
||||||
" 'toOpenArray' is only valid within a call expression")
|
" 'toOpenArray' is only valid within a call expression")
|
||||||
|
|
|
||||||
|
|
@ -1760,6 +1760,7 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
of mEnumToStr: genRepr(p, n, r)
|
of mEnumToStr: genRepr(p, n, r)
|
||||||
of mNew, mNewFinalize: genNew(p, n)
|
of mNew, mNewFinalize: genNew(p, n)
|
||||||
of mChr, mArrToSeq: gen(p, n.sons[1], r) # nothing to do
|
of mChr, mArrToSeq: gen(p, n.sons[1], r) # nothing to do
|
||||||
|
of mDestroy: discard "ignore calls to the default destructor"
|
||||||
of mOrd: genOrd(p, n, r)
|
of mOrd: genOrd(p, n, r)
|
||||||
of mLengthStr, mLengthSeq, mLengthOpenArray, mLengthArray:
|
of mLengthStr, mLengthSeq, mLengthOpenArray, mLengthArray:
|
||||||
unaryExpr(p, n, r, "", "($1 != null ? $1.length : 0)")
|
unaryExpr(p, n, r, "", "($1 != null ? $1.length : 0)")
|
||||||
|
|
|
||||||
|
|
@ -1259,6 +1259,7 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest; m: TMagic) =
|
||||||
globalError(c.config, n.info, "cannot evaluate 'sizeof/alignof' because its type is not defined completely")
|
globalError(c.config, n.info, "cannot evaluate 'sizeof/alignof' because its type is not defined completely")
|
||||||
of mRunnableExamples:
|
of mRunnableExamples:
|
||||||
discard "just ignore any call to runnableExamples"
|
discard "just ignore any call to runnableExamples"
|
||||||
|
of mDestroy: discard "ignore calls to the default destructor"
|
||||||
else:
|
else:
|
||||||
# mGCref, mGCunref,
|
# mGCref, mGCunref,
|
||||||
globalError(c.config, n.info, "cannot generate code for: " & $m)
|
globalError(c.config, n.info, "cannot generate code for: " & $m)
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,7 @@ when defined(nimArrIdx):
|
||||||
x: S) {.noSideEffect, magic: "ArrPut".}
|
x: S) {.noSideEffect, magic: "ArrPut".}
|
||||||
|
|
||||||
when defined(nimNewRuntime):
|
when defined(nimNewRuntime):
|
||||||
proc `=destroy`*[T](x: var T) {.inline, magic: "Asgn".} =
|
proc `=destroy`*[T](x: var T) {.inline, magic: "Destroy".} =
|
||||||
## generic `destructor`:idx: implementation that can be overriden.
|
## generic `destructor`:idx: implementation that can be overriden.
|
||||||
discard
|
discard
|
||||||
proc `=sink`*[T](x: var T; y: T) {.inline, magic: "Asgn".} =
|
proc `=sink`*[T](x: var T; y: T) {.inline, magic: "Asgn".} =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue