Files
Nim/compiler/astdef.html
github-actions[bot] ef3d9e7b38 Deploy to GitHub pages
2025-12-28 15:55:52 +00:00

2523 lines
227 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>astdef</title>
<!-- Google fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
<!-- Favicon -->
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
<!-- JS -->
<script type="text/javascript" src="dochack.js?v=2.3.1"></script>
</head>
<body>
<div class="document" id="documentId">
<div class="container">
<h1 class="title">astdef</h1>
<div class="row">
<div class="three columns">
<div class="theme-select-wrapper">
<label for="theme-select">Theme:&nbsp;</label>
<select id="theme-select" onchange="setTheme(this.value)">
<option value="auto">🌗 Match OS</option>
<option value="dark">🌑 Dark</option>
<option value="light">🌕 Light</option>
</select>
</div>
<div id="global-links">
<ul class="simple">
<li><a id="indexLink" href="theindex.html">Index</a></li>
</ul>
</div>
<div id="searchInputDiv">
Search: <input type="search" id="searchInput" oninput="search()"/>
</div>
<div>
Group by:
<select onchange="groupBy(this.value)">
<option value="section">Section</option>
<option value="type">Type</option>
</select>
</div>
<ul class="simple simple-toc" id="toc-list">
<li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#CompilesId" title="CompilesId = int">CompilesId</a></li>
<li><a class="reference" href="#ItemId" title="ItemId = object
module*: int32
item*: int32">ItemId</a></li>
<li><a class="reference" href="#ItemState" title="ItemState = enum
Complete, Partial, Sealed">ItemState</a></li>
<li><a class="reference" href="#LogEntry" title="LogEntry = object
kind*: LogEntryKind
op*: TTypeAttachedOp
isGeneric*: bool
module*: int
key*: string
sym*: PSym">LogEntry</a></li>
<li><a class="reference" href="#LogEntryKind" title="LogEntryKind = enum
HookEntry, ConverterEntry, MethodEntry, EnumToStrEntry, GenericInstEntry">LogEntryKind</a></li>
<li><a class="reference" href="#PInstantiation" title="PInstantiation = ref TInstantiation">PInstantiation</a></li>
<li><a class="reference" href="#PLib" title="PLib = ref TLib">PLib</a></li>
<li><a class="reference" href="#PNode" title="PNode = ref TNode">PNode</a></li>
<li><a class="reference" href="#PScope" title="PScope = ref TScope">PScope</a></li>
<li><a class="reference" href="#PSym" title="PSym = ref TSym">PSym</a></li>
<li><a class="reference" href="#PType" title="PType = ref TType">PType</a></li>
<li><a class="reference" href="#TCallingConvention" title="TCallingConvention = enum
ccNimCall = &quot;nimcall&quot;, ccStdCall = &quot;stdcall&quot;, ccCDecl = &quot;cdecl&quot;,
ccSafeCall = &quot;safecall&quot;, ccSysCall = &quot;syscall&quot;, ccInline = &quot;inline&quot;,
ccNoInline = &quot;noinline&quot;, ccFastCall = &quot;fastcall&quot;, ccThisCall = &quot;thiscall&quot;,
ccClosure = &quot;closure&quot;, ccNoConvention = &quot;noconv&quot;, ccMember = &quot;member&quot;">TCallingConvention</a></li>
<li><a class="reference" href="#TIdPair" title="TIdPair[T] = object
key*: ItemId
val*: T">TIdPair</a></li>
<li><a class="reference" href="#TIdPairSeq" title="TIdPairSeq[T] = seq[TIdPair[T]]">TIdPairSeq</a></li>
<li><a class="reference" href="#TIdTable" title="TIdTable[T] = object
counter*: int
data*: TIdPairSeq[T]">TIdTable</a></li>
<li><a class="reference" href="#TImplication" title="TImplication = enum
impUnknown, impNo, impYes">TImplication</a></li>
<li><a class="reference" href="#TInstantiation" title="TInstantiation = object
sym*: PSym
concreteTypes*: seq[PType]
genericParamsCount*: int
compilesId*: CompilesId">TInstantiation</a></li>
<li><a class="reference" href="#TLib" title="TLib = object
kind*: TLibKind
generated*: bool
isOverridden*: bool
name*: Rope
path*: PNode">TLib</a></li>
<li><a class="reference" href="#TLibKind" title="TLibKind = enum
libHeader, libDynamic">TLibKind</a></li>
<li><a class="reference" href="#TLoc" title="TLoc = object
k*: TLocKind
storage*: TStorageLoc
flags*: TLocFlags
lode*: PNode
snippet*: Rope">TLoc</a></li>
<li><a class="reference" href="#TLocFlag" title="TLocFlag = enum
lfIndirect, lfNoDeepCopy, lfNoDecl, lfDynamicLib, lfExportLib, lfHeader,
lfImportCompilerProc, lfSingleUse, lfEnforceDeref, lfPrepareForMutation">TLocFlag</a></li>
<li><a class="reference" href="#TLocFlags" title="TLocFlags = set[TLocFlag]">TLocFlags</a></li>
<li><a class="reference" href="#TLocKind" title="TLocKind = enum
locNone, locTemp, locLocalVar, locGlobalVar, locParam, locField, locExpr,
locProc, locData, locCall, locOther">TLocKind</a></li>
<li><a class="reference" href="#TMagic" title="TMagic = enum
mNone, mDefined, mDeclared, mDeclaredInScope, mCompiles, mArrGet, mArrPut,
mAsgn, mLow, mHigh, mSizeOf, mAlignOf, mOffsetOf, mTypeTrait, mIs, mOf, mAddr,
mType, mTypeOf, mPlugin, mEcho, mShallowCopy, mSlurp, mStaticExec, mStatic,
mParseExprToAst, mParseStmtToAst, mExpandToAst, mQuoteAst, mInc, mDec, mOrd,
mNew, mNewFinalize, mNewSeq, mNewSeqOfCap, mLengthOpenArray, mLengthStr,
mLengthArray, mLengthSeq, mIncl, mExcl, mCard, mChr, mGCref, mGCunref, mAddI,
mSubI, mMulI, mDivI, mModI, mSucc, mPred, mAddF64, mSubF64, mMulF64, mDivF64,
mShrI, mShlI, mAshrI, mBitandI, mBitorI, mBitxorI, mMinI, mMaxI, mAddU, mSubU,
mMulU, mDivU, mModU, mEqI, mLeI, mLtI, mEqF64, mLeF64, mLtF64, mLeU, mLtU,
mEqEnum, mLeEnum, mLtEnum, mEqCh, mLeCh, mLtCh, mEqB, mLeB, mLtB, mEqRef,
mLePtr, mLtPtr, mXor, mEqCString, mEqProc, mUnaryMinusI, mUnaryMinusI64,
mAbsI, mNot, mUnaryPlusI, mBitnotI, mUnaryPlusF64, mUnaryMinusF64, mCharToStr,
mBoolToStr, mCStrToStr, mStrToStr, mEnumToStr, mAnd, mOr, mImplies, mIff,
mExists, mForall, mOld, mEqStr, mLeStr, mLtStr, mEqSet, mLeSet, mLtSet,
mMulSet, mPlusSet, mMinusSet, mXorSet, mConStrStr, mSlice, mDotDot, mFields,
mFieldPairs, mOmpParFor, mAppendStrCh, mAppendStrStr, mAppendSeqElem, mInSet,
mRepr, mExit, mSetLengthStr, mSetLengthSeq, mSetLengthSeqUninit, mIsPartOf,
mAstToStr, mParallel, mSwap, mIsNil, mArrToSeq, mOpenArrayToSeq, mNewString,
mNewStringOfCap, mParseBiggestFloat, mMove, mEnsureMove, mWasMoved, mDup,
mDestroy, mTrace, mDefault, mUnown, mFinished, mIsolate, mAccessEnv,
mAccessTypeField, mArray, mOpenArray, mRange, mSet, mSeq, mVarargs, mRef,
mPtr, mVar, mDistinct, mVoid, mTuple, mOrdinal, mIterableType, mInt, mInt8,
mInt16, mInt32, mInt64, mUInt, mUInt8, mUInt16, mUInt32, mUInt64, mFloat,
mFloat32, mFloat64, mFloat128, mBool, mChar, mString, mCstring, mPointer,
mNil, mExpr, mStmt, mTypeDesc, mVoidType, mPNimrodNode, mSpawn, mDeepCopy,
mIsMainModule, mCompileDate, mCompileTime, mProcCall, mCpuEndian, mHostOS,
mHostCPU, mBuildOS, mBuildCPU, mAppType, mCompileOption, mCompileOptionArg,
mNLen, mNChild, mNSetChild, mNAdd, mNAddMultiple, mNDel, mNKind, mNSymKind,
mNccValue, mNccInc, mNcsAdd, mNcsIncl, mNcsLen, mNcsAt, mNctPut, mNctLen,
mNctGet, mNctHasNext, mNctNext, mNIntVal, mNFloatVal, mNSymbol, mNIdent,
mNGetType, mNStrVal, mNSetIntVal, mNSetFloatVal, mNSetSymbol, mNSetIdent,
mNSetStrVal, mNLineInfo, mNNewNimNode, mNCopyNimNode, mNCopyNimTree,
mStrToIdent, mNSigHash, mNSizeOf, mNBindSym, mNCallSite, mEqIdent,
mEqNimrodNode, mSameNodeType, mGetImpl, mNGenSym, mNHint, mNWarning, mNError,
mInstantiationInfo, mGetTypeInfo, mGetTypeInfoV2, mNimvm, mIntDefine,
mStrDefine, mBoolDefine, mGenericDefine, mRunnableExamples, mException,
mBuiltinType, mSymOwner, mUncheckedArray, mGetImplTransf,
mSymIsInstantiationOf, mNodeId, mPrivateAccess, mZeroDefault">TMagic</a></li>
<li><a class="reference" href="#TNode" title="TNode {.final, acyclic.} = object
when defined(useNodeIds):
id*: int
typField*: PType
info*: TLineInfo
flags*: TNodeFlags
case kind*: TNodeKind
of nkCharLit .. nkUInt64Lit:
intVal*: BiggestInt
of nkFloatLit .. nkFloat128Lit:
floatVal*: BiggestFloat
of nkStrLit .. nkTripleStrLit:
strVal*: string
of nkSym:
sym*: PSym
of nkIdent:
ident*: PIdent
else:
sons*: TNodeSeq
when defined(nimsuggest):
endInfo*: TLineInfo">TNode</a></li>
<li><a class="reference" href="#TNodeFlag" title="TNodeFlag = enum
nfNone, nfBase2, nfBase8, nfBase16, nfAllConst, nfTransf, nfNoRewrite, nfSem,
nfLL, nfDotField, nfDotSetter, nfExplicitCall, nfExprCall, nfIsRef, nfIsPtr,
nfPreventCg, nfBlockArg, nfFromTemplate, nfDefaultParam, nfDefaultRefsParam,
nfExecuteOnReload, nfLastRead, nfFirstWrite, nfHasComment,
nfSkipFieldChecking, nfDisabledOpenSym, nfLazyType">TNodeFlag</a></li>
<li><a class="reference" href="#TNodeFlags" title="TNodeFlags = set[TNodeFlag]">TNodeFlags</a></li>
<li><a class="reference" href="#TNodeKinds" title="TNodeKinds = set[TNodeKind]">TNodeKinds</a></li>
<li><a class="reference" href="#TNodePair" title="TNodePair = object
h*: Hash
key*: PNode
val*: int">TNodePair</a></li>
<li><a class="reference" href="#TNodePairSeq" title="TNodePairSeq = seq[TNodePair]">TNodePairSeq</a></li>
<li><a class="reference" href="#TNodeSeq" title="TNodeSeq = seq[PNode]">TNodeSeq</a></li>
<li><a class="reference" href="#TNodeTable" title="TNodeTable = object
counter*: int
data*: TNodePairSeq
ignoreTypes*: bool">TNodeTable</a></li>
<li><a class="reference" href="#TObjectSeq" title="TObjectSeq = seq[RootRef]">TObjectSeq</a></li>
<li><a class="reference" href="#TObjectSet" title="TObjectSet = object
counter*: int
data*: TObjectSeq">TObjectSet</a></li>
<li><a class="reference" href="#TPair" title="TPair = object
key*, val*: RootRef">TPair</a></li>
<li><a class="reference" href="#TPairSeq" title="TPairSeq = seq[TPair]">TPairSeq</a></li>
<li><a class="reference" href="#TScope" title="TScope {.acyclic.} = object
depthLevel*: int
symbols*: TStrTable
parent*: PScope
allowPrivateAccess*: seq[PSym]
optionStackLen*: int">TScope</a></li>
<li><a class="reference" href="#TStorageLoc" title="TStorageLoc = enum
OnUnknown, OnStatic, OnStack, OnHeap">TStorageLoc</a></li>
<li><a class="reference" href="#TStrTable" title="TStrTable = object
counter*: int
data*: seq[PSym]">TStrTable</a></li>
<li><a class="reference" href="#TSym" title="TSym {.acyclic.} = object
itemId*: ItemId
state*: ItemState
case kindImpl*: TSymKind
of routineKinds:
gcUnsafetyReasonImpl*: PSym
transformedBodyImpl*: PNode
of skLet, skVar, skField, skForVar:
guardImpl*: PSym
bitsizeImpl*: int
alignmentImpl*: int
else:
nil
magicImpl*: TMagic
typImpl*: PType
name*: PIdent
infoImpl*: TLineInfo
when defined(nimsuggest):
endInfoImpl*: TLineInfo
hasUserSpecifiedTypeImpl*: bool
ownerFieldImpl*: PSym
flagsImpl*: TSymFlags
astImpl*: PNode
optionsImpl*: TOptions
positionImpl*: int
offsetImpl*: int32
disamb*: int32
locImpl*: TLoc
annexImpl*: PLib
when hasFFI:
cnameImpl*: string
constraintImpl*: PNode
instantiatedFromImpl*: PSym
when defined(nimsuggest):
allUsagesImpl*: seq[TLineInfo]">TSym</a></li>
<li><a class="reference" href="#TSymFlag" title="TSymFlag = enum
sfUsed, sfExported, sfFromGeneric, sfGlobal, sfForward, sfWasForwarded,
sfImportc, sfExportc, sfMangleCpp, sfVolatile, sfRegister, sfPure,
sfNoSideEffect, sfSideEffect, sfMainModule, sfSystemModule, sfNoReturn,
sfAddrTaken, sfCompilerProc, sfEscapes, sfDiscriminant, sfRequiresInit,
sfDeprecated, sfExplain, sfError, sfShadowed, sfThread, sfCppNonPod,
sfCompileTime, sfConstructor, sfDispatcher, sfBorrow, sfInfixCall,
sfNamedParamCall, sfDiscardable, sfOverridden, sfCallsite, sfGenSym,
sfNonReloadable, sfGeneratedOp, sfTemplateParam, sfCursor,
sfInjectDestructors, sfNeverRaises, sfSystemRaisesDefect,
sfUsedInFinallyOrExcept, sfSingleUsedTemp, sfNoalias, sfEffectsDelayed,
sfGeneratedType, sfVirtual, sfByCopy, sfMember, sfCodegenDecl, sfWasGenSym,
sfForceLift, sfDirty, sfCustomPragma, sfBase, sfGoto, sfAnon, sfAllUntyped,
sfTemplateRedefinition">TSymFlag</a></li>
<li><a class="reference" href="#TSymFlags" title="TSymFlags = set[TSymFlag]">TSymFlags</a></li>
<li><a class="reference" href="#TSymKind" title="TSymKind = enum
skUnknown, skConditional, skDynLib, skParam, skGenericParam, skTemp, skModule,
skType, skVar, skLet, skConst, skResult, skProc, skFunc, skMethod, skIterator,
skConverter, skMacro, skTemplate, skField, skEnumField, skForVar, skLabel,
skStub, skPackage">TSymKind</a></li>
<li><a class="reference" href="#TSymKinds" title="TSymKinds = set[TSymKind]">TSymKinds</a></li>
<li><a class="reference" href="#TType" title="TType {.acyclic.} = object
itemId*: ItemId
kind*: TTypeKind
state*: ItemState
uniqueId*: ItemId
callConvImpl*: TCallingConvention
flagsImpl*: TTypeFlags
sonsImpl*: TTypeSeq
nImpl*: PNode
ownerFieldImpl*: PSym
symImpl*: PSym
sizeImpl*: BiggestInt
alignImpl*: int16
paddingAtEndImpl*: int16
locImpl*: TLoc
typeInstImpl*: PType">TType</a></li>
<li><a class="reference" href="#TTypeAttachedOp" title="TTypeAttachedOp = enum
attachedWasMoved, attachedDestructor, attachedAsgn, attachedDup, attachedSink,
attachedTrace, attachedDeepCopy">TTypeAttachedOp</a></li>
<li><a class="reference" href="#TTypeFlag" title="TTypeFlag = enum
tfVarargs, tfNoSideEffect, tfFinal, tfInheritable, tfHasOwned, tfEnumHasHoles,
tfShallow, tfThread, tfFromGeneric, tfUnresolved, tfResolved, tfRetType,
tfCapturesEnv, tfByCopy, tfByRef, tfIterator, tfPartial, tfNotNil,
tfRequiresInit, tfNeedsFullInit, tfVarIsPtr, tfHasMeta, tfHasGCedMem,
tfPacked, tfHasStatic, tfGenericTypeParam, tfImplicitTypeParam,
tfInferrableStatic, tfConceptMatchedTypeSym, tfExplicit, tfWildcard,
tfHasAsgn, tfBorrowDot, tfTriggersCompileTime, tfRefsAnonObj, tfCovariant,
tfWeakCovariant, tfContravariant, tfCheckedForDestructor, tfAcyclic,
tfIncompleteStruct, tfCompleteStruct, tfExplicitCallConv, tfIsConstructor,
tfEffectSystemWorkaround, tfIsOutParam, tfSendable, tfImplicitStatic">TTypeFlag</a></li>
<li><a class="reference" href="#TTypeFlags" title="TTypeFlags = set[TTypeFlag]">TTypeFlags</a></li>
<li><a class="reference" href="#TTypeKind" title="TTypeKind = enum
tyNone, tyBool, tyChar, tyEmpty, tyAlias, tyNil, tyUntyped, tyTyped,
tyTypeDesc, tyGenericInvocation, tyGenericBody, tyGenericInst, tyGenericParam,
tyDistinct, tyEnum, tyOrdinal, tyArray, tyObject, tyTuple, tySet, tyRange,
tyPtr, tyRef, tyVar, tySequence, tyProc, tyPointer, tyOpenArray, tyString,
tyCstring, tyForward, tyInt, tyInt8, tyInt16, tyInt32, tyInt64, tyFloat,
tyFloat32, tyFloat64, tyFloat128, tyUInt, tyUInt8, tyUInt16, tyUInt32,
tyUInt64, tyOwned, tySink, tyLent, tyVarargs, tyUncheckedArray, tyError,
tyBuiltInTypeClass, tyUserTypeClass, tyUserTypeClassInst,
tyCompositeTypeClass, tyInferred, tyAnd, tyOr, tyNot, tyAnything, tyStatic,
tyFromExpr, tyConcept, tyVoid, tyIterable">TTypeKind</a></li>
<li><a class="reference" href="#TTypeKinds" title="TTypeKinds = set[TTypeKind]">TTypeKinds</a></li>
<li><a class="reference" href="#TTypeSeq" title="TTypeSeq = seq[PType]">TTypeSeq</a></li>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#8" id="58">Vars</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#eqTypeFlags" title="eqTypeFlags = {tfIterator, tfNotNil, tfVarIsPtr, tfGcSafe, tfNoSideEffect,
tfIsOutParam}">eqTypeFlags</a></li>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#abstractInst" title="abstractInst = {tyGenericInst, tyDistinct, tyOrdinal, tyTypeDesc, tyAlias,
tyInferred, tySink, tyOwned}">abstractInst</a></li>
<li><a class="reference" href="#abstractVarRange" title="abstractVarRange = {tyGenericInst, tyRange, tyVar, tyDistinct, tyOrdinal,
tyTypeDesc, tyAlias, tyInferred, tySink, tyOwned}">abstractVarRange</a></li>
<li><a class="reference" href="#bodyPos" title="bodyPos = 6">bodyPos</a></li>
<li><a class="reference" href="#callableDefs" title="callableDefs = {nkLambda..nkDo, nkProcDef..nkIteratorDef, nkFuncDef}">callableDefs</a></li>
<li><a class="reference" href="#ConcreteTypes" title="ConcreteTypes: TTypeKinds = {tyBool, tyChar, tyEnum, tyArray, tyObject, tySet,
tyTuple, tyRange, tyPtr, tyRef, tyVar, tyLent,
tySequence, tyProc, tyPointer, tyOpenArray,
tyString, tyCstring, tyInt..tyInt64,
tyFloat..tyFloat128, tyUInt..tyUInt64}">ConcreteTypes</a></li>
<li><a class="reference" href="#ConstantDataTypes" title="ConstantDataTypes: TTypeKinds = {tyArray, tySet, tyTuple, tySequence}">ConstantDataTypes</a></li>
<li><a class="reference" href="#ctfeWhitelist" title="ctfeWhitelist = {mNone, mSucc, mPred, mInc, mDec, mOrd, mLengthOpenArray,
mLengthStr, mLengthArray, mLengthSeq, mArrGet, mArrPut, mAsgn,
mDestroy, mIncl, mExcl, mCard, mChr, mAddI, mSubI, mMulI,
mDivI, mModI, mAddF64, mSubF64, mMulF64, mDivF64, mShrI, mShlI,
mBitandI, mBitorI, mBitxorI, mMinI, mMaxI, mAddU, mSubU, mMulU,
mDivU, mModU, mEqI, mLeI, mLtI, mEqF64, mLeF64, mLtF64, mLeU,
mLtU, mEqEnum, mLeEnum, mLtEnum, mEqCh, mLeCh, mLtCh, mEqB,
mLeB, mLtB, mEqRef, mEqProc, mLePtr, mLtPtr, mEqCString, mXor,
mUnaryMinusI, mUnaryMinusI64, mAbsI, mNot, mUnaryPlusI,
mBitnotI, mUnaryPlusF64, mUnaryMinusF64, mCharToStr,
mBoolToStr, mCStrToStr, mStrToStr, mEnumToStr, mAnd, mOr,
mEqStr, mLeStr, mLtStr, mEqSet, mLeSet, mLtSet, mMulSet,
mPlusSet, mMinusSet, mXorSet, mConStrStr, mAppendStrCh,
mAppendStrStr, mAppendSeqElem, mInSet, mRepr, mOpenArrayToSeq}">ctfeWhitelist</a></li>
<li><a class="reference" href="#declarativeDefs" title="declarativeDefs = {nkProcDef, nkFuncDef, nkMethodDef, nkIteratorDef,
nkConverterDef}">declarativeDefs</a></li>
<li><a class="reference" href="#defaultAlignment" title="defaultAlignment = -1">defaultAlignment</a></li>
<li><a class="reference" href="#defaultOffset" title="defaultOffset = -1">defaultOffset</a></li>
<li><a class="reference" href="#defaultSize" title="defaultSize = -1">defaultSize</a></li>
<li><a class="reference" href="#dispatcherPos" title="dispatcherPos = 8">dispatcherPos</a></li>
<li><a class="reference" href="#effectListLen" title="effectListLen = 6">effectListLen</a></li>
<li><a class="reference" href="#ensuresEffects" title="ensuresEffects = 2">ensuresEffects</a></li>
<li><a class="reference" href="#exceptionEffects" title="exceptionEffects = 0">exceptionEffects</a></li>
<li><a class="reference" href="#ExportableSymKinds" title="ExportableSymKinds = {skType..skConst, skProc..skTemplate, skEnumField, skStub}">ExportableSymKinds</a></li>
<li><a class="reference" href="#forbiddenEffects" title="forbiddenEffects = 5">forbiddenEffects</a></li>
<li><a class="reference" href="#GcTypeKinds" title="GcTypeKinds = {tyRef, tySequence, tyString}">GcTypeKinds</a></li>
<li><a class="reference" href="#generatedMagics" title="generatedMagics = {mNone, mIsolate, mFinished, mOpenArrayToSeq}">generatedMagics</a></li>
<li><a class="reference" href="#genericParamsPos" title="genericParamsPos = 2">genericParamsPos</a></li>
<li><a class="reference" href="#GenericTypes" title="GenericTypes: TTypeKinds = {tyGenericInvocation, tyGenericBody, tyGenericParam}">GenericTypes</a></li>
<li><a class="reference" href="#GrowthFactor" title="GrowthFactor = 2">GrowthFactor</a></li>
<li><a class="reference" href="#IntegralTypes" title="IntegralTypes = {tyBool, tyChar, tyEnum, tyInt..tyInt64, tyFloat..tyFloat128,
tyUInt..tyUInt64}">IntegralTypes</a></li>
<li><a class="reference" href="#miscPos" title="miscPos = 5">miscPos</a></li>
<li><a class="reference" href="#namePos" title="namePos = 0">namePos</a></li>
<li><a class="reference" href="#nfAllFieldsSet" title="nfAllFieldsSet = nfBase2">nfAllFieldsSet</a></li>
<li><a class="reference" href="#NilableTypes" title="NilableTypes: TTypeKinds = {tyPointer, tyCstring, tyRef, tyPtr, tyProc, tyError}">NilableTypes</a></li>
<li><a class="reference" href="#nkEffectList" title="nkEffectList = nkArgList">nkEffectList</a></li>
<li><a class="reference" href="#nkFloatLiterals" title="nkFloatLiterals = {nkFloatLit..nkFloat128Lit}">nkFloatLiterals</a></li>
<li><a class="reference" href="#nkIdentKinds" title="nkIdentKinds = {nkIdent, nkSym, nkAccQuoted, nkOpenSymChoice, nkClosedSymChoice,
nkOpenSym}">nkIdentKinds</a></li>
<li><a class="reference" href="#nkLambdaKinds" title="nkLambdaKinds = {nkLambda, nkDo}">nkLambdaKinds</a></li>
<li><a class="reference" href="#nkLastBlockStmts" title="nkLastBlockStmts = {nkRaiseStmt, nkReturnStmt, nkBreakStmt, nkContinueStmt}">nkLastBlockStmts</a></li>
<li><a class="reference" href="#nkLiterals" title="nkLiterals = {nkCharLit..nkTripleStrLit}">nkLiterals</a></li>
<li><a class="reference" href="#nkPragmaCallKinds" title="nkPragmaCallKinds = {nkExprColonExpr, nkCall, nkCallStrLit}">nkPragmaCallKinds</a></li>
<li><a class="reference" href="#nkStrKinds" title="nkStrKinds = {nkStrLit..nkTripleStrLit}">nkStrKinds</a></li>
<li><a class="reference" href="#nkSymChoices" title="nkSymChoices = {nkClosedSymChoice, nkOpenSymChoice}">nkSymChoices</a></li>
<li><a class="reference" href="#nkWhen" title="nkWhen = nkWhenStmt">nkWhen</a></li>
<li><a class="reference" href="#nkWhenExpr" title="nkWhenExpr = nkWhenStmt">nkWhenExpr</a></li>
<li><a class="reference" href="#OverloadableSyms" title="OverloadableSyms = {skProc, skFunc, skMethod, skIterator, skConverter, skModule,
skTemplate, skMacro, skEnumField}">OverloadableSyms</a></li>
<li><a class="reference" href="#paramsPos" title="paramsPos = 3">paramsPos</a></li>
<li><a class="reference" href="#patternPos" title="patternPos = 1">patternPos</a></li>
<li><a class="reference" href="#PersistentNodeFlags" title="PersistentNodeFlags: TNodeFlags = {nfBase2, nfBase8, nfBase16, nfDotSetter,
nfDotField, nfIsRef, nfIsPtr, nfPreventCg,
nfLL, nfFromTemplate, nfDefaultRefsParam,
nfExecuteOnReload, nfLastRead, nfFirstWrite,
nfSkipFieldChecking, nfDisabledOpenSym,
nfLazyType}">PersistentNodeFlags</a></li>
<li><a class="reference" href="#pragmasEffects" title="pragmasEffects = 4">pragmasEffects</a></li>
<li><a class="reference" href="#pragmasPos" title="pragmasPos = 4">pragmasPos</a></li>
<li><a class="reference" href="#procDefs" title="procDefs = {nkLambda..nkDo, nkProcDef..nkConverterDef, nkIteratorDef, nkFuncDef}">procDefs</a></li>
<li><a class="reference" href="#PtrLikeKinds" title="PtrLikeKinds: TTypeKinds = {tyPointer, tyPtr}">PtrLikeKinds</a></li>
<li><a class="reference" href="#requiresEffects" title="requiresEffects = 1">requiresEffects</a></li>
<li><a class="reference" href="#resultPos" title="resultPos = 7">resultPos</a></li>
<li><a class="reference" href="#routineDefs" title="routineDefs = {nkProcDef..nkIteratorDef, nkFuncDef}">routineDefs</a></li>
<li><a class="reference" href="#routineKinds" title="routineKinds = {skProc, skFunc, skMethod, skIterator, skConverter, skMacro,
skTemplate}">routineKinds</a></li>
<li><a class="reference" href="#sfCompileToCpp" title="sfCompileToCpp = sfInfixCall">sfCompileToCpp</a></li>
<li><a class="reference" href="#sfCompileToObjc" title="sfCompileToObjc = sfNamedParamCall">sfCompileToObjc</a></li>
<li><a class="reference" href="#sfCppMember" title="sfCppMember = {sfVirtual, sfMember, sfConstructor}">sfCppMember</a></li>
<li><a class="reference" href="#sfExperimental" title="sfExperimental = sfOverridden">sfExperimental</a></li>
<li><a class="reference" href="#sfNoForward" title="sfNoForward = sfRegister">sfNoForward</a></li>
<li><a class="reference" href="#sfNoInit" title="sfNoInit = sfMainModule">sfNoInit</a></li>
<li><a class="reference" href="#sfReorder" title="sfReorder = sfForward">sfReorder</a></li>
<li><a class="reference" href="#sfWrittenTo" title="sfWrittenTo = sfBorrow">sfWrittenTo</a></li>
<li><a class="reference" href="#skError" title="skError = skUnknown">skError</a></li>
<li><a class="reference" href="#skLocalVars" title="skLocalVars = {skVar, skLet, skForVar, skParam, skResult}">skLocalVars</a></li>
<li><a class="reference" href="#skProcKinds" title="skProcKinds = {skProc, skFunc, skTemplate, skMacro, skIterator, skMethod,
skConverter}">skProcKinds</a></li>
<li><a class="reference" href="#StartSize" title="StartSize = 8">StartSize</a></li>
<li><a class="reference" href="#StructuralEquivTypes" title="StructuralEquivTypes: TTypeKinds = {tyNil, tyTuple, tyArray, tySet, tyRange,
tyPtr, tyRef, tyVar, tyLent, tySequence,
tyProc, tyOpenArray, tyVarargs}">StructuralEquivTypes</a></li>
<li><a class="reference" href="#tagEffects" title="tagEffects = 3">tagEffects</a></li>
<li><a class="reference" href="#tfGcSafe" title="tfGcSafe = tfThread">tfGcSafe</a></li>
<li><a class="reference" href="#tfGenericHasDestructor" title="tfGenericHasDestructor = tfExplicitCallConv">tfGenericHasDestructor</a></li>
<li><a class="reference" href="#tfNonConstExpr" title="tfNonConstExpr = tfExplicitCallConv">tfNonConstExpr</a></li>
<li><a class="reference" href="#tfObjHasKids" title="tfObjHasKids = tfEnumHasHoles">tfObjHasKids</a></li>
<li><a class="reference" href="#tfReturnsNew" title="tfReturnsNew = tfInheritable">tfReturnsNew</a></li>
<li><a class="reference" href="#tfUnion" title="tfUnion = tfNoSideEffect">tfUnion</a></li>
<li><a class="reference" href="#tyMetaTypes" title="tyMetaTypes = {tyUntyped, tyTypeDesc, tyGenericParam,
tyBuiltInTypeClass..tyCompositeTypeClass, tyAnd..tyAnything,
tyConcept}">tyMetaTypes</a></li>
<li><a class="reference" href="#tyPureObject" title="tyPureObject = tyTuple">tyPureObject</a></li>
<li><a class="reference" href="#tyTypeClasses" title="tyTypeClasses = {tyBuiltInTypeClass, tyCompositeTypeClass, tyUserTypeClass,
tyUserTypeClassInst, tyConcept, tyAnd, tyOr, tyNot, tyAnything}">tyTypeClasses</a></li>
<li><a class="reference" href="#tyUserTypeClasses" title="tyUserTypeClasses = {tyUserTypeClass, tyUserTypeClassInst}">tyUserTypeClasses</a></li>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">$
<li><a class="reference" href="#%24%2CItemId" title="`$`(x: ItemId): string">`$`(x: ItemId): string</a></li>
</ul>
<ul class="simple nested-toc-section">==
<li><a class="reference" href="#%3D%3D%2CItemId%2CItemId" title="`==`(a, b: ItemId): bool">`==`(a, b: ItemId): bool</a></li>
</ul>
<ul class="simple nested-toc-section">forcePartial
<li><a class="reference" href="#forcePartial%2CPSym" title="forcePartial(s: PSym)">forcePartial(s: PSym)</a></li>
<li><a class="reference" href="#forcePartial%2CPType" title="forcePartial(t: PType)">forcePartial(t: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">hash
<li><a class="reference" href="#hash%2CItemId" title="hash(x: ItemId): Hash">hash(x: ItemId): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">len
<li><a class="reference" href="#len%2CPNode" title="len(n: PNode): int">len(n: PNode): int</a></li>
</ul>
<ul class="simple nested-toc-section">mustRehash
<li><a class="reference" href="#mustRehash%2Cint%2Cint" title="mustRehash(length, counter: int): bool">mustRehash(length, counter: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">newIdentNode
<li><a class="reference" href="#newIdentNode%2CPIdent%2CTLineInfo" title="newIdentNode(ident: PIdent; info: TLineInfo): PNode">newIdentNode(ident: PIdent; info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newNode
<li><a class="reference" href="#newNode%2CTNodeKind" title="newNode(kind: TNodeKind): PNode">newNode(kind: TNodeKind): PNode</a></li>
<li><a class="reference" href="#newNode%2CTNodeKind%2CTLineInfo" title="newNode(kind: TNodeKind; info: TLineInfo): PNode">newNode(kind: TNodeKind; info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newNodeI
<li><a class="reference" href="#newNodeI%2CTNodeKind%2CTLineInfo" title="newNodeI(kind: TNodeKind; info: TLineInfo): PNode">newNodeI(kind: TNodeKind; info: TLineInfo): PNode</a></li>
<li><a class="reference" href="#newNodeI%2CTNodeKind%2CTLineInfo%2Cint" title="newNodeI(kind: TNodeKind; info: TLineInfo; children: int): PNode">newNodeI(kind: TNodeKind; info: TLineInfo; children: int): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newNodeIT
<li><a class="reference" href="#newNodeIT%2CTNodeKind%2CTLineInfo%2CPType" title="newNodeIT(kind: TNodeKind; info: TLineInfo; typ: PType): PNode">newNodeIT(kind: TNodeKind; info: TLineInfo; typ: PType): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newStrNode
<li><a class="reference" href="#newStrNode%2CTNodeKind%2Cstring" title="newStrNode(kind: TNodeKind; strVal: string): PNode">newStrNode(kind: TNodeKind; strVal: string): PNode</a></li>
<li><a class="reference" href="#newStrNode%2Cstring%2CTLineInfo" title="newStrNode(strVal: string; info: TLineInfo): PNode">newStrNode(strVal: string; info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newSymNode
<li><a class="reference" href="#newSymNode%2CPSym%2CTLineInfo" title="newSymNode(sym: PSym; info: TLineInfo): PNode">newSymNode(sym: PSym; info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">nextTry
<li><a class="reference" href="#nextTry%2CHash%2CHash" title="nextTry(h, maxHash: Hash): Hash">nextTry(h, maxHash: Hash): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">safeLen
<li><a class="reference" href="#safeLen%2CPNode" title="safeLen(n: PNode): int">safeLen(n: PNode): int</a></li>
</ul>
<ul class="simple nested-toc-section">strTableAdd
<li><a class="reference" href="#strTableAdd%2CTStrTable%2CPSym" title="strTableAdd(t: var TStrTable; n: PSym)">strTableAdd(t: var TStrTable; n: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">strTableContains
<li><a class="reference" href="#strTableContains%2CTStrTable%2CPSym" title="strTableContains(t: TStrTable; n: PSym): bool">strTableContains(t: TStrTable; n: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">strTableGet
<li><a class="reference" href="#strTableGet%2CTStrTable%2CPIdent" title="strTableGet(t: TStrTable; name: PIdent): PSym">strTableGet(t: TStrTable; name: PIdent): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">strTableIncl
<li><a class="reference" href="#strTableIncl%2CTStrTable%2CPSym" title="strTableIncl(t: var TStrTable; n: PSym; onConflictKeepOld = false): bool">strTableIncl(t: var TStrTable; n: PSym; onConflictKeepOld = false): bool</a></li>
</ul>
<ul class="simple nested-toc-section">strTableInclReportConflict
<li><a class="reference" href="#strTableInclReportConflict%2CTStrTable%2CPSym" title="strTableInclReportConflict(t: var TStrTable; n: PSym; onConflictKeepOld = false): PSym">strTableInclReportConflict(t: var TStrTable; n: PSym; onConflictKeepOld = false): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">symTabReplace
<li><a class="reference" href="#symTabReplace%2CTStrTable%2CPSym%2CPSym" title="symTabReplace(t: var TStrTable; prevSym: PSym; newSym: PSym)">symTabReplace(t: var TStrTable; prevSym: PSym; newSym: PSym)</a></li>
</ul>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">items
<li><a class="reference" href="#items.i%2CPNode" title="items(n: PNode): PNode">items(n: PNode): PNode</a></li>
</ul>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">[]
<li><a class="reference" href="#%5B%5D.t%2CPNode%2CBackwardsIndex" title="`[]`(n: PNode; i: BackwardsIndex): PNode">`[]`(n: PNode; i: BackwardsIndex): PNode</a></li>
<li><a class="reference" href="#%5B%5D.t%2CPNode%2Cint" title="`[]`(n: PNode; i: int): PNode">`[]`(n: PNode; i: int): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">[]=
<li><a class="reference" href="#%5B%5D%3D.t%2CPNode%2CBackwardsIndex%2CPNode" title="`[]=`(n: PNode; i: BackwardsIndex; x: PNode)">`[]=`(n: PNode; i: BackwardsIndex; x: PNode)</a></li>
<li><a class="reference" href="#%5B%5D%3D.t%2CPNode%2Cint%2CPNode" title="`[]=`(n: PNode; i: int; x: PNode)">`[]=`(n: PNode; i: int; x: PNode)</a></li>
</ul>
</ul>
</details>
</li>
<li>
<a class="reference reference-toplevel" href="#19" id="69">Exports</a>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="int128.html">int128</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="nodekinds.html">nodekinds</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="CompilesId">
<dt><pre><a href="astdef.html#CompilesId"><span class="Identifier">CompilesId</span></a> <span class="Other">=</span> <span class="Identifier">int</span></pre></dt>
<dd>
id that is used for the caching logic within <tt class="docutils literal"><span class="pre">system.compiles</span></tt>. See the seminst module.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L673" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L673" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ItemId">
<dt><pre><a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">item</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L572" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L572" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ItemState">
<dt><pre><a href="astdef.html#ItemState"><span class="Identifier">ItemState</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">Complete</span><span class="Other">,</span> <span class="Identifier">Partial</span><span class="Other">,</span> <span class="Identifier">Sealed</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L694" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L694" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="LogEntry">
<dt><pre><a href="astdef.html#LogEntry"><span class="Identifier">LogEntry</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#LogEntryKind"><span class="Identifier">LogEntryKind</span></a>
<span class="Identifier">op</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a>
<span class="Identifier">isGeneric</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">key</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1000" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1000" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="LogEntryKind">
<dt><pre><a href="astdef.html#LogEntryKind"><span class="Identifier">LogEntryKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">HookEntry</span><span class="Other">,</span> <span class="Identifier">ConverterEntry</span><span class="Other">,</span> <span class="Identifier">MethodEntry</span><span class="Other">,</span> <span class="Identifier">EnumToStrEntry</span><span class="Other">,</span> <span class="Identifier">GenericInstEntry</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L998" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L998" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PInstantiation">
<dt><pre><a href="astdef.html#PInstantiation"><span class="Identifier">PInstantiation</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TInstantiation"><span class="Identifier">TInstantiation</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L683" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L683" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PLib">
<dt><pre><a href="astdef.html#PLib"><span class="Identifier">PLib</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TLib"><span class="Identifier">TLib</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L699" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L699" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PNode">
<dt><pre><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TNode"><span class="Identifier">TNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L589" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L589" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PScope">
<dt><pre><a href="astdef.html#PScope"><span class="Identifier">PScope</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TScope"><span class="Identifier">TScope</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L692" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L692" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PSym">
<dt><pre><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TSym"><span class="Identifier">TSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L592" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L592" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PType">
<dt><pre><a href="astdef.html#PType"><span class="Identifier">PType</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="astdef.html#TType"><span class="Identifier">TType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L591" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L591" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCallingConvention">
<dt><pre><a href="astdef.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">ccNimCall</span> <span class="Other">=</span> <span class="StringLit">&quot;nimcall&quot;</span><span class="Other">,</span> <span class="Identifier">ccStdCall</span> <span class="Other">=</span> <span class="StringLit">&quot;stdcall&quot;</span><span class="Other">,</span> <span class="Identifier">ccCDecl</span> <span class="Other">=</span> <span class="StringLit">&quot;cdecl&quot;</span><span class="Other">,</span>
<span class="Identifier">ccSafeCall</span> <span class="Other">=</span> <span class="StringLit">&quot;safecall&quot;</span><span class="Other">,</span> <span class="Identifier">ccSysCall</span> <span class="Other">=</span> <span class="StringLit">&quot;syscall&quot;</span><span class="Other">,</span> <span class="Identifier">ccInline</span> <span class="Other">=</span> <span class="StringLit">&quot;inline&quot;</span><span class="Other">,</span>
<span class="Identifier">ccNoInline</span> <span class="Other">=</span> <span class="StringLit">&quot;noinline&quot;</span><span class="Other">,</span> <span class="Identifier">ccFastCall</span> <span class="Other">=</span> <span class="StringLit">&quot;fastcall&quot;</span><span class="Other">,</span> <span class="Identifier">ccThisCall</span> <span class="Other">=</span> <span class="StringLit">&quot;thiscall&quot;</span><span class="Other">,</span>
<span class="Identifier">ccClosure</span> <span class="Other">=</span> <span class="StringLit">&quot;closure&quot;</span><span class="Other">,</span> <span class="Identifier">ccNoConvention</span> <span class="Other">=</span> <span class="StringLit">&quot;noconv&quot;</span><span class="Other">,</span> <span class="Identifier">ccMember</span> <span class="Other">=</span> <span class="StringLit">&quot;member&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdPair">
<dt><pre><a href="astdef.html#TIdPair"><span class="Identifier">TIdPair</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">key</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Identifier">val</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L809" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L809" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdPairSeq">
<dt><pre><a href="astdef.html#TIdPairSeq"><span class="Identifier">TIdPairSeq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#TIdPair"><span class="Identifier">TIdPair</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L813" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L813" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdTable">
<dt><pre><a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">counter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TIdPairSeq"><span class="Identifier">TIdPairSeq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L814" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L814" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TImplication">
<dt><pre><a href="astdef.html#TImplication"><span class="Identifier">TImplication</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">impUnknown</span><span class="Other">,</span> <span class="Identifier">impNo</span><span class="Other">,</span> <span class="Identifier">impYes</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L835" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L835" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TInstantiation">
<dt><pre><a href="astdef.html#TInstantiation"><span class="Identifier">TInstantiation</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">concreteTypes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span>
<span class="Identifier">genericParamsCount</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">compilesId</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#CompilesId"><span class="Identifier">CompilesId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L675" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L675" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLib">
<dt><pre><a href="astdef.html#TLib"><span class="Identifier">TLib</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TLibKind"><span class="Identifier">TLibKind</span></a>
<span class="Identifier">generated</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">isOverridden</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a>
<span class="Identifier">path</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L664" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L664" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLibKind">
<dt><pre><a href="astdef.html#TLibKind"><span class="Identifier">TLibKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">libHeader</span><span class="Other">,</span> <span class="Identifier">libDynamic</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L661" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L661" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLoc">
<dt><pre><a href="astdef.html#TLoc"><span class="Identifier">TLoc</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">k</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TLocKind"><span class="Identifier">TLocKind</span></a>
<span class="Identifier">storage</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TLocFlags"><span class="Identifier">TLocFlags</span></a>
<span class="Identifier">lode</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">snippet</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L652" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L652" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocFlag">
<dt><pre><a href="astdef.html#TLocFlag"><span class="Identifier">TLocFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">lfIndirect</span><span class="Other">,</span> <span class="Identifier">lfNoDeepCopy</span><span class="Other">,</span> <span class="Identifier">lfNoDecl</span><span class="Other">,</span> <span class="Identifier">lfDynamicLib</span><span class="Other">,</span> <span class="Identifier">lfExportLib</span><span class="Other">,</span> <span class="Identifier">lfHeader</span><span class="Other">,</span>
<span class="Identifier">lfImportCompilerProc</span><span class="Other">,</span> <span class="Identifier">lfSingleUse</span><span class="Other">,</span> <span class="Identifier">lfEnforceDeref</span><span class="Other">,</span> <span class="Identifier">lfPrepareForMutation</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L632" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L632" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocFlags">
<dt><pre><a href="astdef.html#TLocFlags"><span class="Identifier">TLocFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TLocFlag"><span class="Identifier">TLocFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L651" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L651" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocKind">
<dt><pre><a href="astdef.html#TLocKind"><span class="Identifier">TLocKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">locNone</span><span class="Other">,</span> <span class="Identifier">locTemp</span><span class="Other">,</span> <span class="Identifier">locLocalVar</span><span class="Other">,</span> <span class="Identifier">locGlobalVar</span><span class="Other">,</span> <span class="Identifier">locParam</span><span class="Other">,</span> <span class="Identifier">locField</span><span class="Other">,</span> <span class="Identifier">locExpr</span><span class="Other">,</span>
<span class="Identifier">locProc</span><span class="Other">,</span> <span class="Identifier">locData</span><span class="Other">,</span> <span class="Identifier">locCall</span><span class="Other">,</span> <span class="Identifier">locOther</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L620" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L620" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TMagic">
<dt><pre><a href="astdef.html#TMagic"><span class="Identifier">TMagic</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">mNone</span><span class="Other">,</span> <span class="Identifier">mDefined</span><span class="Other">,</span> <span class="Identifier">mDeclared</span><span class="Other">,</span> <span class="Identifier">mDeclaredInScope</span><span class="Other">,</span> <span class="Identifier">mCompiles</span><span class="Other">,</span> <span class="Identifier">mArrGet</span><span class="Other">,</span> <span class="Identifier">mArrPut</span><span class="Other">,</span>
<span class="Identifier">mAsgn</span><span class="Other">,</span> <span class="Identifier">mLow</span><span class="Other">,</span> <span class="Identifier">mHigh</span><span class="Other">,</span> <span class="Identifier">mSizeOf</span><span class="Other">,</span> <span class="Identifier">mAlignOf</span><span class="Other">,</span> <span class="Identifier">mOffsetOf</span><span class="Other">,</span> <span class="Identifier">mTypeTrait</span><span class="Other">,</span> <span class="Identifier">mIs</span><span class="Other">,</span> <span class="Identifier">mOf</span><span class="Other">,</span> <span class="Identifier">mAddr</span><span class="Other">,</span>
<span class="Identifier">mType</span><span class="Other">,</span> <span class="Identifier">mTypeOf</span><span class="Other">,</span> <span class="Identifier">mPlugin</span><span class="Other">,</span> <span class="Identifier">mEcho</span><span class="Other">,</span> <span class="Identifier">mShallowCopy</span><span class="Other">,</span> <span class="Identifier">mSlurp</span><span class="Other">,</span> <span class="Identifier">mStaticExec</span><span class="Other">,</span> <span class="Identifier">mStatic</span><span class="Other">,</span>
<span class="Identifier">mParseExprToAst</span><span class="Other">,</span> <span class="Identifier">mParseStmtToAst</span><span class="Other">,</span> <span class="Identifier">mExpandToAst</span><span class="Other">,</span> <span class="Identifier">mQuoteAst</span><span class="Other">,</span> <span class="Identifier">mInc</span><span class="Other">,</span> <span class="Identifier">mDec</span><span class="Other">,</span> <span class="Identifier">mOrd</span><span class="Other">,</span>
<span class="Identifier">mNew</span><span class="Other">,</span> <span class="Identifier">mNewFinalize</span><span class="Other">,</span> <span class="Identifier">mNewSeq</span><span class="Other">,</span> <span class="Identifier">mNewSeqOfCap</span><span class="Other">,</span> <span class="Identifier">mLengthOpenArray</span><span class="Other">,</span> <span class="Identifier">mLengthStr</span><span class="Other">,</span>
<span class="Identifier">mLengthArray</span><span class="Other">,</span> <span class="Identifier">mLengthSeq</span><span class="Other">,</span> <span class="Identifier">mIncl</span><span class="Other">,</span> <span class="Identifier">mExcl</span><span class="Other">,</span> <span class="Identifier">mCard</span><span class="Other">,</span> <span class="Identifier">mChr</span><span class="Other">,</span> <span class="Identifier">mGCref</span><span class="Other">,</span> <span class="Identifier">mGCunref</span><span class="Other">,</span> <span class="Identifier">mAddI</span><span class="Other">,</span>
<span class="Identifier">mSubI</span><span class="Other">,</span> <span class="Identifier">mMulI</span><span class="Other">,</span> <span class="Identifier">mDivI</span><span class="Other">,</span> <span class="Identifier">mModI</span><span class="Other">,</span> <span class="Identifier">mSucc</span><span class="Other">,</span> <span class="Identifier">mPred</span><span class="Other">,</span> <span class="Identifier">mAddF64</span><span class="Other">,</span> <span class="Identifier">mSubF64</span><span class="Other">,</span> <span class="Identifier">mMulF64</span><span class="Other">,</span> <span class="Identifier">mDivF64</span><span class="Other">,</span>
<span class="Identifier">mShrI</span><span class="Other">,</span> <span class="Identifier">mShlI</span><span class="Other">,</span> <span class="Identifier">mAshrI</span><span class="Other">,</span> <span class="Identifier">mBitandI</span><span class="Other">,</span> <span class="Identifier">mBitorI</span><span class="Other">,</span> <span class="Identifier">mBitxorI</span><span class="Other">,</span> <span class="Identifier">mMinI</span><span class="Other">,</span> <span class="Identifier">mMaxI</span><span class="Other">,</span> <span class="Identifier">mAddU</span><span class="Other">,</span> <span class="Identifier">mSubU</span><span class="Other">,</span>
<span class="Identifier">mMulU</span><span class="Other">,</span> <span class="Identifier">mDivU</span><span class="Other">,</span> <span class="Identifier">mModU</span><span class="Other">,</span> <span class="Identifier">mEqI</span><span class="Other">,</span> <span class="Identifier">mLeI</span><span class="Other">,</span> <span class="Identifier">mLtI</span><span class="Other">,</span> <span class="Identifier">mEqF64</span><span class="Other">,</span> <span class="Identifier">mLeF64</span><span class="Other">,</span> <span class="Identifier">mLtF64</span><span class="Other">,</span> <span class="Identifier">mLeU</span><span class="Other">,</span> <span class="Identifier">mLtU</span><span class="Other">,</span>
<span class="Identifier">mEqEnum</span><span class="Other">,</span> <span class="Identifier">mLeEnum</span><span class="Other">,</span> <span class="Identifier">mLtEnum</span><span class="Other">,</span> <span class="Identifier">mEqCh</span><span class="Other">,</span> <span class="Identifier">mLeCh</span><span class="Other">,</span> <span class="Identifier">mLtCh</span><span class="Other">,</span> <span class="Identifier">mEqB</span><span class="Other">,</span> <span class="Identifier">mLeB</span><span class="Other">,</span> <span class="Identifier">mLtB</span><span class="Other">,</span> <span class="Identifier">mEqRef</span><span class="Other">,</span>
<span class="Identifier">mLePtr</span><span class="Other">,</span> <span class="Identifier">mLtPtr</span><span class="Other">,</span> <span class="Identifier">mXor</span><span class="Other">,</span> <span class="Identifier">mEqCString</span><span class="Other">,</span> <span class="Identifier">mEqProc</span><span class="Other">,</span> <span class="Identifier">mUnaryMinusI</span><span class="Other">,</span> <span class="Identifier">mUnaryMinusI64</span><span class="Other">,</span>
<span class="Identifier">mAbsI</span><span class="Other">,</span> <span class="Identifier">mNot</span><span class="Other">,</span> <span class="Identifier">mUnaryPlusI</span><span class="Other">,</span> <span class="Identifier">mBitnotI</span><span class="Other">,</span> <span class="Identifier">mUnaryPlusF64</span><span class="Other">,</span> <span class="Identifier">mUnaryMinusF64</span><span class="Other">,</span> <span class="Identifier">mCharToStr</span><span class="Other">,</span>
<span class="Identifier">mBoolToStr</span><span class="Other">,</span> <span class="Identifier">mCStrToStr</span><span class="Other">,</span> <span class="Identifier">mStrToStr</span><span class="Other">,</span> <span class="Identifier">mEnumToStr</span><span class="Other">,</span> <span class="Identifier">mAnd</span><span class="Other">,</span> <span class="Identifier">mOr</span><span class="Other">,</span> <span class="Identifier">mImplies</span><span class="Other">,</span> <span class="Identifier">mIff</span><span class="Other">,</span>
<span class="Identifier">mExists</span><span class="Other">,</span> <span class="Identifier">mForall</span><span class="Other">,</span> <span class="Identifier">mOld</span><span class="Other">,</span> <span class="Identifier">mEqStr</span><span class="Other">,</span> <span class="Identifier">mLeStr</span><span class="Other">,</span> <span class="Identifier">mLtStr</span><span class="Other">,</span> <span class="Identifier">mEqSet</span><span class="Other">,</span> <span class="Identifier">mLeSet</span><span class="Other">,</span> <span class="Identifier">mLtSet</span><span class="Other">,</span>
<span class="Identifier">mMulSet</span><span class="Other">,</span> <span class="Identifier">mPlusSet</span><span class="Other">,</span> <span class="Identifier">mMinusSet</span><span class="Other">,</span> <span class="Identifier">mXorSet</span><span class="Other">,</span> <span class="Identifier">mConStrStr</span><span class="Other">,</span> <span class="Identifier">mSlice</span><span class="Other">,</span> <span class="Identifier">mDotDot</span><span class="Other">,</span> <span class="Identifier">mFields</span><span class="Other">,</span>
<span class="Identifier">mFieldPairs</span><span class="Other">,</span> <span class="Identifier">mOmpParFor</span><span class="Other">,</span> <span class="Identifier">mAppendStrCh</span><span class="Other">,</span> <span class="Identifier">mAppendStrStr</span><span class="Other">,</span> <span class="Identifier">mAppendSeqElem</span><span class="Other">,</span> <span class="Identifier">mInSet</span><span class="Other">,</span>
<span class="Identifier">mRepr</span><span class="Other">,</span> <span class="Identifier">mExit</span><span class="Other">,</span> <span class="Identifier">mSetLengthStr</span><span class="Other">,</span> <span class="Identifier">mSetLengthSeq</span><span class="Other">,</span> <span class="Identifier">mSetLengthSeqUninit</span><span class="Other">,</span> <span class="Identifier">mIsPartOf</span><span class="Other">,</span>
<span class="Identifier">mAstToStr</span><span class="Other">,</span> <span class="Identifier">mParallel</span><span class="Other">,</span> <span class="Identifier">mSwap</span><span class="Other">,</span> <span class="Identifier">mIsNil</span><span class="Other">,</span> <span class="Identifier">mArrToSeq</span><span class="Other">,</span> <span class="Identifier">mOpenArrayToSeq</span><span class="Other">,</span> <span class="Identifier">mNewString</span><span class="Other">,</span>
<span class="Identifier">mNewStringOfCap</span><span class="Other">,</span> <span class="Identifier">mParseBiggestFloat</span><span class="Other">,</span> <span class="Identifier">mMove</span><span class="Other">,</span> <span class="Identifier">mEnsureMove</span><span class="Other">,</span> <span class="Identifier">mWasMoved</span><span class="Other">,</span> <span class="Identifier">mDup</span><span class="Other">,</span>
<span class="Identifier">mDestroy</span><span class="Other">,</span> <span class="Identifier">mTrace</span><span class="Other">,</span> <span class="Identifier">mDefault</span><span class="Other">,</span> <span class="Identifier">mUnown</span><span class="Other">,</span> <span class="Identifier">mFinished</span><span class="Other">,</span> <span class="Identifier">mIsolate</span><span class="Other">,</span> <span class="Identifier">mAccessEnv</span><span class="Other">,</span>
<span class="Identifier">mAccessTypeField</span><span class="Other">,</span> <span class="Identifier">mArray</span><span class="Other">,</span> <span class="Identifier">mOpenArray</span><span class="Other">,</span> <span class="Identifier">mRange</span><span class="Other">,</span> <span class="Identifier">mSet</span><span class="Other">,</span> <span class="Identifier">mSeq</span><span class="Other">,</span> <span class="Identifier">mVarargs</span><span class="Other">,</span> <span class="Identifier">mRef</span><span class="Other">,</span>
<span class="Identifier">mPtr</span><span class="Other">,</span> <span class="Identifier">mVar</span><span class="Other">,</span> <span class="Identifier">mDistinct</span><span class="Other">,</span> <span class="Identifier">mVoid</span><span class="Other">,</span> <span class="Identifier">mTuple</span><span class="Other">,</span> <span class="Identifier">mOrdinal</span><span class="Other">,</span> <span class="Identifier">mIterableType</span><span class="Other">,</span> <span class="Identifier">mInt</span><span class="Other">,</span> <span class="Identifier">mInt8</span><span class="Other">,</span>
<span class="Identifier">mInt16</span><span class="Other">,</span> <span class="Identifier">mInt32</span><span class="Other">,</span> <span class="Identifier">mInt64</span><span class="Other">,</span> <span class="Identifier">mUInt</span><span class="Other">,</span> <span class="Identifier">mUInt8</span><span class="Other">,</span> <span class="Identifier">mUInt16</span><span class="Other">,</span> <span class="Identifier">mUInt32</span><span class="Other">,</span> <span class="Identifier">mUInt64</span><span class="Other">,</span> <span class="Identifier">mFloat</span><span class="Other">,</span>
<span class="Identifier">mFloat32</span><span class="Other">,</span> <span class="Identifier">mFloat64</span><span class="Other">,</span> <span class="Identifier">mFloat128</span><span class="Other">,</span> <span class="Identifier">mBool</span><span class="Other">,</span> <span class="Identifier">mChar</span><span class="Other">,</span> <span class="Identifier">mString</span><span class="Other">,</span> <span class="Identifier">mCstring</span><span class="Other">,</span> <span class="Identifier">mPointer</span><span class="Other">,</span>
<span class="Identifier">mNil</span><span class="Other">,</span> <span class="Identifier">mExpr</span><span class="Other">,</span> <span class="Identifier">mStmt</span><span class="Other">,</span> <span class="Identifier">mTypeDesc</span><span class="Other">,</span> <span class="Identifier">mVoidType</span><span class="Other">,</span> <span class="Identifier">mPNimrodNode</span><span class="Other">,</span> <span class="Identifier">mSpawn</span><span class="Other">,</span> <span class="Identifier">mDeepCopy</span><span class="Other">,</span>
<span class="Identifier">mIsMainModule</span><span class="Other">,</span> <span class="Identifier">mCompileDate</span><span class="Other">,</span> <span class="Identifier">mCompileTime</span><span class="Other">,</span> <span class="Identifier">mProcCall</span><span class="Other">,</span> <span class="Identifier">mCpuEndian</span><span class="Other">,</span> <span class="Identifier">mHostOS</span><span class="Other">,</span>
<span class="Identifier">mHostCPU</span><span class="Other">,</span> <span class="Identifier">mBuildOS</span><span class="Other">,</span> <span class="Identifier">mBuildCPU</span><span class="Other">,</span> <span class="Identifier">mAppType</span><span class="Other">,</span> <span class="Identifier">mCompileOption</span><span class="Other">,</span> <span class="Identifier">mCompileOptionArg</span><span class="Other">,</span>
<span class="Identifier">mNLen</span><span class="Other">,</span> <span class="Identifier">mNChild</span><span class="Other">,</span> <span class="Identifier">mNSetChild</span><span class="Other">,</span> <span class="Identifier">mNAdd</span><span class="Other">,</span> <span class="Identifier">mNAddMultiple</span><span class="Other">,</span> <span class="Identifier">mNDel</span><span class="Other">,</span> <span class="Identifier">mNKind</span><span class="Other">,</span> <span class="Identifier">mNSymKind</span><span class="Other">,</span>
<span class="Identifier">mNccValue</span><span class="Other">,</span> <span class="Identifier">mNccInc</span><span class="Other">,</span> <span class="Identifier">mNcsAdd</span><span class="Other">,</span> <span class="Identifier">mNcsIncl</span><span class="Other">,</span> <span class="Identifier">mNcsLen</span><span class="Other">,</span> <span class="Identifier">mNcsAt</span><span class="Other">,</span> <span class="Identifier">mNctPut</span><span class="Other">,</span> <span class="Identifier">mNctLen</span><span class="Other">,</span>
<span class="Identifier">mNctGet</span><span class="Other">,</span> <span class="Identifier">mNctHasNext</span><span class="Other">,</span> <span class="Identifier">mNctNext</span><span class="Other">,</span> <span class="Identifier">mNIntVal</span><span class="Other">,</span> <span class="Identifier">mNFloatVal</span><span class="Other">,</span> <span class="Identifier">mNSymbol</span><span class="Other">,</span> <span class="Identifier">mNIdent</span><span class="Other">,</span>
<span class="Identifier">mNGetType</span><span class="Other">,</span> <span class="Identifier">mNStrVal</span><span class="Other">,</span> <span class="Identifier">mNSetIntVal</span><span class="Other">,</span> <span class="Identifier">mNSetFloatVal</span><span class="Other">,</span> <span class="Identifier">mNSetSymbol</span><span class="Other">,</span> <span class="Identifier">mNSetIdent</span><span class="Other">,</span>
<span class="Identifier">mNSetStrVal</span><span class="Other">,</span> <span class="Identifier">mNLineInfo</span><span class="Other">,</span> <span class="Identifier">mNNewNimNode</span><span class="Other">,</span> <span class="Identifier">mNCopyNimNode</span><span class="Other">,</span> <span class="Identifier">mNCopyNimTree</span><span class="Other">,</span>
<span class="Identifier">mStrToIdent</span><span class="Other">,</span> <span class="Identifier">mNSigHash</span><span class="Other">,</span> <span class="Identifier">mNSizeOf</span><span class="Other">,</span> <span class="Identifier">mNBindSym</span><span class="Other">,</span> <span class="Identifier">mNCallSite</span><span class="Other">,</span> <span class="Identifier">mEqIdent</span><span class="Other">,</span>
<span class="Identifier">mEqNimrodNode</span><span class="Other">,</span> <span class="Identifier">mSameNodeType</span><span class="Other">,</span> <span class="Identifier">mGetImpl</span><span class="Other">,</span> <span class="Identifier">mNGenSym</span><span class="Other">,</span> <span class="Identifier">mNHint</span><span class="Other">,</span> <span class="Identifier">mNWarning</span><span class="Other">,</span> <span class="Identifier">mNError</span><span class="Other">,</span>
<span class="Identifier">mInstantiationInfo</span><span class="Other">,</span> <span class="Identifier">mGetTypeInfo</span><span class="Other">,</span> <span class="Identifier">mGetTypeInfoV2</span><span class="Other">,</span> <span class="Identifier">mNimvm</span><span class="Other">,</span> <span class="Identifier">mIntDefine</span><span class="Other">,</span>
<span class="Identifier">mStrDefine</span><span class="Other">,</span> <span class="Identifier">mBoolDefine</span><span class="Other">,</span> <span class="Identifier">mGenericDefine</span><span class="Other">,</span> <span class="Identifier">mRunnableExamples</span><span class="Other">,</span> <span class="Identifier">mException</span><span class="Other">,</span>
<span class="Identifier">mBuiltinType</span><span class="Other">,</span> <span class="Identifier">mSymOwner</span><span class="Other">,</span> <span class="Identifier">mUncheckedArray</span><span class="Other">,</span> <span class="Identifier">mGetImplTransf</span><span class="Other">,</span>
<span class="Identifier">mSymIsInstantiationOf</span><span class="Other">,</span> <span class="Identifier">mNodeId</span><span class="Other">,</span> <span class="Identifier">mPrivateAccess</span><span class="Other">,</span> <span class="Identifier">mZeroDefault</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L460" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L460" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNode">
<dt><pre><a href="astdef.html#TNode"><span class="Identifier">TNode</span></a> {.<span class="Identifier">final</span><span class="Other">,</span> <span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">useNodeIds</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">id</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">typField</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a>
<span class="Identifier">info</span><span class="Operator">*</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a>
<span class="Keyword">case</span> <span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a>
<span class="Keyword">of</span> <span class="Identifier">nkCharLit</span> <span class="Operator">..</span> <span class="Identifier">nkUInt64Lit</span><span class="Other">:</span>
<span class="Identifier">intVal</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span>
<span class="Keyword">of</span> <span class="Identifier">nkFloatLit</span> <span class="Operator">..</span> <span class="Identifier">nkFloat128Lit</span><span class="Other">:</span>
<span class="Identifier">floatVal</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestFloat</span>
<span class="Keyword">of</span> <span class="Identifier">nkStrLit</span> <span class="Operator">..</span> <span class="Identifier">nkTripleStrLit</span><span class="Other">:</span>
<span class="Identifier">strVal</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Keyword">of</span> <span class="Identifier">nkSym</span><span class="Other">:</span>
<span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Keyword">of</span> <span class="Identifier">nkIdent</span><span class="Other">:</span>
<span class="Identifier">ident</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a>
<span class="Keyword">else</span><span class="Other">:</span>
<span class="Identifier">sons</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TNodeSeq"><span class="Identifier">TNodeSeq</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimsuggest</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">endInfo</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">TLineInfo</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L593" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L593" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeFlag">
<dt><pre><a href="astdef.html#TNodeFlag"><span class="Identifier">TNodeFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">nfNone</span><span class="Other">,</span> <span class="Identifier">nfBase2</span><span class="Other">,</span> <span class="Identifier">nfBase8</span><span class="Other">,</span> <span class="Identifier">nfBase16</span><span class="Other">,</span> <span class="Identifier">nfAllConst</span><span class="Other">,</span> <span class="Identifier">nfTransf</span><span class="Other">,</span> <span class="Identifier">nfNoRewrite</span><span class="Other">,</span> <span class="Identifier">nfSem</span><span class="Other">,</span>
<span class="Identifier">nfLL</span><span class="Other">,</span> <span class="Identifier">nfDotField</span><span class="Other">,</span> <span class="Identifier">nfDotSetter</span><span class="Other">,</span> <span class="Identifier">nfExplicitCall</span><span class="Other">,</span> <span class="Identifier">nfExprCall</span><span class="Other">,</span> <span class="Identifier">nfIsRef</span><span class="Other">,</span> <span class="Identifier">nfIsPtr</span><span class="Other">,</span>
<span class="Identifier">nfPreventCg</span><span class="Other">,</span> <span class="Identifier">nfBlockArg</span><span class="Other">,</span> <span class="Identifier">nfFromTemplate</span><span class="Other">,</span> <span class="Identifier">nfDefaultParam</span><span class="Other">,</span> <span class="Identifier">nfDefaultRefsParam</span><span class="Other">,</span>
<span class="Identifier">nfExecuteOnReload</span><span class="Other">,</span> <span class="Identifier">nfLastRead</span><span class="Other">,</span> <span class="Identifier">nfFirstWrite</span><span class="Other">,</span> <span class="Identifier">nfHasComment</span><span class="Other">,</span>
<span class="Identifier">nfSkipFieldChecking</span><span class="Other">,</span> <span class="Identifier">nfDisabledOpenSym</span><span class="Other">,</span> <span class="Identifier">nfLazyType</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L294" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L294" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeFlags">
<dt><pre><a href="astdef.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TNodeFlag"><span class="Identifier">TNodeFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L328" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L328" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeKinds">
<dt><pre><a href="astdef.html#TNodeKinds"><span class="Identifier">TNodeKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodePair">
<dt><pre><a href="astdef.html#TNodePair"><span class="Identifier">TNodePair</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Hash</span>
<span class="Identifier">key</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">val</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L818" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L818" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodePairSeq">
<dt><pre><a href="astdef.html#TNodePairSeq"><span class="Identifier">TNodePairSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#TNodePair"><span class="Identifier">TNodePair</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L823" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L823" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeSeq">
<dt><pre><a href="astdef.html#TNodeSeq"><span class="Identifier">TNodeSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L590" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L590" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeTable">
<dt><pre><a href="astdef.html#TNodeTable"><span class="Identifier">TNodeTable</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">counter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TNodePairSeq"><span class="Identifier">TNodePairSeq</span></a>
<span class="Identifier">ignoreTypes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L824" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L824" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TObjectSeq">
<dt><pre><a href="astdef.html#TObjectSeq"><span class="Identifier">TObjectSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">RootRef</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L830" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L830" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TObjectSet">
<dt><pre><a href="astdef.html#TObjectSet"><span class="Identifier">TObjectSet</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">counter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TObjectSeq"><span class="Identifier">TObjectSeq</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L831" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L831" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TPair">
<dt><pre><a href="astdef.html#TPair"><span class="Identifier">TPair</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">key</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">RootRef</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L804" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L804" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TPairSeq">
<dt><pre><a href="astdef.html#TPairSeq"><span class="Identifier">TPairSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#TPair"><span class="Identifier">TPair</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L807" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L807" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TScope">
<dt><pre><a href="astdef.html#TScope"><span class="Identifier">TScope</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">depthLevel</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">symbols</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a>
<span class="Identifier">parent</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PScope"><span class="Identifier">PScope</span></a>
<span class="Identifier">allowPrivateAccess</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
<span class="Identifier">optionStackLen</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L685" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L685" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TStorageLoc">
<dt><pre><a href="astdef.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">OnUnknown</span><span class="Other">,</span> <span class="Identifier">OnStatic</span><span class="Other">,</span> <span class="Identifier">OnStack</span><span class="Other">,</span> <span class="Identifier">OnHeap</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L645" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L645" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TStrTable">
<dt><pre><a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">counter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L615" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L615" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSym">
<dt><pre><a href="astdef.html#TSym"><span class="Identifier">TSym</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">itemId</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Identifier">state</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemState"><span class="Identifier">ItemState</span></a>
<span class="Keyword">case</span> <span class="Identifier">kindImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a>
<span class="Keyword">of</span> <span class="Identifier">routineKinds</span><span class="Other">:</span>
<span class="Identifier">gcUnsafetyReasonImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">transformedBodyImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Keyword">of</span> <span class="Identifier">skLet</span><span class="Other">,</span> <span class="Identifier">skVar</span><span class="Other">,</span> <span class="Identifier">skField</span><span class="Other">,</span> <span class="Identifier">skForVar</span><span class="Other">:</span>
<span class="Identifier">guardImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">bitsizeImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">alignmentImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Keyword">else</span><span class="Other">:</span>
<span class="Keyword">nil</span>
<span class="Identifier">magicImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TMagic"><span class="Identifier">TMagic</span></a>
<span class="Identifier">typImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a>
<span class="Identifier">infoImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimsuggest</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">endInfoImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">TLineInfo</span>
<span class="Identifier">hasUserSpecifiedTypeImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">ownerFieldImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">flagsImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TSymFlags"><span class="Identifier">TSymFlags</span></a>
<span class="Identifier">astImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">optionsImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="options.html#TOptions"><span class="Identifier">TOptions</span></a>
<span class="Identifier">positionImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">offsetImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">disamb</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">locImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TLoc"><span class="Identifier">TLoc</span></a>
<span class="Identifier">annexImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PLib"><span class="Identifier">PLib</span></a>
<span class="Keyword">when</span> <span class="Identifier">hasFFI</span><span class="Other">:</span>
<span class="Identifier">cnameImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">constraintImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">instantiatedFromImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimsuggest</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">allUsagesImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">TLineInfo</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L700" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L700" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymFlag">
<dt><pre><a href="astdef.html#TSymFlag"><span class="Identifier">TSymFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">sfUsed</span><span class="Other">,</span> <span class="Identifier">sfExported</span><span class="Other">,</span> <span class="Identifier">sfFromGeneric</span><span class="Other">,</span> <span class="Identifier">sfGlobal</span><span class="Other">,</span> <span class="Identifier">sfForward</span><span class="Other">,</span> <span class="Identifier">sfWasForwarded</span><span class="Other">,</span>
<span class="Identifier">sfImportc</span><span class="Other">,</span> <span class="Identifier">sfExportc</span><span class="Other">,</span> <span class="Identifier">sfMangleCpp</span><span class="Other">,</span> <span class="Identifier">sfVolatile</span><span class="Other">,</span> <span class="Identifier">sfRegister</span><span class="Other">,</span> <span class="Identifier">sfPure</span><span class="Other">,</span>
<span class="Identifier">sfNoSideEffect</span><span class="Other">,</span> <span class="Identifier">sfSideEffect</span><span class="Other">,</span> <span class="Identifier">sfMainModule</span><span class="Other">,</span> <span class="Identifier">sfSystemModule</span><span class="Other">,</span> <span class="Identifier">sfNoReturn</span><span class="Other">,</span>
<span class="Identifier">sfAddrTaken</span><span class="Other">,</span> <span class="Identifier">sfCompilerProc</span><span class="Other">,</span> <span class="Identifier">sfEscapes</span><span class="Other">,</span> <span class="Identifier">sfDiscriminant</span><span class="Other">,</span> <span class="Identifier">sfRequiresInit</span><span class="Other">,</span>
<span class="Identifier">sfDeprecated</span><span class="Other">,</span> <span class="Identifier">sfExplain</span><span class="Other">,</span> <span class="Identifier">sfError</span><span class="Other">,</span> <span class="Identifier">sfShadowed</span><span class="Other">,</span> <span class="Identifier">sfThread</span><span class="Other">,</span> <span class="Identifier">sfCppNonPod</span><span class="Other">,</span>
<span class="Identifier">sfCompileTime</span><span class="Other">,</span> <span class="Identifier">sfConstructor</span><span class="Other">,</span> <span class="Identifier">sfDispatcher</span><span class="Other">,</span> <span class="Identifier">sfBorrow</span><span class="Other">,</span> <span class="Identifier">sfInfixCall</span><span class="Other">,</span>
<span class="Identifier">sfNamedParamCall</span><span class="Other">,</span> <span class="Identifier">sfDiscardable</span><span class="Other">,</span> <span class="Identifier">sfOverridden</span><span class="Other">,</span> <span class="Identifier">sfCallsite</span><span class="Other">,</span> <span class="Identifier">sfGenSym</span><span class="Other">,</span>
<span class="Identifier">sfNonReloadable</span><span class="Other">,</span> <span class="Identifier">sfGeneratedOp</span><span class="Other">,</span> <span class="Identifier">sfTemplateParam</span><span class="Other">,</span> <span class="Identifier">sfCursor</span><span class="Other">,</span>
<span class="Identifier">sfInjectDestructors</span><span class="Other">,</span> <span class="Identifier">sfNeverRaises</span><span class="Other">,</span> <span class="Identifier">sfSystemRaisesDefect</span><span class="Other">,</span>
<span class="Identifier">sfUsedInFinallyOrExcept</span><span class="Other">,</span> <span class="Identifier">sfSingleUsedTemp</span><span class="Other">,</span> <span class="Identifier">sfNoalias</span><span class="Other">,</span> <span class="Identifier">sfEffectsDelayed</span><span class="Other">,</span>
<span class="Identifier">sfGeneratedType</span><span class="Other">,</span> <span class="Identifier">sfVirtual</span><span class="Other">,</span> <span class="Identifier">sfByCopy</span><span class="Other">,</span> <span class="Identifier">sfMember</span><span class="Other">,</span> <span class="Identifier">sfCodegenDecl</span><span class="Other">,</span> <span class="Identifier">sfWasGenSym</span><span class="Other">,</span>
<span class="Identifier">sfForceLift</span><span class="Other">,</span> <span class="Identifier">sfDirty</span><span class="Other">,</span> <span class="Identifier">sfCustomPragma</span><span class="Other">,</span> <span class="Identifier">sfBase</span><span class="Other">,</span> <span class="Identifier">sfGoto</span><span class="Other">,</span> <span class="Identifier">sfAnon</span><span class="Other">,</span> <span class="Identifier">sfAllUntyped</span><span class="Other">,</span>
<span class="Identifier">sfTemplateRedefinition</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymFlags">
<dt><pre><a href="astdef.html#TSymFlags"><span class="Identifier">TSymFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TSymFlag"><span class="Identifier">TSymFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L141" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymKind">
<dt><pre><a href="astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">skUnknown</span><span class="Other">,</span> <span class="Identifier">skConditional</span><span class="Other">,</span> <span class="Identifier">skDynLib</span><span class="Other">,</span> <span class="Identifier">skParam</span><span class="Other">,</span> <span class="Identifier">skGenericParam</span><span class="Other">,</span> <span class="Identifier">skTemp</span><span class="Other">,</span> <span class="Identifier">skModule</span><span class="Other">,</span>
<span class="Identifier">skType</span><span class="Other">,</span> <span class="Identifier">skVar</span><span class="Other">,</span> <span class="Identifier">skLet</span><span class="Other">,</span> <span class="Identifier">skConst</span><span class="Other">,</span> <span class="Identifier">skResult</span><span class="Other">,</span> <span class="Identifier">skProc</span><span class="Other">,</span> <span class="Identifier">skFunc</span><span class="Other">,</span> <span class="Identifier">skMethod</span><span class="Other">,</span> <span class="Identifier">skIterator</span><span class="Other">,</span>
<span class="Identifier">skConverter</span><span class="Other">,</span> <span class="Identifier">skMacro</span><span class="Other">,</span> <span class="Identifier">skTemplate</span><span class="Other">,</span> <span class="Identifier">skField</span><span class="Other">,</span> <span class="Identifier">skEnumField</span><span class="Other">,</span> <span class="Identifier">skForVar</span><span class="Other">,</span> <span class="Identifier">skLabel</span><span class="Other">,</span>
<span class="Identifier">skStub</span><span class="Other">,</span> <span class="Identifier">skPackage</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L404" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L404" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymKinds">
<dt><pre><a href="astdef.html#TSymKinds"><span class="Identifier">TSymKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L436" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L436" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TType">
<dt><pre><a href="astdef.html#TType"><span class="Identifier">TType</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">itemId</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a>
<span class="Identifier">state</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemState"><span class="Identifier">ItemState</span></a>
<span class="Identifier">uniqueId</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Identifier">callConvImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a>
<span class="Identifier">flagsImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TTypeFlags"><span class="Identifier">TTypeFlags</span></a>
<span class="Identifier">sonsImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TTypeSeq"><span class="Identifier">TTypeSeq</span></a>
<span class="Identifier">nImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">ownerFieldImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">symImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">sizeImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span>
<span class="Identifier">alignImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">paddingAtEndImpl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">locImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#TLoc"><span class="Identifier">TLoc</span></a>
<span class="Identifier">typeInstImpl</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L771" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L771" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeAttachedOp">
<dt><pre><a href="astdef.html#TTypeAttachedOp"><span class="Identifier">TTypeAttachedOp</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">attachedWasMoved</span><span class="Other">,</span> <span class="Identifier">attachedDestructor</span><span class="Other">,</span> <span class="Identifier">attachedAsgn</span><span class="Other">,</span> <span class="Identifier">attachedDup</span><span class="Other">,</span> <span class="Identifier">attachedSink</span><span class="Other">,</span>
<span class="Identifier">attachedTrace</span><span class="Other">,</span> <span class="Identifier">attachedDeepCopy</span></pre></dt>
<dd>
as usual, order is important here
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L762" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L762" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeFlag">
<dt><pre><a href="astdef.html#TTypeFlag"><span class="Identifier">TTypeFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">tfVarargs</span><span class="Other">,</span> <span class="Identifier">tfNoSideEffect</span><span class="Other">,</span> <span class="Identifier">tfFinal</span><span class="Other">,</span> <span class="Identifier">tfInheritable</span><span class="Other">,</span> <span class="Identifier">tfHasOwned</span><span class="Other">,</span> <span class="Identifier">tfEnumHasHoles</span><span class="Other">,</span>
<span class="Identifier">tfShallow</span><span class="Other">,</span> <span class="Identifier">tfThread</span><span class="Other">,</span> <span class="Identifier">tfFromGeneric</span><span class="Other">,</span> <span class="Identifier">tfUnresolved</span><span class="Other">,</span> <span class="Identifier">tfResolved</span><span class="Other">,</span> <span class="Identifier">tfRetType</span><span class="Other">,</span>
<span class="Identifier">tfCapturesEnv</span><span class="Other">,</span> <span class="Identifier">tfByCopy</span><span class="Other">,</span> <span class="Identifier">tfByRef</span><span class="Other">,</span> <span class="Identifier">tfIterator</span><span class="Other">,</span> <span class="Identifier">tfPartial</span><span class="Other">,</span> <span class="Identifier">tfNotNil</span><span class="Other">,</span>
<span class="Identifier">tfRequiresInit</span><span class="Other">,</span> <span class="Identifier">tfNeedsFullInit</span><span class="Other">,</span> <span class="Identifier">tfVarIsPtr</span><span class="Other">,</span> <span class="Identifier">tfHasMeta</span><span class="Other">,</span> <span class="Identifier">tfHasGCedMem</span><span class="Other">,</span>
<span class="Identifier">tfPacked</span><span class="Other">,</span> <span class="Identifier">tfHasStatic</span><span class="Other">,</span> <span class="Identifier">tfGenericTypeParam</span><span class="Other">,</span> <span class="Identifier">tfImplicitTypeParam</span><span class="Other">,</span>
<span class="Identifier">tfInferrableStatic</span><span class="Other">,</span> <span class="Identifier">tfConceptMatchedTypeSym</span><span class="Other">,</span> <span class="Identifier">tfExplicit</span><span class="Other">,</span> <span class="Identifier">tfWildcard</span><span class="Other">,</span>
<span class="Identifier">tfHasAsgn</span><span class="Other">,</span> <span class="Identifier">tfBorrowDot</span><span class="Other">,</span> <span class="Identifier">tfTriggersCompileTime</span><span class="Other">,</span> <span class="Identifier">tfRefsAnonObj</span><span class="Other">,</span> <span class="Identifier">tfCovariant</span><span class="Other">,</span>
<span class="Identifier">tfWeakCovariant</span><span class="Other">,</span> <span class="Identifier">tfContravariant</span><span class="Other">,</span> <span class="Identifier">tfCheckedForDestructor</span><span class="Other">,</span> <span class="Identifier">tfAcyclic</span><span class="Other">,</span>
<span class="Identifier">tfIncompleteStruct</span><span class="Other">,</span> <span class="Identifier">tfCompleteStruct</span><span class="Other">,</span> <span class="Identifier">tfExplicitCallConv</span><span class="Other">,</span> <span class="Identifier">tfIsConstructor</span><span class="Other">,</span>
<span class="Identifier">tfEffectSystemWorkaround</span><span class="Other">,</span> <span class="Identifier">tfIsOutParam</span><span class="Other">,</span> <span class="Identifier">tfSendable</span><span class="Other">,</span> <span class="Identifier">tfImplicitStatic</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L329" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L329" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeFlags">
<dt><pre><a href="astdef.html#TTypeFlags"><span class="Identifier">TTypeFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TTypeFlag"><span class="Identifier">TTypeFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L402" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L402" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeKind">
<dt><pre><a href="astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">tyNone</span><span class="Other">,</span> <span class="Identifier">tyBool</span><span class="Other">,</span> <span class="Identifier">tyChar</span><span class="Other">,</span> <span class="Identifier">tyEmpty</span><span class="Other">,</span> <span class="Identifier">tyAlias</span><span class="Other">,</span> <span class="Identifier">tyNil</span><span class="Other">,</span> <span class="Identifier">tyUntyped</span><span class="Other">,</span> <span class="Identifier">tyTyped</span><span class="Other">,</span>
<span class="Identifier">tyTypeDesc</span><span class="Other">,</span> <span class="Identifier">tyGenericInvocation</span><span class="Other">,</span> <span class="Identifier">tyGenericBody</span><span class="Other">,</span> <span class="Identifier">tyGenericInst</span><span class="Other">,</span> <span class="Identifier">tyGenericParam</span><span class="Other">,</span>
<span class="Identifier">tyDistinct</span><span class="Other">,</span> <span class="Identifier">tyEnum</span><span class="Other">,</span> <span class="Identifier">tyOrdinal</span><span class="Other">,</span> <span class="Identifier">tyArray</span><span class="Other">,</span> <span class="Identifier">tyObject</span><span class="Other">,</span> <span class="Identifier">tyTuple</span><span class="Other">,</span> <span class="Identifier">tySet</span><span class="Other">,</span> <span class="Identifier">tyRange</span><span class="Other">,</span>
<span class="Identifier">tyPtr</span><span class="Other">,</span> <span class="Identifier">tyRef</span><span class="Other">,</span> <span class="Identifier">tyVar</span><span class="Other">,</span> <span class="Identifier">tySequence</span><span class="Other">,</span> <span class="Identifier">tyProc</span><span class="Other">,</span> <span class="Identifier">tyPointer</span><span class="Other">,</span> <span class="Identifier">tyOpenArray</span><span class="Other">,</span> <span class="Identifier">tyString</span><span class="Other">,</span>
<span class="Identifier">tyCstring</span><span class="Other">,</span> <span class="Identifier">tyForward</span><span class="Other">,</span> <span class="Identifier">tyInt</span><span class="Other">,</span> <span class="Identifier">tyInt8</span><span class="Other">,</span> <span class="Identifier">tyInt16</span><span class="Other">,</span> <span class="Identifier">tyInt32</span><span class="Other">,</span> <span class="Identifier">tyInt64</span><span class="Other">,</span> <span class="Identifier">tyFloat</span><span class="Other">,</span>
<span class="Identifier">tyFloat32</span><span class="Other">,</span> <span class="Identifier">tyFloat64</span><span class="Other">,</span> <span class="Identifier">tyFloat128</span><span class="Other">,</span> <span class="Identifier">tyUInt</span><span class="Other">,</span> <span class="Identifier">tyUInt8</span><span class="Other">,</span> <span class="Identifier">tyUInt16</span><span class="Other">,</span> <span class="Identifier">tyUInt32</span><span class="Other">,</span>
<span class="Identifier">tyUInt64</span><span class="Other">,</span> <span class="Identifier">tyOwned</span><span class="Other">,</span> <span class="Identifier">tySink</span><span class="Other">,</span> <span class="Identifier">tyLent</span><span class="Other">,</span> <span class="Identifier">tyVarargs</span><span class="Other">,</span> <span class="Identifier">tyUncheckedArray</span><span class="Other">,</span> <span class="Identifier">tyError</span><span class="Other">,</span>
<span class="Identifier">tyBuiltInTypeClass</span><span class="Other">,</span> <span class="Identifier">tyUserTypeClass</span><span class="Other">,</span> <span class="Identifier">tyUserTypeClassInst</span><span class="Other">,</span>
<span class="Identifier">tyCompositeTypeClass</span><span class="Other">,</span> <span class="Identifier">tyInferred</span><span class="Other">,</span> <span class="Identifier">tyAnd</span><span class="Other">,</span> <span class="Identifier">tyOr</span><span class="Other">,</span> <span class="Identifier">tyNot</span><span class="Other">,</span> <span class="Identifier">tyAnything</span><span class="Other">,</span> <span class="Identifier">tyStatic</span><span class="Other">,</span>
<span class="Identifier">tyFromExpr</span><span class="Other">,</span> <span class="Identifier">tyConcept</span><span class="Other">,</span> <span class="Identifier">tyVoid</span><span class="Other">,</span> <span class="Identifier">tyIterable</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L175" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L175" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeKinds">
<dt><pre><a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L292" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L292" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeSeq">
<dt><pre><a href="astdef.html#TTypeSeq"><span class="Identifier">TTypeSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L760" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L760" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</dl>
</div>
<div class="section" id="8">
<h1><a class="toc-backref" href="#8">Vars</a></h1>
<dl class="item">
<div id="eqTypeFlags">
<dt><pre><a href="astdef.html#eqTypeFlags"><span class="Identifier">eqTypeFlags</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="Identifier">tfIterator</span><span class="Other">,</span> <span class="Identifier">tfNotNil</span><span class="Other">,</span> <span class="Identifier">tfVarIsPtr</span><span class="Other">,</span> <a href="astdef.html#tfGcSafe"><span class="Identifier">tfGcSafe</span></a><span class="Other">,</span> <span class="Identifier">tfNoSideEffect</span><span class="Other">,</span>
<span class="Identifier">tfIsOutParam</span><span class="Other">}</span></pre></dt>
<dd>
type flags that are essential for type equality. This is now a variable because for emulation of version:1.0 we might exclude {tfGcSafe, tfNoSideEffect}.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L454" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L454" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</dl>
</div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="abstractInst">
<dt><pre><a href="astdef.html#abstractInst"><span class="Identifier">abstractInst</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyGenericInst</span><span class="Other">,</span> <span class="DecNumber">tyDistinct</span><span class="Other">,</span> <span class="DecNumber">tyOrdinal</span><span class="Other">,</span> <span class="DecNumber">tyTypeDesc</span><span class="Other">,</span> <span class="DecNumber">tyAlias</span><span class="Other">,</span>
<span class="DecNumber">tyInferred</span><span class="Other">,</span> <span class="DecNumber">tySink</span><span class="Other">,</span> <span class="DecNumber">tyOwned</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="abstractVarRange">
<dt><pre><a href="astdef.html#abstractVarRange"><span class="Identifier">abstractVarRange</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyGenericInst</span><span class="Other">,</span> <span class="DecNumber">tyRange</span><span class="Other">,</span> <span class="DecNumber">tyVar</span><span class="Other">,</span> <span class="DecNumber">tyDistinct</span><span class="Other">,</span> <span class="DecNumber">tyOrdinal</span><span class="Other">,</span>
<span class="DecNumber">tyTypeDesc</span><span class="Other">,</span> <span class="DecNumber">tyAlias</span><span class="Other">,</span> <span class="DecNumber">tyInferred</span><span class="Other">,</span> <span class="DecNumber">tySink</span><span class="Other">,</span> <span class="DecNumber">tyOwned</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L286" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L286" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="bodyPos">
<dt><pre><a href="astdef.html#bodyPos"><span class="Identifier">bodyPos</span></a> <span class="Other">=</span> <span class="DecNumber">6</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L877" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L877" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="callableDefs">
<dt><pre><a href="astdef.html#callableDefs"><span class="Identifier">callableDefs</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkLambda</span><span class="Other">..</span><span class="DecNumber">nkDo</span><span class="Other">,</span> <span class="DecNumber">nkProcDef</span><span class="Other">..</span><span class="DecNumber">nkIteratorDef</span><span class="Other">,</span> <span class="DecNumber">nkFuncDef</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L893" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L893" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ConcreteTypes">
<dt><pre><a href="astdef.html#ConcreteTypes"><span class="Identifier">ConcreteTypes</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyBool</span><span class="Other">,</span> <span class="DecNumber">tyChar</span><span class="Other">,</span> <span class="DecNumber">tyEnum</span><span class="Other">,</span> <span class="DecNumber">tyArray</span><span class="Other">,</span> <span class="DecNumber">tyObject</span><span class="Other">,</span> <span class="DecNumber">tySet</span><span class="Other">,</span>
<span class="DecNumber">tyTuple</span><span class="Other">,</span> <span class="DecNumber">tyRange</span><span class="Other">,</span> <span class="DecNumber">tyPtr</span><span class="Other">,</span> <span class="DecNumber">tyRef</span><span class="Other">,</span> <span class="DecNumber">tyVar</span><span class="Other">,</span> <span class="DecNumber">tyLent</span><span class="Other">,</span>
<span class="DecNumber">tySequence</span><span class="Other">,</span> <span class="DecNumber">tyProc</span><span class="Other">,</span> <span class="DecNumber">tyPointer</span><span class="Other">,</span> <span class="DecNumber">tyOpenArray</span><span class="Other">,</span>
<span class="DecNumber">tyString</span><span class="Other">,</span> <span class="DecNumber">tyCstring</span><span class="Other">,</span> <span class="DecNumber">tyInt</span><span class="Other">..</span><span class="DecNumber">tyInt64</span><span class="Other">,</span>
<span class="DecNumber">tyFloat</span><span class="Other">..</span><span class="DecNumber">tyFloat128</span><span class="Other">,</span> <span class="DecNumber">tyUInt</span><span class="Other">..</span><span class="DecNumber">tyUInt64</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L850" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L850" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ConstantDataTypes">
<dt><pre><a href="astdef.html#ConstantDataTypes"><span class="Identifier">ConstantDataTypes</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyArray</span><span class="Other">,</span> <span class="DecNumber">tySet</span><span class="Other">,</span> <span class="DecNumber">tyTuple</span><span class="Other">,</span> <span class="DecNumber">tySequence</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L859" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L859" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ctfeWhitelist">
<dt><pre><a href="astdef.html#ctfeWhitelist"><span class="Identifier">ctfeWhitelist</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">mNone</span><span class="Other">,</span> <span class="DecNumber">mSucc</span><span class="Other">,</span> <span class="DecNumber">mPred</span><span class="Other">,</span> <span class="DecNumber">mInc</span><span class="Other">,</span> <span class="DecNumber">mDec</span><span class="Other">,</span> <span class="DecNumber">mOrd</span><span class="Other">,</span> <span class="DecNumber">mLengthOpenArray</span><span class="Other">,</span>
<span class="DecNumber">mLengthStr</span><span class="Other">,</span> <span class="DecNumber">mLengthArray</span><span class="Other">,</span> <span class="DecNumber">mLengthSeq</span><span class="Other">,</span> <span class="DecNumber">mArrGet</span><span class="Other">,</span> <span class="DecNumber">mArrPut</span><span class="Other">,</span> <span class="DecNumber">mAsgn</span><span class="Other">,</span>
<span class="DecNumber">mDestroy</span><span class="Other">,</span> <span class="DecNumber">mIncl</span><span class="Other">,</span> <span class="DecNumber">mExcl</span><span class="Other">,</span> <span class="DecNumber">mCard</span><span class="Other">,</span> <span class="DecNumber">mChr</span><span class="Other">,</span> <span class="DecNumber">mAddI</span><span class="Other">,</span> <span class="DecNumber">mSubI</span><span class="Other">,</span> <span class="DecNumber">mMulI</span><span class="Other">,</span>
<span class="DecNumber">mDivI</span><span class="Other">,</span> <span class="DecNumber">mModI</span><span class="Other">,</span> <span class="DecNumber">mAddF64</span><span class="Other">,</span> <span class="DecNumber">mSubF64</span><span class="Other">,</span> <span class="DecNumber">mMulF64</span><span class="Other">,</span> <span class="DecNumber">mDivF64</span><span class="Other">,</span> <span class="DecNumber">mShrI</span><span class="Other">,</span> <span class="DecNumber">mShlI</span><span class="Other">,</span>
<span class="DecNumber">mBitandI</span><span class="Other">,</span> <span class="DecNumber">mBitorI</span><span class="Other">,</span> <span class="DecNumber">mBitxorI</span><span class="Other">,</span> <span class="DecNumber">mMinI</span><span class="Other">,</span> <span class="DecNumber">mMaxI</span><span class="Other">,</span> <span class="DecNumber">mAddU</span><span class="Other">,</span> <span class="DecNumber">mSubU</span><span class="Other">,</span> <span class="DecNumber">mMulU</span><span class="Other">,</span>
<span class="DecNumber">mDivU</span><span class="Other">,</span> <span class="DecNumber">mModU</span><span class="Other">,</span> <span class="DecNumber">mEqI</span><span class="Other">,</span> <span class="DecNumber">mLeI</span><span class="Other">,</span> <span class="DecNumber">mLtI</span><span class="Other">,</span> <span class="DecNumber">mEqF64</span><span class="Other">,</span> <span class="DecNumber">mLeF64</span><span class="Other">,</span> <span class="DecNumber">mLtF64</span><span class="Other">,</span> <span class="DecNumber">mLeU</span><span class="Other">,</span>
<span class="DecNumber">mLtU</span><span class="Other">,</span> <span class="DecNumber">mEqEnum</span><span class="Other">,</span> <span class="DecNumber">mLeEnum</span><span class="Other">,</span> <span class="DecNumber">mLtEnum</span><span class="Other">,</span> <span class="DecNumber">mEqCh</span><span class="Other">,</span> <span class="DecNumber">mLeCh</span><span class="Other">,</span> <span class="DecNumber">mLtCh</span><span class="Other">,</span> <span class="DecNumber">mEqB</span><span class="Other">,</span>
<span class="DecNumber">mLeB</span><span class="Other">,</span> <span class="DecNumber">mLtB</span><span class="Other">,</span> <span class="DecNumber">mEqRef</span><span class="Other">,</span> <span class="DecNumber">mEqProc</span><span class="Other">,</span> <span class="DecNumber">mLePtr</span><span class="Other">,</span> <span class="DecNumber">mLtPtr</span><span class="Other">,</span> <span class="DecNumber">mEqCString</span><span class="Other">,</span> <span class="DecNumber">mXor</span><span class="Other">,</span>
<span class="DecNumber">mUnaryMinusI</span><span class="Other">,</span> <span class="DecNumber">mUnaryMinusI64</span><span class="Other">,</span> <span class="DecNumber">mAbsI</span><span class="Other">,</span> <span class="DecNumber">mNot</span><span class="Other">,</span> <span class="DecNumber">mUnaryPlusI</span><span class="Other">,</span>
<span class="DecNumber">mBitnotI</span><span class="Other">,</span> <span class="DecNumber">mUnaryPlusF64</span><span class="Other">,</span> <span class="DecNumber">mUnaryMinusF64</span><span class="Other">,</span> <span class="DecNumber">mCharToStr</span><span class="Other">,</span>
<span class="DecNumber">mBoolToStr</span><span class="Other">,</span> <span class="DecNumber">mCStrToStr</span><span class="Other">,</span> <span class="DecNumber">mStrToStr</span><span class="Other">,</span> <span class="DecNumber">mEnumToStr</span><span class="Other">,</span> <span class="DecNumber">mAnd</span><span class="Other">,</span> <span class="DecNumber">mOr</span><span class="Other">,</span>
<span class="DecNumber">mEqStr</span><span class="Other">,</span> <span class="DecNumber">mLeStr</span><span class="Other">,</span> <span class="DecNumber">mLtStr</span><span class="Other">,</span> <span class="DecNumber">mEqSet</span><span class="Other">,</span> <span class="DecNumber">mLeSet</span><span class="Other">,</span> <span class="DecNumber">mLtSet</span><span class="Other">,</span> <span class="DecNumber">mMulSet</span><span class="Other">,</span>
<span class="DecNumber">mPlusSet</span><span class="Other">,</span> <span class="DecNumber">mMinusSet</span><span class="Other">,</span> <span class="DecNumber">mXorSet</span><span class="Other">,</span> <span class="DecNumber">mConStrStr</span><span class="Other">,</span> <span class="DecNumber">mAppendStrCh</span><span class="Other">,</span>
<span class="DecNumber">mAppendStrStr</span><span class="Other">,</span> <span class="DecNumber">mAppendSeqElem</span><span class="Other">,</span> <span class="DecNumber">mInSet</span><span class="Other">,</span> <span class="DecNumber">mRepr</span><span class="Other">,</span> <span class="DecNumber">mOpenArrayToSeq</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L540" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L540" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="declarativeDefs">
<dt><pre><a href="astdef.html#declarativeDefs"><span class="Identifier">declarativeDefs</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkProcDef</span><span class="Other">,</span> <span class="DecNumber">nkFuncDef</span><span class="Other">,</span> <span class="DecNumber">nkMethodDef</span><span class="Other">,</span> <span class="DecNumber">nkIteratorDef</span><span class="Other">,</span>
<span class="DecNumber">nkConverterDef</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L890" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L890" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="defaultAlignment">
<dt><pre><a href="astdef.html#defaultAlignment"><span class="Identifier">defaultAlignment</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L903" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L903" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="defaultOffset">
<dt><pre><a href="astdef.html#defaultOffset"><span class="Identifier">defaultOffset</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L904" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L904" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="defaultSize">
<dt><pre><a href="astdef.html#defaultSize"><span class="Identifier">defaultSize</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L902" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L902" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="dispatcherPos">
<dt><pre><a href="astdef.html#dispatcherPos"><span class="Identifier">dispatcherPos</span></a> <span class="Other">=</span> <span class="DecNumber">8</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L879" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L879" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="effectListLen">
<dt><pre><a href="astdef.html#effectListLen"><span class="Identifier">effectListLen</span></a> <span class="Other">=</span> <span class="DecNumber">6</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ensuresEffects">
<dt><pre><a href="astdef.html#ensuresEffects"><span class="Identifier">ensuresEffects</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L166" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L166" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="exceptionEffects">
<dt><pre><a href="astdef.html#exceptionEffects"><span class="Identifier">exceptionEffects</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ExportableSymKinds">
<dt><pre><a href="astdef.html#ExportableSymKinds"><span class="Identifier">ExportableSymKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">skType</span><span class="Other">..</span><span class="DecNumber">skConst</span><span class="Other">,</span> <span class="DecNumber">skProc</span><span class="Other">..</span><span class="DecNumber">skTemplate</span><span class="Other">,</span> <span class="DecNumber">skEnumField</span><span class="Other">,</span> <span class="DecNumber">skStub</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L441" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L441" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="forbiddenEffects">
<dt><pre><a href="astdef.html#forbiddenEffects"><span class="Identifier">forbiddenEffects</span></a> <span class="Other">=</span> <span class="DecNumber">5</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GcTypeKinds">
<dt><pre><a href="astdef.html#GcTypeKinds"><span class="Identifier">GcTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyRef</span><span class="Other">,</span> <span class="DecNumber">tySequence</span><span class="Other">,</span> <span class="DecNumber">tyString</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L277" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L277" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="generatedMagics">
<dt><pre><a href="astdef.html#generatedMagics"><span class="Identifier">generatedMagics</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">mNone</span><span class="Other">,</span> <span class="DecNumber">mIsolate</span><span class="Other">,</span> <span class="DecNumber">mFinished</span><span class="Other">,</span> <span class="DecNumber">mOpenArrayToSeq</span><span class="Other">}</span></pre></dt>
<dd>
magics that are generated as normal procs in the backend
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L568" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L568" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genericParamsPos">
<dt><pre><a href="astdef.html#genericParamsPos"><span class="Identifier">genericParamsPos</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L873" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L873" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GenericTypes">
<dt><pre><a href="astdef.html#GenericTypes"><span class="Identifier">GenericTypes</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyGenericInvocation</span><span class="Other">,</span> <span class="DecNumber">tyGenericBody</span><span class="Other">,</span> <span class="DecNumber">tyGenericParam</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L843" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L843" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GrowthFactor">
<dt><pre><a href="astdef.html#GrowthFactor"><span class="Identifier">GrowthFactor</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1061" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1061" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="IntegralTypes">
<dt><pre><a href="astdef.html#IntegralTypes"><span class="Identifier">IntegralTypes</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyBool</span><span class="Other">,</span> <span class="DecNumber">tyChar</span><span class="Other">,</span> <span class="DecNumber">tyEnum</span><span class="Other">,</span> <span class="DecNumber">tyInt</span><span class="Other">..</span><span class="DecNumber">tyInt64</span><span class="Other">,</span> <span class="DecNumber">tyFloat</span><span class="Other">..</span><span class="DecNumber">tyFloat128</span><span class="Other">,</span>
<span class="DecNumber">tyUInt</span><span class="Other">..</span><span class="DecNumber">tyUInt64</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L857" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L857" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="miscPos">
<dt><pre><a href="astdef.html#miscPos"><span class="Identifier">miscPos</span></a> <span class="Other">=</span> <span class="DecNumber">5</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L876" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L876" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="namePos">
<dt><pre><a href="astdef.html#namePos"><span class="Identifier">namePos</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L871" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L871" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nfAllFieldsSet">
<dt><pre><a href="astdef.html#nfAllFieldsSet"><span class="Identifier">nfAllFieldsSet</span></a> <span class="Other">=</span> <span class="DecNumber">nfBase2</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L881" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L881" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NilableTypes">
<dt><pre><a href="astdef.html#NilableTypes"><span class="Identifier">NilableTypes</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyPointer</span><span class="Other">,</span> <span class="DecNumber">tyCstring</span><span class="Other">,</span> <span class="DecNumber">tyRef</span><span class="Other">,</span> <span class="DecNumber">tyPtr</span><span class="Other">,</span> <span class="DecNumber">tyProc</span><span class="Other">,</span> <span class="DecNumber">tyError</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L861" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L861" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkEffectList">
<dt><pre><a href="astdef.html#nkEffectList"><span class="Identifier">nkEffectList</span></a> <span class="Other">=</span> <span class="DecNumber">nkArgList</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L162" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L162" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkFloatLiterals">
<dt><pre><a href="astdef.html#nkFloatLiterals"><span class="Identifier">nkFloatLiterals</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkFloatLit</span><span class="Other">..</span><span class="DecNumber">nkFloat128Lit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L888" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L888" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkIdentKinds">
<dt><pre><a href="astdef.html#nkIdentKinds"><span class="Identifier">nkIdentKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkIdent</span><span class="Other">,</span> <span class="DecNumber">nkSym</span><span class="Other">,</span> <span class="DecNumber">nkAccQuoted</span><span class="Other">,</span> <span class="DecNumber">nkOpenSymChoice</span><span class="Other">,</span> <span class="DecNumber">nkClosedSymChoice</span><span class="Other">,</span>
<span class="DecNumber">nkOpenSym</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L883" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L883" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLambdaKinds">
<dt><pre><a href="astdef.html#nkLambdaKinds"><span class="Identifier">nkLambdaKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkLambda</span><span class="Other">,</span> <span class="DecNumber">nkDo</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L889" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L889" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLastBlockStmts">
<dt><pre><a href="astdef.html#nkLastBlockStmts"><span class="Identifier">nkLastBlockStmts</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkRaiseStmt</span><span class="Other">,</span> <span class="DecNumber">nkReturnStmt</span><span class="Other">,</span> <span class="DecNumber">nkBreakStmt</span><span class="Other">,</span> <span class="DecNumber">nkContinueStmt</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L171" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLiterals">
<dt><pre><a href="astdef.html#nkLiterals"><span class="Identifier">nkLiterals</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkCharLit</span><span class="Other">..</span><span class="DecNumber">nkTripleStrLit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L887" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L887" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkPragmaCallKinds">
<dt><pre><a href="astdef.html#nkPragmaCallKinds"><span class="Identifier">nkPragmaCallKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkExprColonExpr</span><span class="Other">,</span> <span class="DecNumber">nkCall</span><span class="Other">,</span> <span class="DecNumber">nkCallStrLit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L886" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L886" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkStrKinds">
<dt><pre><a href="astdef.html#nkStrKinds"><span class="Identifier">nkStrKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkStrLit</span><span class="Other">..</span><span class="DecNumber">nkTripleStrLit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L896" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L896" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkSymChoices">
<dt><pre><a href="astdef.html#nkSymChoices"><span class="Identifier">nkSymChoices</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkClosedSymChoice</span><span class="Other">,</span> <span class="DecNumber">nkOpenSymChoice</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L895" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L895" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkWhen">
<dt><pre><a href="astdef.html#nkWhen"><span class="Identifier">nkWhen</span></a> <span class="Other">=</span> <span class="DecNumber">nkWhenStmt</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L160" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L160" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkWhenExpr">
<dt><pre><a href="astdef.html#nkWhenExpr"><span class="Identifier">nkWhenExpr</span></a> <span class="Other">=</span> <span class="DecNumber">nkWhenStmt</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L161" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L161" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="OverloadableSyms">
<dt><pre><a href="astdef.html#OverloadableSyms"><span class="Identifier">OverloadableSyms</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">skProc</span><span class="Other">,</span> <span class="DecNumber">skFunc</span><span class="Other">,</span> <span class="DecNumber">skMethod</span><span class="Other">,</span> <span class="DecNumber">skIterator</span><span class="Other">,</span> <span class="DecNumber">skConverter</span><span class="Other">,</span> <span class="DecNumber">skModule</span><span class="Other">,</span>
<span class="DecNumber">skTemplate</span><span class="Other">,</span> <span class="DecNumber">skMacro</span><span class="Other">,</span> <span class="DecNumber">skEnumField</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L840" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L840" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="paramsPos">
<dt><pre><a href="astdef.html#paramsPos"><span class="Identifier">paramsPos</span></a> <span class="Other">=</span> <span class="DecNumber">3</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L874" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L874" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="patternPos">
<dt><pre><a href="astdef.html#patternPos"><span class="Identifier">patternPos</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L872" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L872" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PersistentNodeFlags">
<dt><pre><a href="astdef.html#PersistentNodeFlags"><span class="Identifier">PersistentNodeFlags</span></a><span class="Other">:</span> <a href="astdef.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nfBase2</span><span class="Other">,</span> <span class="DecNumber">nfBase8</span><span class="Other">,</span> <span class="DecNumber">nfBase16</span><span class="Other">,</span> <span class="DecNumber">nfDotSetter</span><span class="Other">,</span>
<span class="DecNumber">nfDotField</span><span class="Other">,</span> <span class="DecNumber">nfIsRef</span><span class="Other">,</span> <span class="DecNumber">nfIsPtr</span><span class="Other">,</span> <span class="DecNumber">nfPreventCg</span><span class="Other">,</span>
<span class="DecNumber">nfLL</span><span class="Other">,</span> <span class="DecNumber">nfFromTemplate</span><span class="Other">,</span> <span class="DecNumber">nfDefaultRefsParam</span><span class="Other">,</span>
<span class="DecNumber">nfExecuteOnReload</span><span class="Other">,</span> <span class="DecNumber">nfLastRead</span><span class="Other">,</span> <span class="DecNumber">nfFirstWrite</span><span class="Other">,</span>
<span class="DecNumber">nfSkipFieldChecking</span><span class="Other">,</span> <span class="DecNumber">nfDisabledOpenSym</span><span class="Other">,</span>
<span class="DecNumber">nfLazyType</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L864" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L864" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="pragmasEffects">
<dt><pre><a href="astdef.html#pragmasEffects"><span class="Identifier">pragmasEffects</span></a> <span class="Other">=</span> <span class="DecNumber">4</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L168" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L168" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="pragmasPos">
<dt><pre><a href="astdef.html#pragmasPos"><span class="Identifier">pragmasPos</span></a> <span class="Other">=</span> <span class="DecNumber">4</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L875" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L875" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="procDefs">
<dt><pre><a href="astdef.html#procDefs"><span class="Identifier">procDefs</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkLambda</span><span class="Other">..</span><span class="DecNumber">nkDo</span><span class="Other">,</span> <span class="DecNumber">nkProcDef</span><span class="Other">..</span><span class="DecNumber">nkConverterDef</span><span class="Other">,</span> <span class="DecNumber">nkIteratorDef</span><span class="Other">,</span> <span class="DecNumber">nkFuncDef</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L892" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L892" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PtrLikeKinds">
<dt><pre><a href="astdef.html#PtrLikeKinds"><span class="Identifier">PtrLikeKinds</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyPointer</span><span class="Other">,</span> <span class="DecNumber">tyPtr</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L863" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L863" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="requiresEffects">
<dt><pre><a href="astdef.html#requiresEffects"><span class="Identifier">requiresEffects</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L165" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L165" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="resultPos">
<dt><pre><a href="astdef.html#resultPos"><span class="Identifier">resultPos</span></a> <span class="Other">=</span> <span class="DecNumber">7</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L878" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L878" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="routineDefs">
<dt><pre><a href="astdef.html#routineDefs"><span class="Identifier">routineDefs</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkProcDef</span><span class="Other">..</span><span class="DecNumber">nkIteratorDef</span><span class="Other">,</span> <span class="DecNumber">nkFuncDef</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L891" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L891" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="routineKinds">
<dt><pre><a href="astdef.html#routineKinds"><span class="Identifier">routineKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">skProc</span><span class="Other">,</span> <span class="DecNumber">skFunc</span><span class="Other">,</span> <span class="DecNumber">skMethod</span><span class="Other">,</span> <span class="DecNumber">skIterator</span><span class="Other">,</span> <span class="DecNumber">skConverter</span><span class="Other">,</span> <span class="DecNumber">skMacro</span><span class="Other">,</span>
<span class="DecNumber">skTemplate</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L439" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L439" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCompileToCpp">
<dt><pre><a href="astdef.html#sfCompileToCpp"><span class="Identifier">sfCompileToCpp</span></a> <span class="Other">=</span> <span class="DecNumber">sfInfixCall</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L151" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCompileToObjc">
<dt><pre><a href="astdef.html#sfCompileToObjc"><span class="Identifier">sfCompileToObjc</span></a> <span class="Other">=</span> <span class="DecNumber">sfNamedParamCall</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L152" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L152" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCppMember">
<dt><pre><a href="astdef.html#sfCppMember"><span class="Identifier">sfCppMember</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">sfVirtual</span><span class="Other">,</span> <span class="DecNumber">sfMember</span><span class="Other">,</span> <span class="DecNumber">sfConstructor</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L156" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L156" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfExperimental">
<dt><pre><a href="astdef.html#sfExperimental"><span class="Identifier">sfExperimental</span></a> <span class="Other">=</span> <span class="DecNumber">sfOverridden</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L153" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L153" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfNoForward">
<dt><pre><a href="astdef.html#sfNoForward"><span class="Identifier">sfNoForward</span></a> <span class="Other">=</span> <span class="DecNumber">sfRegister</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfNoInit">
<dt><pre><a href="astdef.html#sfNoInit"><span class="Identifier">sfNoInit</span></a> <span class="Other">=</span> <span class="DecNumber">sfMainModule</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L144" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L144" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfReorder">
<dt><pre><a href="astdef.html#sfReorder"><span class="Identifier">sfReorder</span></a> <span class="Other">=</span> <span class="DecNumber">sfForward</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L148" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfWrittenTo">
<dt><pre><a href="astdef.html#sfWrittenTo"><span class="Identifier">sfWrittenTo</span></a> <span class="Other">=</span> <span class="DecNumber">sfBorrow</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L154" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L154" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skError">
<dt><pre><a href="astdef.html#skError"><span class="Identifier">skError</span></a> <span class="Other">=</span> <span class="DecNumber">skUnknown</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L451" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L451" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skLocalVars">
<dt><pre><a href="astdef.html#skLocalVars"><span class="Identifier">skLocalVars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">skVar</span><span class="Other">,</span> <span class="DecNumber">skLet</span><span class="Other">,</span> <span class="DecNumber">skForVar</span><span class="Other">,</span> <span class="DecNumber">skParam</span><span class="Other">,</span> <span class="DecNumber">skResult</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L898" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L898" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skProcKinds">
<dt><pre><a href="astdef.html#skProcKinds"><span class="Identifier">skProcKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">skProc</span><span class="Other">,</span> <span class="DecNumber">skFunc</span><span class="Other">,</span> <span class="DecNumber">skTemplate</span><span class="Other">,</span> <span class="DecNumber">skMacro</span><span class="Other">,</span> <span class="DecNumber">skIterator</span><span class="Other">,</span> <span class="DecNumber">skMethod</span><span class="Other">,</span>
<span class="DecNumber">skConverter</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L899" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L899" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="StartSize">
<dt><pre><a href="astdef.html#StartSize"><span class="Identifier">StartSize</span></a> <span class="Other">=</span> <span class="DecNumber">8</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1062" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1062" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="StructuralEquivTypes">
<dt><pre><a href="astdef.html#StructuralEquivTypes"><span class="Identifier">StructuralEquivTypes</span></a><span class="Other">:</span> <a href="astdef.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyNil</span><span class="Other">,</span> <span class="DecNumber">tyTuple</span><span class="Other">,</span> <span class="DecNumber">tyArray</span><span class="Other">,</span> <span class="DecNumber">tySet</span><span class="Other">,</span> <span class="DecNumber">tyRange</span><span class="Other">,</span>
<span class="DecNumber">tyPtr</span><span class="Other">,</span> <span class="DecNumber">tyRef</span><span class="Other">,</span> <span class="DecNumber">tyVar</span><span class="Other">,</span> <span class="DecNumber">tyLent</span><span class="Other">,</span> <span class="DecNumber">tySequence</span><span class="Other">,</span>
<span class="DecNumber">tyProc</span><span class="Other">,</span> <span class="DecNumber">tyOpenArray</span><span class="Other">,</span> <span class="DecNumber">tyVarargs</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L846" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L846" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tagEffects">
<dt><pre><a href="astdef.html#tagEffects"><span class="Identifier">tagEffects</span></a> <span class="Other">=</span> <span class="DecNumber">3</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L167" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L167" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfGcSafe">
<dt><pre><a href="astdef.html#tfGcSafe"><span class="Identifier">tfGcSafe</span></a> <span class="Other">=</span> <span class="DecNumber">tfThread</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L444" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L444" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfGenericHasDestructor">
<dt><pre><a href="astdef.html#tfGenericHasDestructor"><span class="Identifier">tfGenericHasDestructor</span></a> <span class="Other">=</span> <span class="DecNumber">tfExplicitCallConv</span></pre></dt>
<dd>
tyGenericBody where an instance has a generated destructor
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L449" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L449" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfNonConstExpr">
<dt><pre><a href="astdef.html#tfNonConstExpr"><span class="Identifier">tfNonConstExpr</span></a> <span class="Other">=</span> <span class="DecNumber">tfExplicitCallConv</span></pre></dt>
<dd>
tyFromExpr where the expression shouldn't be evaluated as a static value
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L447" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L447" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfObjHasKids">
<dt><pre><a href="astdef.html#tfObjHasKids"><span class="Identifier">tfObjHasKids</span></a> <span class="Other">=</span> <span class="DecNumber">tfEnumHasHoles</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L445" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L445" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfReturnsNew">
<dt><pre><a href="astdef.html#tfReturnsNew"><span class="Identifier">tfReturnsNew</span></a> <span class="Other">=</span> <span class="DecNumber">tfInheritable</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L446" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L446" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfUnion">
<dt><pre><a href="astdef.html#tfUnion"><span class="Identifier">tfUnion</span></a> <span class="Other">=</span> <span class="DecNumber">tfNoSideEffect</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L443" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L443" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyMetaTypes">
<dt><pre><a href="astdef.html#tyMetaTypes"><span class="Identifier">tyMetaTypes</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyUntyped</span><span class="Other">,</span> <span class="DecNumber">tyTypeDesc</span><span class="Other">,</span> <span class="DecNumber">tyGenericParam</span><span class="Other">,</span>
<span class="DecNumber">tyBuiltInTypeClass</span><span class="Other">..</span><span class="DecNumber">tyCompositeTypeClass</span><span class="Other">,</span> <span class="DecNumber">tyAnd</span><span class="Other">..</span><span class="DecNumber">tyAnything</span><span class="Other">,</span>
<span class="DecNumber">tyConcept</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L283" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L283" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyPureObject">
<dt><pre><a href="astdef.html#tyPureObject"><span class="Identifier">tyPureObject</span></a> <span class="Other">=</span> <span class="DecNumber">tyTuple</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L276" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L276" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyTypeClasses">
<dt><pre><a href="astdef.html#tyTypeClasses"><span class="Identifier">tyTypeClasses</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyBuiltInTypeClass</span><span class="Other">,</span> <span class="DecNumber">tyCompositeTypeClass</span><span class="Other">,</span> <span class="DecNumber">tyUserTypeClass</span><span class="Other">,</span>
<span class="DecNumber">tyUserTypeClassInst</span><span class="Other">,</span> <span class="DecNumber">tyConcept</span><span class="Other">,</span> <span class="DecNumber">tyAnd</span><span class="Other">,</span> <span class="DecNumber">tyOr</span><span class="Other">,</span> <span class="DecNumber">tyNot</span><span class="Other">,</span> <span class="DecNumber">tyAnything</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyUserTypeClasses">
<dt><pre><a href="astdef.html#tyUserTypeClasses"><span class="Identifier">tyUserTypeClasses</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">tyUserTypeClass</span><span class="Other">,</span> <span class="DecNumber">tyUserTypeClassInst</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L284" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L284" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="$-procs-all">
<div id="$,ItemId">
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CItemId"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L576" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L576" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="==-procs-all">
<div id="==,ItemId,ItemId">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CItemId%2CItemId"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L579" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L579" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="forcePartial-procs-all">
<div id="forcePartial,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#forcePartial%2CPSym"><span class="Identifier">forcePartial</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Resets all impl-fields to their default values and sets state to Partial. This is useful for creating a stub symbol that can be lazily loaded later. The fields itemId, name, and disamb are preserved.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1009" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1009" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="forcePartial,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#forcePartial%2CPType"><span class="Identifier">forcePartial</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
Resets all impl-fields to their default values and sets state to Partial. This is useful for creating a stub type that can be lazily loaded later. The fields itemId, kind, uniqueId are preserved.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1043" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1043" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hash-procs-all">
<div id="hash,ItemId">
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CItemId"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L582" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L582" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="len-procs-all">
<div id="len,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CPNode"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L907" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L907" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="mustRehash-procs-all">
<div id="mustRehash,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#mustRehash%2Cint%2Cint"><span class="Identifier">mustRehash</span></a><span class="Other">(</span><span class="Identifier">length</span><span class="Other">,</span> <span class="Identifier">counter</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1070" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1070" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newIdentNode-procs-all">
<div id="newIdentNode,PIdent,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newIdentNode%2CPIdent%2CTLineInfo"><span class="Identifier">newIdentNode</span></a><span class="Other">(</span><span class="Identifier">ident</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L974" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L974" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newNode-procs-all">
<div id="newNode,TNodeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#newNode%2CTNodeKind"><span class="Identifier">newNode</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
new node with unknown line info, no type, and no children
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L946" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L946" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newNode,TNodeKind,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newNode%2CTNodeKind%2CTLineInfo"><span class="Identifier">newNode</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
new node with line info, no type, and no children
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L969" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L969" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newNodeI-procs-all">
<div id="newNodeI,TNodeKind,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newNodeI%2CTNodeKind%2CTLineInfo"><span class="Identifier">newNodeI</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
new node with line info, no type, and no children
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L951" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L951" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newNodeI,TNodeKind,TLineInfo,int">
<dt><pre><span class="Keyword">proc</span> <a href="#newNodeI%2CTNodeKind%2CTLineInfo%2Cint"><span class="Identifier">newNodeI</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">children</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
new node with line info, type, and children
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L956" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L956" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newNodeIT-procs-all">
<div id="newNodeIT,TNodeKind,TLineInfo,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#newNodeIT%2CTNodeKind%2CTLineInfo%2CPType"><span class="Identifier">newNodeIT</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
new node with line info, type, and no children
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L963" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L963" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newStrNode-procs-all">
<div id="newStrNode,TNodeKind,string">
<dt><pre><span class="Keyword">proc</span> <a href="#newStrNode%2CTNodeKind%2Cstring"><span class="Identifier">newStrNode</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">strVal</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L985" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L985" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newStrNode,string,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newStrNode%2Cstring%2CTLineInfo"><span class="Identifier">newStrNode</span></a><span class="Other">(</span><span class="Identifier">strVal</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L989" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L989" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newSymNode-procs-all">
<div id="newSymNode,PSym,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newSymNode%2CPSym%2CTLineInfo"><span class="Identifier">newSymNode</span></a><span class="Other">(</span><span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L979" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L979" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nextTry-procs-all">
<div id="nextTry,Hash,Hash">
<dt><pre><span class="Keyword">proc</span> <a href="#nextTry%2CHash%2CHash"><span class="Identifier">nextTry</span></a><span class="Other">(</span><span class="Identifier">h</span><span class="Other">,</span> <span class="Identifier">maxHash</span><span class="Other">:</span> <span class="Identifier">Hash</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1064" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1064" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="safeLen-procs-all">
<div id="safeLen,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#safeLen%2CPNode"><span class="Identifier">safeLen</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
works even for leaves.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L910" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L910" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strTableAdd-procs-all">
<div id="strTableAdd,TStrTable,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#strTableAdd%2CTStrTable%2CPSym"><span class="Identifier">strTableAdd</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1113" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1113" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strTableContains-procs-all">
<div id="strTableContains,TStrTable,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#strTableContains%2CTStrTable%2CPSym"><span class="Identifier">strTableContains</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1074" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1074" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strTableGet-procs-all">
<div id="strTableGet,TStrTable,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#strTableGet%2CTStrTable%2CPIdent"><span class="Identifier">strTableGet</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strTableIncl-procs-all">
<div id="strTableIncl,TStrTable,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#strTableIncl%2CTStrTable%2CPSym"><span class="Identifier">strTableIncl</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">onConflictKeepOld</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.
<span class="Identifier">discardable</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1151" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strTableInclReportConflict-procs-all">
<div id="strTableInclReportConflict,TStrTable,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#strTableInclReportConflict%2CTStrTable%2CPSym"><span class="Identifier">strTableInclReportConflict</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
<span class="Identifier">onConflictKeepOld</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1118" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1118" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="symTabReplace-procs-all">
<div id="symTabReplace,TStrTable,PSym,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#symTabReplace%2CTStrTable%2CPSym%2CPSym"><span class="Identifier">symTabReplace</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">prevSym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">newSym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L1103" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L1103" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="15">
<h1><a class="toc-backref" href="#15">Iterators</a></h1>
<dl class="item">
<div id="items-iterators-all">
<div id="items.i,PNode">
<dt><pre><span class="Keyword">iterator</span> <a href="#items.i%2CPNode"><span class="Identifier">items</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L921" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L921" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="18">
<h1><a class="toc-backref" href="#18">Templates</a></h1>
<dl class="item">
<div id="[]-templates-all">
<div id="[].t,PNode,BackwardsIndex">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D.t%2CPNode%2CBackwardsIndex"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">BackwardsIndex</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L918" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L918" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[].t,PNode,int">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D.t%2CPNode%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L915" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L915" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="[]=-templates-all">
<div id="[]=.t,PNode,BackwardsIndex,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D%3D.t%2CPNode%2CBackwardsIndex%2CPNode"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">BackwardsIndex</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L919" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L919" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[]=.t,PNode,int,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D%3D.t%2CPNode%2Cint%2CPNode"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astdef.nim#L916" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astdef.nim#L916" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="19">
<h1><a class="toc-backref" href="#19">Exports</a></h1>
<dl class="item">
<a href="int128.html#bitxor,Int128,Int128"><span class="Identifier">bitxor</span></a>, <a href="int128.html#maskUInt16,Int128"><span class="Identifier">maskUInt16</span></a>, <a href="int128.html#<,Int128,BiggestInt"><span class="Identifier">&lt;</span></a>, <a href="int128.html#<=,BiggestInt,Int128"><span class="Identifier">&lt;=</span></a>, <a href="int128.html#high.t,typedesc[Int128]"><span class="Identifier">high</span></a>, <a href="int128.html#castToUInt64,Int128"><span class="Identifier">castToUInt64</span></a>, <a href="int128.html#shr,Int128,int"><span class="Identifier">shr</span></a>, <a href="int128.html#toHex,Int128"><span class="Identifier">toHex</span></a>, <a href="int128.html#==,Int128,Int128"><span class="Identifier">==</span></a>, <a href="int128.html#+,BiggestInt,Int128"><span class="Identifier">+</span></a>, <a href="int128.html#addInt128,string,Int128"><span class="Identifier">addInt128</span></a>, <a href="int128.html#abs,Int128"><span class="Identifier">abs</span></a>, <a href="int128.html#One"><span class="Identifier">One</span></a>, <a href="int128.html#<=,Int128,BiggestInt"><span class="Identifier">&lt;=</span></a>, <a href="int128.html#maskUInt64,Int128"><span class="Identifier">maskUInt64</span></a>, <a href="int128.html#$,Int128"><span class="Identifier">$</span></a>, <a href="int128.html#toUInt8,Int128"><span class="Identifier">toUInt8</span></a>, <a href="int128.html#inc,Int128,uint32"><span class="Identifier">inc</span></a>, <a href="int128.html#<,BiggestInt,Int128"><span class="Identifier">&lt;</span></a>, <a href="int128.html#+=,Int128,Int128"><span class="Identifier">+=</span></a>, <a href="int128.html#maskBytes,Int128,int"><span class="Identifier">maskBytes</span></a>, <a href="int128.html#Ten"><span class="Identifier">Ten</span></a>, <a href="int128.html#-,Int128"><span class="Identifier">-</span></a>, <a href="int128.html#-,Int128,BiggestInt"><span class="Identifier">-</span></a>, <a href="int128.html#*=,Int128,Int128"><span class="Identifier">*=</span></a>, <a href="int128.html#Zero"><span class="Identifier">Zero</span></a>, <a href="int128.html#toInt32,Int128"><span class="Identifier">toInt32</span></a>, <a href="int128.html#==,BiggestInt,Int128"><span class="Identifier">==</span></a>, <a href="int128.html#-=,Int128,Int128"><span class="Identifier">-=</span></a>, <a href="int128.html#toInt64Checked,Int128,int64"><span class="Identifier">toInt64Checked</span></a>, <a href="int128.html#+,Int128,Int128"><span class="Identifier">+</span></a>, <a href="int128.html#toInt8,Int128"><span class="Identifier">toInt8</span></a>, <a href="int128.html#toUInt16,Int128"><span class="Identifier">toUInt16</span></a>, <a href="int128.html#mod,Int128,Int128"><span class="Identifier">mod</span></a>, <a href="int128.html#toInt128,float64"><span class="Identifier">toInt128</span></a>, <a href="int128.html#shl,Int128,int"><span class="Identifier">shl</span></a>, <a href="int128.html#maskUInt32,Int128"><span class="Identifier">maskUInt32</span></a>, <a href="int128.html#toUInt32,Int128"><span class="Identifier">toUInt32</span></a>, <a href="int128.html#fastLog2,Int128"><span class="Identifier">fastLog2</span></a>, <a href="int128.html#toUInt,Int128"><span class="Identifier">toUInt</span></a>, <a href="int128.html#Int128"><span class="Identifier">Int128</span></a>, <a href="int128.html#<,Int128,Int128"><span class="Identifier">&lt;</span></a>, <a href="int128.html#bitor,Int128,Int128"><span class="Identifier">bitor</span></a>, <a href="int128.html#<=,Int128,Int128"><span class="Identifier">&lt;=</span></a>, <a href="int128.html#toFloat64,Int128"><span class="Identifier">toFloat64</span></a>, <a href="int128.html#-,BiggestInt,Int128"><span class="Identifier">-</span></a>, <a href="int128.html#==,Int128,BiggestInt"><span class="Identifier">==</span></a>, <a href="int128.html#parseDecimalInt128,string,int"><span class="Identifier">parseDecimalInt128</span></a>, <a href="int128.html#bitnot,Int128"><span class="Identifier">bitnot</span></a>, <a href="int128.html#toInt64,Int128"><span class="Identifier">toInt64</span></a>, <a href="int128.html#NegOne"><span class="Identifier">NegOne</span></a>, <a href="int128.html#div,Int128,Int128"><span class="Identifier">div</span></a>, <a href="int128.html#+,Int128,BiggestInt"><span class="Identifier">+</span></a>, <a href="int128.html#*,Int128,Int128"><span class="Identifier">*</span></a>, <a href="int128.html#toUInt64,Int128"><span class="Identifier">toUInt64</span></a>, <a href="int128.html#low.t,typedesc[Int128]"><span class="Identifier">low</span></a>, <a href="int128.html#addToHex,string,Int128"><span class="Identifier">addToHex</span></a>, <a href="int128.html#-,Int128,Int128"><span class="Identifier">-</span></a>, <a href="int128.html#maskUInt8,Int128"><span class="Identifier">maskUInt8</span></a>, <a href="int128.html#divMod,Int128,Int128"><span class="Identifier">divMod</span></a>, <a href="int128.html#bitand,Int128,Int128"><span class="Identifier">bitand</span></a>, <a href="int128.html#toInt128,T"><span class="Identifier">toInt128</span></a>, <a href="int128.html#cmp,Int128,Int128"><span class="Identifier">cmp</span></a>, <a href="int128.html#*,Int128,int32"><span class="Identifier">*</span></a>, <a href="int128.html#toInt16,Int128"><span class="Identifier">toInt16</span></a>, <a href="int128.html#toInt,Int128"><span class="Identifier">toInt</span></a>, <a href="int128.html#castToInt64,Int128"><span class="Identifier">castToInt64</span></a>, <a href="nodekinds.html#nkCallKinds"><span class="Identifier">nkCallKinds</span></a>, <a href="nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2025-12-28 15:55:42 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>