Files
Nim/compiler/ast.html
github-actions[bot] c7440eccf2 Deploy to GitHub pages
2025-09-27 04:02:34 +00:00

5738 lines
517 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>ast</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">ast</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="#IdGenerator" title="IdGenerator = ref object
module*: int32
symId*: int32
typeId*: int32
sealed*: bool
disambTable*: CountTable[PIdent]">IdGenerator</a></li>
<li><a class="reference" href="#ItemId" title="ItemId = object
module*: int32
item*: int32">ItemId</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="#SymMapping" title="SymMapping = TIdTable[PSym]">SymMapping</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
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">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
case kind*: TSymKind
of routineKinds:
gcUnsafetyReason*: PSym
transformedBody*: PNode
of skLet, skVar, skField, skForVar:
guard*: PSym
bitsize*: int
alignment*: int
else:
nil
magic*: TMagic
typ*: PType
name*: PIdent
info*: TLineInfo
when defined(nimsuggest):
endInfo*: TLineInfo
hasUserSpecifiedType*: bool
flags*: TSymFlags
ast*: PNode
options*: TOptions
position*: int
offset*: int32
disamb*: int32
loc*: TLoc
annex*: PLib
when hasFFI:
cname*: string
constraint*: PNode
instantiatedFrom*: PSym
when defined(nimsuggest):
allUsages*: 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
callConv*: TCallingConvention
flags*: TTypeFlags
n*: PNode
sym*: PSym
size*: BiggestInt
align*: int16
paddingAtEnd*: int16
loc*: TLoc
typeInst*: PType
uniqueId*: ItemId">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>
<li><a class="reference" href="#TypeMapping" title="TypeMapping = TIdTable[PType]">TypeMapping</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>
<li><a class="reference" href="#ggDebug" title="ggDebug {.deprecated.}: bool">ggDebug</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="#AttachedOpToStr" title="AttachedOpToStr: array[TTypeAttachedOp, string] = [&quot;=wasMoved&quot;, &quot;=destroy&quot;,
&quot;=copy&quot;, &quot;=dup&quot;, &quot;=sink&quot;, &quot;=trace&quot;, &quot;=deepcopy&quot;]">AttachedOpToStr</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="#defaultOffset" title="defaultOffset = -1">defaultOffset</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="#FirstGenericParamAt" title="FirstGenericParamAt = 1">FirstGenericParamAt</a></li>
<li><a class="reference" href="#FirstParamAt" title="FirstParamAt = 1">FirstParamAt</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="#nodesToIgnoreSet" title="nodesToIgnoreSet = {nkNone..nkIdent, nkType..nkNilLit, nkTypeSection, nkProcDef,
nkConverterDef, nkMethodDef, nkIteratorDef, nkMacroDef,
nkTemplateDef, nkLambda, nkDo, nkFuncDef, nkConstSection,
nkConstDef, nkIncludeStmt, nkImportStmt, nkExportStmt,
nkPragma, nkCommentStmt, nkBreakState, nkTypeOfExpr,
nkMixinStmt, nkBindStmt}">nodesToIgnoreSet</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="#PackageModuleId" title="PackageModuleId = -3'i32">PackageModuleId</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}">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%2CPSym" title="`$`(s: PSym): string">`$`(s: PSym): string</a></li>
<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">add
<li><a class="reference" href="#add%2CPNode%2CPNode" title="add(father, son: PNode)">add(father, son: PNode)</a></li>
<li><a class="reference" href="#add%2CPType%2CPType" title="add(father, son: PType)">add(father, son: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">addAllowNil
<li><a class="reference" href="#addAllowNil%2CPNode%2CPNode" title="addAllowNil(father, son: PNode)">addAllowNil(father, son: PNode)</a></li>
<li><a class="reference" href="#addAllowNil%2CPType%2CPType" title="addAllowNil(father, son: PType)">addAllowNil(father, son: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">addParam
<li><a class="reference" href="#addParam%2CPType%2CPSym" title="addParam(procType: PType; param: PSym)">addParam(procType: PType; param: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">addSonNilAllowed
<li><a class="reference" href="#addSonNilAllowed%2CPNode%2CPNode" title="addSonNilAllowed(father, son: PNode)">addSonNilAllowed(father, son: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">appendToModule
<li><a class="reference" href="#appendToModule%2CPSym%2CPNode" title="appendToModule(m: PSym; n: PNode)">appendToModule(m: PSym; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">assignType
<li><a class="reference" href="#assignType%2CPType%2CPType" title="assignType(dest, src: PType)">assignType(dest, src: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">astdef
<li><a class="reference" href="#astdef%2CPSym" title="astdef(s: PSym): PNode">astdef(s: PSym): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">base
<li><a class="reference" href="#base%2CPType" title="base(t: PType): PType">base(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">baseClass
<li><a class="reference" href="#baseClass%2CPType" title="baseClass(n: PType): PType">baseClass(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">canRaise
<li><a class="reference" href="#canRaise%2CPNode" title="canRaise(fn: PNode): bool">canRaise(fn: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">canRaiseConservative
<li><a class="reference" href="#canRaiseConservative%2CPNode" title="canRaiseConservative(fn: PNode): bool">canRaiseConservative(fn: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">comment
<li><a class="reference" href="#comment%2CPNode" title="comment(n: PNode): string">comment(n: PNode): string</a></li>
</ul>
<ul class="simple nested-toc-section">comment=
<li><a class="reference" href="#comment%3D%2CPNode%2Cstring" title="comment=(n: PNode; a: string)">comment=(n: PNode; a: string)</a></li>
</ul>
<ul class="simple nested-toc-section">containsNode
<li><a class="reference" href="#containsNode%2CPNode%2CTNodeKinds" title="containsNode(n: PNode; kinds: TNodeKinds): bool">containsNode(n: PNode; kinds: TNodeKinds): bool</a></li>
</ul>
<ul class="simple nested-toc-section">copyIdTable
<li><a class="reference" href="#copyIdTable%2CTIdTable%5BT%5D%2CTIdTable%5BT%5D" title="copyIdTable[T](dest: var TIdTable[T]; src: TIdTable[T])">copyIdTable[T](dest: var TIdTable[T]; src: TIdTable[T])</a></li>
</ul>
<ul class="simple nested-toc-section">copyNode
<li><a class="reference" href="#copyNode%2CPNode" title="copyNode(src: PNode): PNode">copyNode(src: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">copyObjectSet
<li><a class="reference" href="#copyObjectSet%2CTObjectSet%2CTObjectSet" title="copyObjectSet(dest: var TObjectSet; src: TObjectSet)">copyObjectSet(dest: var TObjectSet; src: TObjectSet)</a></li>
</ul>
<ul class="simple nested-toc-section">copyStrTable
<li><a class="reference" href="#copyStrTable%2CTStrTable%2CTStrTable" title="copyStrTable(dest: var TStrTable; src: TStrTable)">copyStrTable(dest: var TStrTable; src: TStrTable)</a></li>
</ul>
<ul class="simple nested-toc-section">copySym
<li><a class="reference" href="#copySym%2CPSym%2CIdGenerator" title="copySym(s: PSym; idgen: IdGenerator): PSym">copySym(s: PSym; idgen: IdGenerator): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">copyTree
<li><a class="reference" href="#copyTree%2CPNode" title="copyTree(src: PNode): PNode">copyTree(src: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">copyTreeWithoutNode
<li><a class="reference" href="#copyTreeWithoutNode%2CPNode%2CPNode" title="copyTreeWithoutNode(src, skippedNode: PNode): PNode">copyTreeWithoutNode(src, skippedNode: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">copyType
<li><a class="reference" href="#copyType%2CPType%2CIdGenerator%2CPSym" title="copyType(t: PType; idgen: IdGenerator; owner: PSym): PType">copyType(t: PType; idgen: IdGenerator; owner: PSym): PType</a></li>
</ul>
<ul class="simple nested-toc-section">createModuleAlias
<li><a class="reference" href="#createModuleAlias%2CPSym%2CIdGenerator%2CPIdent%2CTLineInfo%2CTOptions" title="createModuleAlias(s: PSym; idgen: IdGenerator; newIdent: PIdent;
info: TLineInfo; options: TOptions): PSym">createModuleAlias(s: PSym; idgen: IdGenerator; newIdent: PIdent;
info: TLineInfo; options: TOptions): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">delSon
<li><a class="reference" href="#delSon%2CPNode%2Cint" title="delSon(father: PNode; idx: int)">delSon(father: PNode; idx: int)</a></li>
</ul>
<ul class="simple nested-toc-section">discardSons
<li><a class="reference" href="#discardSons%2CPNode" title="discardSons(father: PNode)">discardSons(father: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">elementType
<li><a class="reference" href="#elementType%2CPType" title="elementType(n: PType): PType">elementType(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">exactReplica
<li><a class="reference" href="#exactReplica%2CPType" title="exactReplica(t: PType): PType">exactReplica(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">extractPragma
<li><a class="reference" href="#extractPragma%2CPSym" title="extractPragma(s: PSym): PNode">extractPragma(s: PSym): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">findUnresolvedStatic
<li><a class="reference" href="#findUnresolvedStatic%2CPNode" title="findUnresolvedStatic(n: PNode): PNode">findUnresolvedStatic(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">firstGenericParam
<li><a class="reference" href="#firstGenericParam%2CPType" title="firstGenericParam(n: PType): PType">firstGenericParam(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">firstParamType
<li><a class="reference" href="#firstParamType%2CPType" title="firstParamType(n: PType): PType">firstParamType(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">genericConstraint
<li><a class="reference" href="#genericConstraint%2CPType" title="genericConstraint(t: PType): PType">genericConstraint(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">genericHead
<li><a class="reference" href="#genericHead%2CPType" title="genericHead(n: PType): PType">genericHead(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">genericInvocationParamsLen
<li><a class="reference" href="#genericInvocationParamsLen%2CPType" title="genericInvocationParamsLen(t: PType): int">genericInvocationParamsLen(t: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">genericParamHasConstraints
<li><a class="reference" href="#genericParamHasConstraints%2CPType" title="genericParamHasConstraints(t: PType): bool">genericParamHasConstraints(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">genericParamsLen
<li><a class="reference" href="#genericParamsLen%2CPType" title="genericParamsLen(t: PType): int">genericParamsLen(t: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">getDeclPragma
<li><a class="reference" href="#getDeclPragma%2CPNode" title="getDeclPragma(n: PNode): PNode">getDeclPragma(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">getFloat
<li><a class="reference" href="#getFloat%2CPNode" title="getFloat(a: PNode): BiggestFloat">getFloat(a: PNode): BiggestFloat</a></li>
</ul>
<ul class="simple nested-toc-section">getInt
<li><a class="reference" href="#getInt%2CPNode" title="getInt(a: PNode): Int128">getInt(a: PNode): Int128</a></li>
</ul>
<ul class="simple nested-toc-section">getInt64
<li><a class="reference" href="#getInt64%2CPNode" title="getInt64(a: PNode): int64">getInt64(a: PNode): int64</a></li>
</ul>
<ul class="simple nested-toc-section">getPIdent
<li><a class="reference" href="#getPIdent%2CPNode" title="getPIdent(a: PNode): PIdent">getPIdent(a: PNode): PIdent</a></li>
</ul>
<ul class="simple nested-toc-section">getStr
<li><a class="reference" href="#getStr%2CPNode" title="getStr(a: PNode): string">getStr(a: PNode): string</a></li>
</ul>
<ul class="simple nested-toc-section">getStrOrChar
<li><a class="reference" href="#getStrOrChar%2CPNode" title="getStrOrChar(a: PNode): string">getStrOrChar(a: PNode): string</a></li>
</ul>
<ul class="simple nested-toc-section">hasElementType
<li><a class="reference" href="#hasElementType%2CPType" title="hasElementType(t: PType): bool">hasElementType(t: PType): bool</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">hasNilSon
<li><a class="reference" href="#hasNilSon%2CPNode" title="hasNilSon(n: PNode): bool">hasNilSon(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hasPattern
<li><a class="reference" href="#hasPattern%2CPSym" title="hasPattern(s: PSym): bool">hasPattern(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hasSonWith
<li><a class="reference" href="#hasSonWith%2CPNode%2CTNodeKind" title="hasSonWith(n: PNode; kind: TNodeKind): bool">hasSonWith(n: PNode; kind: TNodeKind): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hasSubnodeWith
<li><a class="reference" href="#hasSubnodeWith%2CPNode%2CTNodeKind" title="hasSubnodeWith(n: PNode; kind: TNodeKind): bool">hasSubnodeWith(n: PNode; kind: TNodeKind): bool</a></li>
</ul>
<ul class="simple nested-toc-section">idGeneratorForPackage
<li><a class="reference" href="#idGeneratorForPackage%2Cint32" title="idGeneratorForPackage(nextIdWillBe: int32): IdGenerator">idGeneratorForPackage(nextIdWillBe: int32): IdGenerator</a></li>
</ul>
<ul class="simple nested-toc-section">idGeneratorFromModule
<li><a class="reference" href="#idGeneratorFromModule%2CPSym" title="idGeneratorFromModule(m: PSym): IdGenerator">idGeneratorFromModule(m: PSym): IdGenerator</a></li>
</ul>
<ul class="simple nested-toc-section">indexType
<li><a class="reference" href="#indexType%2CPType" title="indexType(n: PType): PType">indexType(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">initIdTable
<li><a class="reference" href="#initIdTable" title="initIdTable[T](): TIdTable[T]">initIdTable[T](): TIdTable[T]</a></li>
</ul>
<ul class="simple nested-toc-section">initNodeTable
<li><a class="reference" href="#initNodeTable" title="initNodeTable(ignoreTypes = false): TNodeTable">initNodeTable(ignoreTypes = false): TNodeTable</a></li>
</ul>
<ul class="simple nested-toc-section">initObjectSet
<li><a class="reference" href="#initObjectSet" title="initObjectSet(): TObjectSet">initObjectSet(): TObjectSet</a></li>
</ul>
<ul class="simple nested-toc-section">initStrTable
<li><a class="reference" href="#initStrTable" title="initStrTable(): TStrTable">initStrTable(): TStrTable</a></li>
</ul>
<ul class="simple nested-toc-section">isAtom
<li><a class="reference" href="#isAtom%2CPNode" title="isAtom(n: PNode): bool">isAtom(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isCallExpr
<li><a class="reference" href="#isCallExpr%2CPNode" title="isCallExpr(n: PNode): bool">isCallExpr(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isClosure
<li><a class="reference" href="#isClosure%2CPType" title="isClosure(typ: PType): bool">isClosure(typ: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isClosureIterator
<li><a class="reference" href="#isClosureIterator%2CPType" title="isClosureIterator(typ: PType): bool">isClosureIterator(typ: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isCompileTimeProc
<li><a class="reference" href="#isCompileTimeProc%2CPSym" title="isCompileTimeProc(s: PSym): bool">isCompileTimeProc(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isEmptyTupleType
<li><a class="reference" href="#isEmptyTupleType%2CPType" title="isEmptyTupleType(t: PType): bool">isEmptyTupleType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isEmptyType
<li><a class="reference" href="#isEmptyType%2CPType" title="isEmptyType(t: PType): bool">isEmptyType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isExplicitCallConv
<li><a class="reference" href="#isExplicitCallConv%2CPSym" title="isExplicitCallConv(s: PSym): bool">isExplicitCallConv(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isGCedMem
<li><a class="reference" href="#isGCedMem%2CPType" title="isGCedMem(t: PType): bool">isGCedMem(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isGenericParams
<li><a class="reference" href="#isGenericParams%2CPNode" title="isGenericParams(n: PNode): bool">isGenericParams(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isGenericRoutine
<li><a class="reference" href="#isGenericRoutine%2CPNode" title="isGenericRoutine(n: PNode): bool">isGenericRoutine(n: PNode): bool</a></li>
<li><a class="reference" href="#isGenericRoutine%2CPSym" title="isGenericRoutine(s: PSym): bool">isGenericRoutine(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isGenericRoutineStrict
<li><a class="reference" href="#isGenericRoutineStrict%2CPSym" title="isGenericRoutineStrict(s: PSym): bool">isGenericRoutineStrict(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isImportedException
<li><a class="reference" href="#isImportedException%2CPType%2CConfigRef" title="isImportedException(t: PType; conf: ConfigRef): bool">isImportedException(t: PType; conf: ConfigRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isInfixAs
<li><a class="reference" href="#isInfixAs%2CPNode" title="isInfixAs(n: PNode): bool">isInfixAs(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isInlineIterator
<li><a class="reference" href="#isInlineIterator%2CPType" title="isInlineIterator(typ: PType): bool">isInlineIterator(typ: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isIterator
<li><a class="reference" href="#isIterator%2CPType" title="isIterator(typ: PType): bool">isIterator(typ: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isMetaType
<li><a class="reference" href="#isMetaType%2CPType" title="isMetaType(t: PType): bool">isMetaType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isNewStyleConcept
<li><a class="reference" href="#isNewStyleConcept%2CPNode" title="isNewStyleConcept(n: PNode): bool">isNewStyleConcept(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isNimcall
<li><a class="reference" href="#isNimcall%2CPSym" title="isNimcall(s: PSym): bool">isNimcall(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isOutParam
<li><a class="reference" href="#isOutParam%2CPType" title="isOutParam(t: PType): bool">isOutParam(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isRoutine
<li><a class="reference" href="#isRoutine%2CPSym" title="isRoutine(s: PSym): bool">isRoutine(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isSingletonTupleType
<li><a class="reference" href="#isSingletonTupleType%2CPType" title="isSingletonTupleType(t: PType): bool">isSingletonTupleType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isSinkParam
<li><a class="reference" href="#isSinkParam%2CPSym" title="isSinkParam(s: PSym): bool">isSinkParam(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isSinkType
<li><a class="reference" href="#isSinkType%2CPType" title="isSinkType(t: PType): bool">isSinkType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isTrue
<li><a class="reference" href="#isTrue%2CPNode" title="isTrue(n: PNode): bool">isTrue(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isUnresolvedStatic
<li><a class="reference" href="#isUnresolvedStatic%2CPType" title="isUnresolvedStatic(t: PType): bool">isUnresolvedStatic(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">kidsLen
<li><a class="reference" href="#kidsLen%2CPType" title="kidsLen(t: PType): int">kidsLen(t: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">last
<li><a class="reference" href="#last%2CPType" title="last(n: PType): PType">last(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">lastSon
<li><a class="reference" href="#lastSon%2CPNode" title="lastSon(n: PNode): PNode">lastSon(n: PNode): PNode</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>
<li><a class="reference" href="#len%2CPType" title="len(n: PType): int">len(n: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">linkTo
<li><a class="reference" href="#linkTo%2CPSym%2CPType" title="linkTo(s: PSym; t: PType): PSym">linkTo(s: PSym; t: PType): PSym</a></li>
<li><a class="reference" href="#linkTo%2CPType%2CPSym" title="linkTo(t: PType; s: PSym): PType">linkTo(t: PType; s: PSym): PType</a></li>
</ul>
<ul class="simple nested-toc-section">makeStmtList
<li><a class="reference" href="#makeStmtList%2CPNode" title="makeStmtList(n: PNode): PNode">makeStmtList(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newAtom
<li><a class="reference" href="#newAtom%2CPIdent%2CTLineInfo" title="newAtom(ident: PIdent; info: TLineInfo): PNode">newAtom(ident: PIdent; info: TLineInfo): PNode</a></li>
<li><a class="reference" href="#newAtom%2CTNodeKind%2CBiggestFloat%2CTLineInfo" title="newAtom(kind: TNodeKind; floatVal: BiggestFloat; info: TLineInfo): PNode">newAtom(kind: TNodeKind; floatVal: BiggestFloat; info: TLineInfo): PNode</a></li>
<li><a class="reference" href="#newAtom%2CTNodeKind%2CBiggestInt%2CTLineInfo" title="newAtom(kind: TNodeKind; intVal: BiggestInt; info: TLineInfo): PNode">newAtom(kind: TNodeKind; intVal: BiggestInt; info: TLineInfo): PNode</a></li>
<li><a class="reference" href="#newAtom%2CTNodeKind%2Csinkstring%2CTLineInfo" title="newAtom(kind: TNodeKind; strVal: sink string; info: TLineInfo): PNode">newAtom(kind: TNodeKind; strVal: sink string; info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newFloatNode
<li><a class="reference" href="#newFloatNode%2CTNodeKind%2CBiggestFloat" title="newFloatNode(kind: TNodeKind; floatVal: BiggestFloat): PNode">newFloatNode(kind: TNodeKind; floatVal: BiggestFloat): PNode</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">newIntNode
<li><a class="reference" href="#newIntNode%2CTNodeKind%2CBiggestInt" title="newIntNode(kind: TNodeKind; intVal: BiggestInt): PNode">newIntNode(kind: TNodeKind; intVal: BiggestInt): PNode</a></li>
<li><a class="reference" href="#newIntNode%2CTNodeKind%2CInt128" title="newIntNode(kind: TNodeKind; intVal: Int128): PNode">newIntNode(kind: TNodeKind; intVal: Int128): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newIntTypeNode
<li><a class="reference" href="#newIntTypeNode%2CBiggestInt%2CPType" title="newIntTypeNode(intVal: BiggestInt; typ: PType): PNode">newIntTypeNode(intVal: BiggestInt; typ: PType): PNode</a></li>
<li><a class="reference" href="#newIntTypeNode%2CInt128%2CPType" title="newIntTypeNode(intVal: Int128; typ: PType): PNode">newIntTypeNode(intVal: Int128; typ: PType): 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">newOpenSym
<li><a class="reference" href="#newOpenSym%2CPNode" title="newOpenSym(n: PNode): PNode">newOpenSym(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newProcNode
<li><a class="reference" href="#newProcNode%2CTNodeKind%2CTLineInfo%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode" title="newProcNode(kind: TNodeKind; info: TLineInfo; body: PNode;
params, name, pattern, genericParams, pragmas, exceptions: PNode): PNode">newProcNode(kind: TNodeKind; info: TLineInfo; body: PNode;
params, name, pattern, genericParams, pragmas, exceptions: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newProcType
<li><a class="reference" href="#newProcType%2CTLineInfo%2CIdGenerator%2CPSym" title="newProcType(info: TLineInfo; idgen: IdGenerator; owner: PSym): PType">newProcType(info: TLineInfo; idgen: IdGenerator; owner: PSym): PType</a></li>
</ul>
<ul class="simple nested-toc-section">newSons
<li><a class="reference" href="#newSons%2CPNode%2Cint" title="newSons(father: PNode; length: int)">newSons(father: PNode; length: int)</a></li>
<li><a class="reference" href="#newSons%2CPType%2Cint" title="newSons(father: PType; length: int)">newSons(father: PType; length: int)</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">newSym
<li><a class="reference" href="#newSym%2CTSymKind%2CPIdent%2CIdGenerator%2CPSym%2CTLineInfo%2CTOptions" title="newSym(symKind: TSymKind; name: PIdent; idgen: IdGenerator; owner: PSym;
info: TLineInfo; options: TOptions = {}): PSym">newSym(symKind: TSymKind; name: PIdent; idgen: IdGenerator; owner: PSym;
info: TLineInfo; options: TOptions = {}): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">newSymNode
<li><a class="reference" href="#newSymNode%2CPSym" title="newSymNode(sym: PSym): PNode">newSymNode(sym: PSym): PNode</a></li>
<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">newTree
<li><a class="reference" href="#newTree%2CTNodeKind%2Cvarargs%5BPNode%5D" title="newTree(kind: TNodeKind; children: varargs[PNode]): PNode">newTree(kind: TNodeKind; children: varargs[PNode]): PNode</a></li>
<li><a class="reference" href="#newTree%2CTNodeKind%2CTLineInfo%2Cvarargs%5BPNode%5D" title="newTree(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode">newTree(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newTreeI
<li><a class="reference" href="#newTreeI%2CTNodeKind%2CTLineInfo%2Cvarargs%5BPNode%5D" title="newTreeI(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode">newTreeI(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newTreeIT
<li><a class="reference" href="#newTreeIT%2CTNodeKind%2CTLineInfo%2CPType%2Cvarargs%5BPNode%5D" title="newTreeIT(kind: TNodeKind; info: TLineInfo; typ: PType; children: varargs[PNode]): PNode">newTreeIT(kind: TNodeKind; info: TLineInfo; typ: PType; children: varargs[PNode]): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">newType
<li><a class="reference" href="#newType%2CTTypeKind%2CIdGenerator%2CPSym%2CsinkPType" title="newType(kind: TTypeKind; idgen: IdGenerator; owner: PSym; son: sink PType = nil): PType">newType(kind: TTypeKind; idgen: IdGenerator; owner: PSym; son: sink PType = nil): PType</a></li>
</ul>
<ul class="simple nested-toc-section">nextTypeId
<li><a class="reference" href="#nextTypeId%2CIdGenerator" title="nextTypeId(x: IdGenerator): ItemId">nextTypeId(x: IdGenerator): ItemId</a></li>
</ul>
<ul class="simple nested-toc-section">originatingModule
<li><a class="reference" href="#originatingModule%2CPSym" title="originatingModule(s: PSym): PSym">originatingModule(s: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">owner
<li><a class="reference" href="#owner" title="owner(s: PSym | PType): PSym">owner(s: PSym | PType): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">paramsLen
<li><a class="reference" href="#paramsLen%2CPType" title="paramsLen(t: PType): int">paramsLen(t: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">propagateToOwner
<li><a class="reference" href="#propagateToOwner%2CPType%2CPType" title="propagateToOwner(owner, elem: PType; propagateHasAsgn = true)">propagateToOwner(owner, elem: PType; propagateHasAsgn = true)</a></li>
</ul>
<ul class="simple nested-toc-section">rawAddSon
<li><a class="reference" href="#rawAddSon%2CPType%2CPType" title="rawAddSon(father, son: PType; propagateHasAsgn = true)">rawAddSon(father, son: PType; propagateHasAsgn = true)</a></li>
</ul>
<ul class="simple nested-toc-section">replaceFirstSon
<li><a class="reference" href="#replaceFirstSon%2CPNode%2CPNode" title="replaceFirstSon(n, newson: PNode)">replaceFirstSon(n, newson: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">replaceSon
<li><a class="reference" href="#replaceSon%2CPNode%2Cint%2CPNode" title="replaceSon(n: PNode; i: int; newson: PNode)">replaceSon(n: PNode; i: int; newson: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">resetIdTable
<li><a class="reference" href="#resetIdTable%2CTIdTable%5BT%5D" title="resetIdTable[T](x: var TIdTable[T])">resetIdTable[T](x: var TIdTable[T])</a></li>
</ul>
<ul class="simple nested-toc-section">returnType
<li><a class="reference" href="#returnType%2CPType" title="returnType(n: PType): PType">returnType(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">safeArrLen
<li><a class="reference" href="#safeArrLen%2CPNode" title="safeArrLen(n: PNode): int">safeArrLen(n: PNode): int</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">sameTupleLengths
<li><a class="reference" href="#sameTupleLengths%2CPType%2CPType" title="sameTupleLengths(a, b: PType): bool">sameTupleLengths(a, b: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">setIndexType
<li><a class="reference" href="#setIndexType%2CPType%2CPType" title="setIndexType(n, idx: PType)">setIndexType(n, idx: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">setInfoRecursive
<li><a class="reference" href="#setInfoRecursive%2CPNode%2CTLineInfo" title="setInfoRecursive(n: PNode; info: TLineInfo)">setInfoRecursive(n: PNode; info: TLineInfo)</a></li>
</ul>
<ul class="simple nested-toc-section">setOwner
<li><a class="reference" href="#setOwner%2C%2CPSym" title="setOwner(s: PSym | PType; owner: PSym)">setOwner(s: PSym | PType; owner: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">setReturnType
<li><a class="reference" href="#setReturnType%2CPType%2CPType" title="setReturnType(n, r: PType)">setReturnType(n, r: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">setSon
<li><a class="reference" href="#setSon%2CPType%2CsinkPType" title="setSon(dest: PType; son: sink PType)">setSon(dest: PType; son: sink PType)</a></li>
</ul>
<ul class="simple nested-toc-section">setSons
<li><a class="reference" href="#setSons%2CPType%2Csinkseq%5BPType%5D" title="setSons(dest: PType; sons: sink seq[PType])">setSons(dest: PType; sons: sink seq[PType])</a></li>
</ul>
<ul class="simple nested-toc-section">setSonsLen
<li><a class="reference" href="#setSonsLen%2CPType%2Cint" title="setSonsLen(dest: PType; len: int)">setSonsLen(dest: PType; len: int)</a></li>
</ul>
<ul class="simple nested-toc-section">setUseIc
<li><a class="reference" href="#setUseIc%2Cbool" title="setUseIc(useIc: bool)">setUseIc(useIc: bool)</a></li>
</ul>
<ul class="simple nested-toc-section">shallowCopy
<li><a class="reference" href="#shallowCopy%2CPNode" title="shallowCopy(src: PNode): PNode">shallowCopy(src: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">signatureLen
<li><a class="reference" href="#signatureLen%2CPType" title="signatureLen(t: PType): int">signatureLen(t: PType): int</a></li>
</ul>
<ul class="simple nested-toc-section">skipColon
<li><a class="reference" href="#skipColon%2CPNode" title="skipColon(n: PNode): PNode">skipColon(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">skipGenericOwner
<li><a class="reference" href="#skipGenericOwner%2CPSym" title="skipGenericOwner(s: PSym): PSym">skipGenericOwner(s: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">skipHiddenAddr
<li><a class="reference" href="#skipHiddenAddr%2CPNode" title="skipHiddenAddr(n: PNode): PNode">skipHiddenAddr(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">skipModifier
<li><a class="reference" href="#skipModifier%2CPType" title="skipModifier(n: PType): PType">skipModifier(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">skipPragmaExpr
<li><a class="reference" href="#skipPragmaExpr%2CPNode" title="skipPragmaExpr(n: PNode): PNode">skipPragmaExpr(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">skipStmtList
<li><a class="reference" href="#skipStmtList%2CPNode" title="skipStmtList(n: PNode): PNode">skipStmtList(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">skipTypes
<li><a class="reference" href="#skipTypes%2CPType%2CTTypeKinds" title="skipTypes(t: PType; kinds: TTypeKinds): PType">skipTypes(t: PType; kinds: TTypeKinds): PType</a></li>
<li><a class="reference" href="#skipTypes%2CPType%2CTTypeKinds%2Cint" title="skipTypes(t: PType; kinds: TTypeKinds; maxIters: int): PType">skipTypes(t: PType; kinds: TTypeKinds; maxIters: int): PType</a></li>
</ul>
<ul class="simple nested-toc-section">skipTypesOrNil
<li><a class="reference" href="#skipTypesOrNil%2CPType%2CTTypeKinds" title="skipTypesOrNil(t: PType; kinds: TTypeKinds): PType">skipTypesOrNil(t: PType; kinds: TTypeKinds): PType</a></li>
</ul>
<ul class="simple nested-toc-section">toHumanStr
<li><a class="reference" href="#toHumanStr%2CTSymKind" title="toHumanStr(kind: TSymKind): string">toHumanStr(kind: TSymKind): string</a></li>
<li><a class="reference" href="#toHumanStr%2CTTypeKind" title="toHumanStr(kind: TTypeKind): string">toHumanStr(kind: TTypeKind): string</a></li>
</ul>
<ul class="simple nested-toc-section">toObject
<li><a class="reference" href="#toObject%2CPType" title="toObject(typ: PType): PType">toObject(typ: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">toObjectFromRefPtrGeneric
<li><a class="reference" href="#toObjectFromRefPtrGeneric%2CPType" title="toObjectFromRefPtrGeneric(typ: PType): PType">toObjectFromRefPtrGeneric(typ: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">toRef
<li><a class="reference" href="#toRef%2CPType%2CIdGenerator" title="toRef(typ: PType; idgen: IdGenerator): PType">toRef(typ: PType; idgen: IdGenerator): PType</a></li>
</ul>
<ul class="simple nested-toc-section">toVar
<li><a class="reference" href="#toVar%2CPType%2CTTypeKind%2CIdGenerator" title="toVar(typ: PType; kind: TTypeKind; idgen: IdGenerator): PType">toVar(typ: PType; kind: TTypeKind; idgen: IdGenerator): PType</a></li>
</ul>
<ul class="simple nested-toc-section">transitionGenericParamToType
<li><a class="reference" href="#transitionGenericParamToType%2CPSym" title="transitionGenericParamToType(s: PSym)">transitionGenericParamToType(s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">transitionIntKind
<li><a class="reference" href="#transitionIntKind%2CPNode%2Crange%5B%5D" title="transitionIntKind(n: PNode; kind: range[nkCharLit .. nkUInt64Lit])">transitionIntKind(n: PNode; kind: range[nkCharLit .. nkUInt64Lit])</a></li>
</ul>
<ul class="simple nested-toc-section">transitionIntToFloatKind
<li><a class="reference" href="#transitionIntToFloatKind%2CPNode%2Crange%5B%5D" title="transitionIntToFloatKind(n: PNode; kind: range[nkFloatLit .. nkFloat128Lit])">transitionIntToFloatKind(n: PNode; kind: range[nkFloatLit .. nkFloat128Lit])</a></li>
</ul>
<ul class="simple nested-toc-section">transitionNoneToSym
<li><a class="reference" href="#transitionNoneToSym%2CPNode" title="transitionNoneToSym(n: PNode)">transitionNoneToSym(n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">transitionRoutineSymKind
<li><a class="reference" href="#transitionRoutineSymKind%2CPSym%2Crange%5B%5D" title="transitionRoutineSymKind(s: PSym; kind: range[skProc .. skTemplate])">transitionRoutineSymKind(s: PSym; kind: range[skProc .. skTemplate])</a></li>
</ul>
<ul class="simple nested-toc-section">transitionSonsKind
<li><a class="reference" href="#transitionSonsKind%2CPNode%2Crange%5B%5D" title="transitionSonsKind(n: PNode; kind: range[nkComesFrom .. nkTupleConstr])">transitionSonsKind(n: PNode; kind: range[nkComesFrom .. nkTupleConstr])</a></li>
</ul>
<ul class="simple nested-toc-section">transitionToLet
<li><a class="reference" href="#transitionToLet%2CPSym" title="transitionToLet(s: PSym)">transitionToLet(s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">truncateInferredTypeCandidates
<li><a class="reference" href="#truncateInferredTypeCandidates%2CPType" title="truncateInferredTypeCandidates(t: PType)">truncateInferredTypeCandidates(t: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">typeBodyImpl
<li><a class="reference" href="#typeBodyImpl%2CPType" title="typeBodyImpl(n: PType): PType">typeBodyImpl(n: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">withInfo
<li><a class="reference" href="#withInfo%2CPNode%2CTLineInfo" title="withInfo(n: PNode; info: TLineInfo): PNode">withInfo(n: PNode; info: TLineInfo): PNode</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">genericBodyParams
<li><a class="reference" href="#genericBodyParams.i%2CPType" title="genericBodyParams(t: PType): (int, PType)">genericBodyParams(t: PType): (int, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genericInstParamPairs
<li><a class="reference" href="#genericInstParamPairs.i%2CPType%2CPType" title="genericInstParamPairs(a, b: PType): (int, PType, PType)">genericInstParamPairs(a, b: PType): (int, PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genericInstParams
<li><a class="reference" href="#genericInstParams.i%2CPType" title="genericInstParams(t: PType): (bool, PType)">genericInstParams(t: PType): (bool, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genericInvocationAndBodyElements
<li><a class="reference" href="#genericInvocationAndBodyElements.i%2CPType%2CPType" title="genericInvocationAndBodyElements(a, b: PType): (PType, PType)">genericInvocationAndBodyElements(a, b: PType): (PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genericInvocationParamPairs
<li><a class="reference" href="#genericInvocationParamPairs.i%2CPType%2CPType" title="genericInvocationParamPairs(a, b: PType): (bool, PType, PType)">genericInvocationParamPairs(a, b: PType): (bool, PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genericInvocationParams
<li><a class="reference" href="#genericInvocationParams.i%2CPType" title="genericInvocationParams(t: PType): (bool, PType)">genericInvocationParams(t: PType): (bool, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">ikids
<li><a class="reference" href="#ikids.i%2CPType" title="ikids(t: PType): (int, PType)">ikids(t: PType): (int, PType)</a></li>
</ul>
<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 class="simple nested-toc-section">kids
<li><a class="reference" href="#kids.i%2CPType" title="kids(t: PType): PType">kids(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">pairs
<li><a class="reference" href="#pairs.i%2CPNode" title="pairs(n: PNode): tuple[i: int, n: PNode]">pairs(n: PNode): tuple[i: int, n: PNode]</a></li>
</ul>
<ul class="simple nested-toc-section">paramTypePairs
<li><a class="reference" href="#paramTypePairs.i%2CPType%2CPType" title="paramTypePairs(a, b: PType): (PType, PType)">paramTypePairs(a, b: PType): (PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">paramTypes
<li><a class="reference" href="#paramTypes.i%2CPType" title="paramTypes(t: PType): (int, PType)">paramTypes(t: PType): (int, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">signature
<li><a class="reference" href="#signature.i%2CPType" title="signature(t: PType): PType">signature(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">tupleTypePairs
<li><a class="reference" href="#tupleTypePairs.i%2CPType%2CPType" title="tupleTypePairs(a, b: PType): (int, PType, PType)">tupleTypePairs(a, b: PType): (int, PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">underspecifiedPairs
<li><a class="reference" href="#underspecifiedPairs.i%2CPType%2CPType%2Cint%2Cint" title="underspecifiedPairs(a, b: PType; start = 0; without = 0): (PType, PType)">underspecifiedPairs(a, b: PType; start = 0; without = 0): (PType, PType)</a></li>
</ul>
<ul class="simple nested-toc-section">userTypeClassInstParams
<li><a class="reference" href="#userTypeClassInstParams.i%2CPType" title="userTypeClassInstParams(t: PType): (bool, PType)">userTypeClassInstParams(t: PType): (bool, PType)</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>
<li><a class="reference" href="#%5B%5D.t%2CPType%2CBackwardsIndex" title="`[]`(n: PType; i: BackwardsIndex): PType">`[]`(n: PType; i: BackwardsIndex): PType</a></li>
<li><a class="reference" href="#%5B%5D.t%2CPType%2Cint" title="`[]`(n: PType; i: int): PType">`[]`(n: PType; i: int): PType</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>
<li><a class="reference" href="#%5B%5D%3D.t%2CPType%2CBackwardsIndex%2CPType" title="`[]=`(n: PType; i: BackwardsIndex; x: PType)">`[]=`(n: PType; i: BackwardsIndex; x: PType)</a></li>
<li><a class="reference" href="#%5B%5D%3D.t%2CPType%2Cint%2CPType" title="`[]=`(n: PType; i: int; x: PType)">`[]=`(n: PType; i: int; x: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">detailedInfo
<li><a class="reference" href="#detailedInfo.t%2CPSym" title="detailedInfo(sym: PSym): string">detailedInfo(sym: PSym): string</a></li>
</ul>
<ul class="simple nested-toc-section">fileIdx
<li><a class="reference" href="#fileIdx.t%2CPSym" title="fileIdx(c: PSym): FileIndex">fileIdx(c: PSym): FileIndex</a></li>
</ul>
<ul class="simple nested-toc-section">filename
<li><a class="reference" href="#filename.t%2CPSym" title="filename(c: PSym): string">filename(c: PSym): string</a></li>
</ul>
<ul class="simple nested-toc-section">firstSon
<li><a class="reference" href="#firstSon.t%2CPNode" title="firstSon(n: PNode): PNode">firstSon(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">has2Sons
<li><a class="reference" href="#has2Sons.t%2CPNode" title="has2Sons(n: PNode): bool">has2Sons(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hasDestructor
<li><a class="reference" href="#hasDestructor.t%2CPType" title="hasDestructor(t: PType): bool">hasDestructor(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hasSon
<li><a class="reference" href="#hasSon.t%2CPNode" title="hasSon(n: PNode): bool">hasSon(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">id
<li><a class="reference" href="#id.t" title="id(a: PType | PSym): int">id(a: PType | PSym): int</a></li>
</ul>
<ul class="simple nested-toc-section">incompleteType
<li><a class="reference" href="#incompleteType.t%2CPType" title="incompleteType(t: PType): bool">incompleteType(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">initSymMapping
<li><a class="reference" href="#initSymMapping.t" title="initSymMapping(): SymMapping">initSymMapping(): SymMapping</a></li>
</ul>
<ul class="simple nested-toc-section">initTypeMapping
<li><a class="reference" href="#initTypeMapping.t" title="initTypeMapping(): TypeMapping">initTypeMapping(): TypeMapping</a></li>
</ul>
<ul class="simple nested-toc-section">paramTypeToNodeIndex
<li><a class="reference" href="#paramTypeToNodeIndex.t%2Cint" title="paramTypeToNodeIndex(x: int): int">paramTypeToNodeIndex(x: int): int</a></li>
</ul>
<ul class="simple nested-toc-section">previouslyInferred
<li><a class="reference" href="#previouslyInferred.t%2CPType" title="previouslyInferred(t: PType): PType">previouslyInferred(t: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">secondSon
<li><a class="reference" href="#secondSon.t%2CPNode" title="secondSon(n: PNode): PNode">secondSon(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">setLastSon
<li><a class="reference" href="#setLastSon.t%2CPNode%2CPNode" title="setLastSon(n: PNode; s: PNode)">setLastSon(n: PNode; s: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">toId
<li><a class="reference" href="#toId.t%2CItemId" title="toId(a: ItemId): int">toId(a: ItemId): int</a></li>
</ul>
<ul class="simple nested-toc-section">transitionSymKindCommon
<li><a class="reference" href="#transitionSymKindCommon.t%2CTSymKind" title="transitionSymKindCommon(k: TSymKind)">transitionSymKindCommon(k: TSymKind)</a></li>
</ul>
<ul class="simple nested-toc-section">typ
<li><a class="reference" href="#typ.t%2CPNode" title="typ(n: PNode): PType">typ(n: PNode): PType</a></li>
</ul>
<ul class="simple nested-toc-section">typeCompleted
<li><a class="reference" href="#typeCompleted.t%2CPSym" title="typeCompleted(s: PSym)">typeCompleted(s: PSym)</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/ast.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.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="ast.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/ast.nim#L674" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L674" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="IdGenerator">
<dt><pre><a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a> <span class="Other">=</span> <span class="Keyword">ref</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">symId</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">typeId</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">sealed</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">disambTable</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">CountTable</span><span class="Other">[</span><a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L964" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L964" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ItemId">
<dt><pre><a href="ast.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/ast.nim#L573" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L573" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PInstantiation">
<dt><pre><a href="ast.html#PInstantiation"><span class="Identifier">PInstantiation</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TInstantiation"><span class="Identifier">TInstantiation</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L684" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L684" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PLib">
<dt><pre><a href="ast.html#PLib"><span class="Identifier">PLib</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TLib"><span class="Identifier">TLib</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L695" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L695" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PNode">
<dt><pre><a href="ast.html#PNode"><span class="Identifier">PNode</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TNode"><span class="Identifier">TNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L590" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L590" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PScope">
<dt><pre><a href="ast.html#PScope"><span class="Identifier">PScope</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TScope"><span class="Identifier">TScope</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L693" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L693" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PSym">
<dt><pre><a href="ast.html#PSym"><span class="Identifier">PSym</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TSym"><span class="Identifier">TSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L593" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L593" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PType">
<dt><pre><a href="ast.html#PType"><span class="Identifier">PType</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="ast.html#TType"><span class="Identifier">TType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L592" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L592" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="SymMapping">
<dt><pre><a href="ast.html#SymMapping"><span class="Identifier">SymMapping</span></a> <span class="Other">=</span> <a href="ast.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><a href="ast.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/ast.nim#L2170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCallingConvention">
<dt><pre><a href="ast.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/ast.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdPair">
<dt><pre><a href="ast.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="ast.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/ast.nim#L803" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L803" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdPairSeq">
<dt><pre><a href="ast.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="ast.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/ast.nim#L807" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L807" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdTable">
<dt><pre><a href="ast.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="ast.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/ast.nim#L808" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L808" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TImplication">
<dt><pre><a href="ast.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/ast.nim#L829" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L829" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TInstantiation">
<dt><pre><a href="ast.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="ast.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="ast.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="ast.html#CompilesId"><span class="Identifier">CompilesId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L676" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L676" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLib">
<dt><pre><a href="ast.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="ast.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="ast.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L665" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L665" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLibKind">
<dt><pre><a href="ast.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/ast.nim#L662" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L662" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLoc">
<dt><pre><a href="ast.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="ast.html#TLocKind"><span class="Identifier">TLocKind</span></a>
<span class="Identifier">storage</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TLocFlags"><span class="Identifier">TLocFlags</span></a>
<span class="Identifier">lode</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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/ast.nim#L653" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L653" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocFlag">
<dt><pre><a href="ast.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/ast.nim#L633" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L633" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocFlags">
<dt><pre><a href="ast.html#TLocFlags"><span class="Identifier">TLocFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L652" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L652" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLocKind">
<dt><pre><a href="ast.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/ast.nim#L621" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L621" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TMagic">
<dt><pre><a href="ast.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/ast.nim#L461" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L461" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNode">
<dt><pre><a href="ast.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">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="ast.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="ast.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="ast.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/ast.nim#L594" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L594" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeFlag">
<dt><pre><a href="ast.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></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L296" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L296" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeFlags">
<dt><pre><a href="ast.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L329" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L329" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeKinds">
<dt><pre><a href="ast.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/ast.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodePair">
<dt><pre><a href="ast.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="ast.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/ast.nim#L812" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L812" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodePairSeq">
<dt><pre><a href="ast.html#TNodePairSeq"><span class="Identifier">TNodePairSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="ast.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/ast.nim#L817" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L817" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeSeq">
<dt><pre><a href="ast.html#TNodeSeq"><span class="Identifier">TNodeSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="ast.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/ast.nim#L591" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L591" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNodeTable">
<dt><pre><a href="ast.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="ast.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/ast.nim#L818" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L818" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TObjectSeq">
<dt><pre><a href="ast.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/ast.nim#L824" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L824" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TObjectSet">
<dt><pre><a href="ast.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="ast.html#TObjectSeq"><span class="Identifier">TObjectSeq</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L825" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L825" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TPair">
<dt><pre><a href="ast.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/ast.nim#L798" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L798" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TPairSeq">
<dt><pre><a href="ast.html#TPairSeq"><span class="Identifier">TPairSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="ast.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/ast.nim#L801" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L801" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TScope">
<dt><pre><a href="ast.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="ast.html#TStrTable"><span class="Identifier">TStrTable</span></a>
<span class="Identifier">parent</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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="ast.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/ast.nim#L686" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L686" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TStorageLoc">
<dt><pre><a href="ast.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/ast.nim#L646" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L646" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TStrTable">
<dt><pre><a href="ast.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="ast.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/ast.nim#L616" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L616" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSym">
<dt><pre><a href="ast.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="ast.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Keyword">case</span> <span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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">gcUnsafetyReason</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">transformedBody</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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">guard</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">bitsize</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">alignment</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">magic</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TMagic"><span class="Identifier">TMagic</span></a>
<span class="Identifier">typ</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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">info</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">endInfo</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">TLineInfo</span>
<span class="Identifier">hasUserSpecifiedType</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TSymFlags"><span class="Identifier">TSymFlags</span></a>
<span class="Identifier">ast</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">options</span><span class="Operator">*</span><span class="Other">:</span> <a href="options.html#TOptions"><span class="Identifier">TOptions</span></a>
<span class="Identifier">position</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">offset</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">loc</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TLoc"><span class="Identifier">TLoc</span></a>
<span class="Identifier">annex</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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">cname</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">constraint</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">instantiatedFrom</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.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">allUsages</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/ast.nim#L696" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L696" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymFlag">
<dt><pre><a href="ast.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/ast.nim#L44" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L44" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymFlags">
<dt><pre><a href="ast.html#TSymFlags"><span class="Identifier">TSymFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L143" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L143" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymKind">
<dt><pre><a href="ast.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/ast.nim#L405" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L405" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TSymKinds">
<dt><pre><a href="ast.html#TSymKinds"><span class="Identifier">TSymKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L437" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L437" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TType">
<dt><pre><a href="ast.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="ast.html#ItemId"><span class="Identifier">ItemId</span></a>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TTypeKind"><span class="Identifier">TTypeKind</span></a>
<span class="Identifier">callConv</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TTypeFlags"><span class="Identifier">TTypeFlags</span></a>
<span class="Identifier">n</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a>
<span class="Identifier">size</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span>
<span class="Identifier">align</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">paddingAtEnd</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">loc</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TLoc"><span class="Identifier">TLoc</span></a>
<span class="Identifier">typeInst</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a>
<span class="Identifier">uniqueId</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#ItemId"><span class="Identifier">ItemId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L766" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L766" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeAttachedOp">
<dt><pre><a href="ast.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/ast.nim#L757" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L757" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeFlag">
<dt><pre><a href="ast.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/ast.nim#L330" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L330" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeFlags">
<dt><pre><a href="ast.html#TTypeFlags"><span class="Identifier">TTypeFlags</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L403" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L403" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeKind">
<dt><pre><a href="ast.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/ast.nim#L177" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L177" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeKinds">
<dt><pre><a href="ast.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="ast.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/ast.nim#L294" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L294" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeSeq">
<dt><pre><a href="ast.html#TTypeSeq"><span class="Identifier">TTypeSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="ast.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/ast.nim#L755" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L755" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TypeMapping">
<dt><pre><a href="ast.html#TypeMapping"><span class="Identifier">TypeMapping</span></a> <span class="Other">=</span> <a href="ast.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><a href="ast.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/ast.nim#L2169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2169" 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="ast.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="ast.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/ast.nim#L455" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L455" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ggDebug">
<dt><pre><a href="ast.html#ggDebug"><span class="Identifier">ggDebug</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span></span>.}<span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
convenience switch for trying out things
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1004" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1004" 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="ast.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/ast.nim#L290" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L290" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="abstractVarRange">
<dt><pre><a href="ast.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/ast.nim#L288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="AttachedOpToStr">
<dt><pre><a href="ast.html#AttachedOpToStr"><span class="Identifier">AttachedOpToStr</span></a><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TTypeAttachedOp</span><span class="Other">,</span> <span class="Identifier">string</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">[</span><span class="StringLit">&quot;=wasMoved&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;=destroy&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;=copy&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;=dup&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;=sink&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;=trace&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;=deepcopy&quot;</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1426" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1426" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="bodyPos">
<dt><pre><a href="ast.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/ast.nim#L917" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L917" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="callableDefs">
<dt><pre><a href="ast.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/ast.nim#L933" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L933" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ConcreteTypes">
<dt><pre><a href="ast.html#ConcreteTypes"><span class="Identifier">ConcreteTypes</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L890" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L890" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ConstantDataTypes">
<dt><pre><a href="ast.html#ConstantDataTypes"><span class="Identifier">ConstantDataTypes</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L899" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L899" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ctfeWhitelist">
<dt><pre><a href="ast.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/ast.nim#L541" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L541" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="declarativeDefs">
<dt><pre><a href="ast.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/ast.nim#L930" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L930" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="defaultOffset">
<dt><pre><a href="ast.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/ast.nim#L944" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L944" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="dispatcherPos">
<dt><pre><a href="ast.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/ast.nim#L919" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L919" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="effectListLen">
<dt><pre><a href="ast.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/ast.nim#L172" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L172" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ensuresEffects">
<dt><pre><a href="ast.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/ast.nim#L168" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L168" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="exceptionEffects">
<dt><pre><a href="ast.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/ast.nim#L166" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L166" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ExportableSymKinds">
<dt><pre><a href="ast.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/ast.nim#L442" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L442" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="FirstGenericParamAt">
<dt><pre><a href="ast.html#FirstGenericParamAt"><span class="Identifier">FirstGenericParamAt</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/ast.nim#L1519" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1519" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="FirstParamAt">
<dt><pre><a href="ast.html#FirstParamAt"><span class="Identifier">FirstParamAt</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/ast.nim#L1518" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1518" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="forbiddenEffects">
<dt><pre><a href="ast.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/ast.nim#L171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L171" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GcTypeKinds">
<dt><pre><a href="ast.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/ast.nim#L279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="generatedMagics">
<dt><pre><a href="ast.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/ast.nim#L569" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L569" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genericParamsPos">
<dt><pre><a href="ast.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/ast.nim#L913" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L913" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GenericTypes">
<dt><pre><a href="ast.html#GenericTypes"><span class="Identifier">GenericTypes</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L883" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L883" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="GrowthFactor">
<dt><pre><a href="ast.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/ast.nim#L1280" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1280" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="IntegralTypes">
<dt><pre><a href="ast.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/ast.nim#L897" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L897" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="miscPos">
<dt><pre><a href="ast.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/ast.nim#L916" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L916" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="namePos">
<dt><pre><a href="ast.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/ast.nim#L911" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L911" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nfAllFieldsSet">
<dt><pre><a href="ast.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/ast.nim#L921" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L921" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NilableTypes">
<dt><pre><a href="ast.html#NilableTypes"><span class="Identifier">NilableTypes</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L901" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L901" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkEffectList">
<dt><pre><a href="ast.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/ast.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkFloatLiterals">
<dt><pre><a href="ast.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/ast.nim#L928" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L928" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkIdentKinds">
<dt><pre><a href="ast.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/ast.nim#L923" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L923" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLambdaKinds">
<dt><pre><a href="ast.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/ast.nim#L929" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L929" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLastBlockStmts">
<dt><pre><a href="ast.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/ast.nim#L173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkLiterals">
<dt><pre><a href="ast.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/ast.nim#L927" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L927" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkPragmaCallKinds">
<dt><pre><a href="ast.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/ast.nim#L926" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L926" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkStrKinds">
<dt><pre><a href="ast.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/ast.nim#L936" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L936" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkSymChoices">
<dt><pre><a href="ast.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/ast.nim#L935" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L935" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkWhen">
<dt><pre><a href="ast.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/ast.nim#L162" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L162" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nkWhenExpr">
<dt><pre><a href="ast.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/ast.nim#L163" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L163" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nodesToIgnoreSet">
<dt><pre><a href="ast.html#nodesToIgnoreSet"><span class="Identifier">nodesToIgnoreSet</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkNone</span><span class="Other">..</span><span class="DecNumber">nkIdent</span><span class="Other">,</span> <span class="DecNumber">nkType</span><span class="Other">..</span><span class="DecNumber">nkNilLit</span><span class="Other">,</span> <span class="DecNumber">nkTypeSection</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">nkMethodDef</span><span class="Other">,</span> <span class="DecNumber">nkIteratorDef</span><span class="Other">,</span> <span class="DecNumber">nkMacroDef</span><span class="Other">,</span>
<span class="DecNumber">nkTemplateDef</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">nkFuncDef</span><span class="Other">,</span> <span class="DecNumber">nkConstSection</span><span class="Other">,</span>
<span class="DecNumber">nkConstDef</span><span class="Other">,</span> <span class="DecNumber">nkIncludeStmt</span><span class="Other">,</span> <span class="DecNumber">nkImportStmt</span><span class="Other">,</span> <span class="DecNumber">nkExportStmt</span><span class="Other">,</span>
<span class="DecNumber">nkPragma</span><span class="Other">,</span> <span class="DecNumber">nkCommentStmt</span><span class="Other">,</span> <span class="DecNumber">nkBreakState</span><span class="Other">,</span> <span class="DecNumber">nkTypeOfExpr</span><span class="Other">,</span>
<span class="DecNumber">nkMixinStmt</span><span class="Other">,</span> <span class="DecNumber">nkBindStmt</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2157" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2157" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="OverloadableSyms">
<dt><pre><a href="ast.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/ast.nim#L880" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L880" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackageModuleId">
<dt><pre><a href="ast.html#PackageModuleId"><span class="Identifier">PackageModuleId</span></a> <span class="Other">=</span> <span class="DecNumber">-3'i32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L972" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L972" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="paramsPos">
<dt><pre><a href="ast.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/ast.nim#L914" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L914" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="patternPos">
<dt><pre><a href="ast.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/ast.nim#L912" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L912" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PersistentNodeFlags">
<dt><pre><a href="ast.html#PersistentNodeFlags"><span class="Identifier">PersistentNodeFlags</span></a><span class="Other">:</span> <a href="ast.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></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L904" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L904" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="pragmasEffects">
<dt><pre><a href="ast.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/ast.nim#L170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="pragmasPos">
<dt><pre><a href="ast.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/ast.nim#L915" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L915" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="procDefs">
<dt><pre><a href="ast.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/ast.nim#L932" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L932" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PtrLikeKinds">
<dt><pre><a href="ast.html#PtrLikeKinds"><span class="Identifier">PtrLikeKinds</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L903" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L903" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="requiresEffects">
<dt><pre><a href="ast.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/ast.nim#L167" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L167" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="resultPos">
<dt><pre><a href="ast.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/ast.nim#L918" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L918" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="routineDefs">
<dt><pre><a href="ast.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/ast.nim#L931" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L931" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="routineKinds">
<dt><pre><a href="ast.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/ast.nim#L440" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L440" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCompileToCpp">
<dt><pre><a href="ast.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/ast.nim#L153" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L153" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCompileToObjc">
<dt><pre><a href="ast.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/ast.nim#L154" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L154" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfCppMember">
<dt><pre><a href="ast.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/ast.nim#L158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L158" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfExperimental">
<dt><pre><a href="ast.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/ast.nim#L155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfNoForward">
<dt><pre><a href="ast.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/ast.nim#L148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L148" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfNoInit">
<dt><pre><a href="ast.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/ast.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfReorder">
<dt><pre><a href="ast.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/ast.nim#L150" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L150" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="sfWrittenTo">
<dt><pre><a href="ast.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/ast.nim#L156" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L156" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skError">
<dt><pre><a href="ast.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/ast.nim#L452" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L452" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skLocalVars">
<dt><pre><a href="ast.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/ast.nim#L938" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L938" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skProcKinds">
<dt><pre><a href="ast.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/ast.nim#L939" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L939" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="StartSize">
<dt><pre><a href="ast.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/ast.nim#L1281" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1281" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="StructuralEquivTypes">
<dt><pre><a href="ast.html#StructuralEquivTypes"><span class="Identifier">StructuralEquivTypes</span></a><span class="Other">:</span> <a href="ast.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/ast.nim#L886" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L886" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tagEffects">
<dt><pre><a href="ast.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/ast.nim#L169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfGcSafe">
<dt><pre><a href="ast.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/ast.nim#L445" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L445" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfGenericHasDestructor">
<dt><pre><a href="ast.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/ast.nim#L450" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L450" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfNonConstExpr">
<dt><pre><a href="ast.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/ast.nim#L448" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L448" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfObjHasKids">
<dt><pre><a href="ast.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/ast.nim#L446" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L446" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfReturnsNew">
<dt><pre><a href="ast.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/ast.nim#L447" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L447" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tfUnion">
<dt><pre><a href="ast.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/ast.nim#L444" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L444" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyMetaTypes">
<dt><pre><a href="ast.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/ast.nim#L285" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L285" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyPureObject">
<dt><pre><a href="ast.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/ast.nim#L278" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L278" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyTypeClasses">
<dt><pre><a href="ast.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/ast.nim#L281" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L281" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tyUserTypeClasses">
<dt><pre><a href="ast.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/ast.nim#L286" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L286" 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="$,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CPSym"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L1429" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1429" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<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="ast.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/ast.nim#L577" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L577" 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="ast.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/ast.nim#L580" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L580" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="add-procs-all">
<div id="add,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CPNode%2CPNode"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1025" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1025" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="add,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CPType%2CPType"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1038" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1038" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addAllowNil-procs-all">
<div id="addAllowNil,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addAllowNil%2CPNode%2CPNode"><span class="Identifier">addAllowNil</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</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/ast.nim#L1029" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1029" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="addAllowNil,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#addAllowNil%2CPType%2CPType"><span class="Identifier">addAllowNil</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</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/ast.nim#L1042" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1042" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addParam-procs-all">
<div id="addParam,PType,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#addParam%2CPType%2CPSym"><span class="Identifier">addParam</span></a><span class="Other">(</span><span class="Identifier">procType</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">param</span><span class="Other">:</span> <a href="ast.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/ast.nim#L2102" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2102" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addSonNilAllowed-procs-all">
<div id="addSonNilAllowed,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addSonNilAllowed%2CPNode%2CPNode"><span class="Identifier">addSonNilAllowed</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1697" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1697" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="appendToModule-procs-all">
<div id="appendToModule,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#appendToModule%2CPSym%2CPNode"><span class="Identifier">appendToModule</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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>
The compiler will use this internally to add nodes that will be appended to the module after the sem pass
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1269" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1269" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="assignType-procs-all">
<div id="assignType,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#assignType%2CPType%2CPType"><span class="Identifier">assignType</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1569" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1569" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="astdef-procs-all">
<div id="astdef,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#astdef%2CPSym"><span class="Identifier">astdef</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1236" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1236" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="base-procs-all">
<div id="base,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#base%2CPType"><span class="Identifier">base</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1356" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1356" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="baseClass-procs-all">
<div id="baseClass,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#baseClass%2CPType"><span class="Identifier">baseClass</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1354" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1354" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="canRaise-procs-all">
<div id="canRaise,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#canRaise%2CPNode"><span class="Identifier">canRaise</span></a><span class="Other">(</span><span class="Identifier">fn</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L2116" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2116" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="canRaiseConservative-procs-all">
<div id="canRaiseConservative,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#canRaiseConservative%2CPNode"><span class="Identifier">canRaiseConservative</span></a><span class="Other">(</span><span class="Identifier">fn</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L2110" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2110" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="comment-procs-all">
<div id="comment,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#comment%2CPNode"><span class="Identifier">comment</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</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/ast.nim#L853" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L853" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="comment=-procs-all">
<div id="comment=,PNode,string">
<dt><pre><span class="Keyword">proc</span> <a href="#comment%3D%2CPNode%2Cstring"><span class="Identifier">comment=</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <span class="Identifier">string</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/ast.nim#L860" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L860" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="containsNode-procs-all">
<div id="containsNode,PNode,TNodeKinds">
<dt><pre><span class="Keyword">proc</span> <a href="#containsNode%2CPNode%2CTNodeKinds"><span class="Identifier">containsNode</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">kinds</span><span class="Other">:</span> <a href="ast.html#TNodeKinds"><span class="Identifier">TNodeKinds</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/ast.nim#L1827" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1827" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyIdTable-procs-all">
<div id="copyIdTable,TIdTable[T],TIdTable[T]">
<dt><pre><span class="Keyword">proc</span> <a href="#copyIdTable%2CTIdTable%5BT%5D%2CTIdTable%5BT%5D"><span class="Identifier">copyIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="ast.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="Identifier">src</span><span class="Other">:</span> <a href="ast.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></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyNode-procs-all">
<div id="copyNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#copyNode%2CPNode"><span class="Identifier">copyNode</span></a><span class="Other">(</span><span class="Identifier">src</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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="Identifier">KeyError</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/ast.nim#L1705" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1705" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyObjectSet-procs-all">
<div id="copyObjectSet,TObjectSet,TObjectSet">
<dt><pre><span class="Keyword">proc</span> <a href="#copyObjectSet%2CTObjectSet%2CTObjectSet"><span class="Identifier">copyObjectSet</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="ast.html#TObjectSet"><span class="Identifier">TObjectSet</span></a><span class="Other">;</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="ast.html#TObjectSet"><span class="Identifier">TObjectSet</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/ast.nim#L1293" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1293" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyStrTable-procs-all">
<div id="copyStrTable,TStrTable,TStrTable">
<dt><pre><span class="Keyword">proc</span> <a href="#copyStrTable%2CTStrTable%2CTStrTable"><span class="Identifier">copyStrTable</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="ast.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="ast.html#TStrTable"><span class="Identifier">TStrTable</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/ast.nim#L1283" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1283" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copySym-procs-all">
<div id="copySym,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#copySym%2CPSym%2CIdGenerator"><span class="Identifier">copySym</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1599" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1599" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyTree-procs-all">
<div id="copyTree,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#copyTree%2CPNode"><span class="Identifier">copyTree</span></a><span class="Other">(</span><span class="Identifier">src</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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="Identifier">KeyError</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/ast.nim#L1799" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1799" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyTreeWithoutNode-procs-all">
<div id="copyTreeWithoutNode,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#copyTreeWithoutNode%2CPNode%2CPNode"><span class="Identifier">copyTreeWithoutNode</span></a><span class="Other">(</span><span class="Identifier">src</span><span class="Other">,</span> <span class="Identifier">skippedNode</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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="Identifier">KeyError</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/ast.nim#L1806" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1806" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyType-procs-all">
<div id="copyType,PType,IdGenerator,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#copyType%2CPType%2CIdGenerator%2CPSym"><span class="Identifier">copyType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1587" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1587" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="createModuleAlias-procs-all">
<div id="createModuleAlias,PSym,IdGenerator,PIdent,TLineInfo,TOptions">
<dt><pre><span class="Keyword">proc</span> <a href="#createModuleAlias%2CPSym%2CIdGenerator%2CPIdent%2CTLineInfo%2CTOptions"><span class="Identifier">createModuleAlias</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">newIdent</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="Identifier">options</span><span class="Other">:</span> <a href="options.html#TOptions"><span class="Identifier">TOptions</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1615" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1615" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="delSon-procs-all">
<div id="delSon,PNode,int">
<dt><pre><span class="Keyword">proc</span> <a href="#delSon%2CPNode%2Cint"><span class="Identifier">delSon</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">idx</span><span class="Other">:</span> <span class="Identifier">int</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/ast.nim#L1700" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1700" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="discardSons-procs-all">
<div id="discardSons,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#discardSons%2CPNode"><span class="Identifier">discardSons</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1009" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1009" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="elementType-procs-all">
<div id="elementType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#elementType%2CPType"><span class="Identifier">elementType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1350" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1350" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="exactReplica-procs-all">
<div id="exactReplica,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#exactReplica%2CPType"><span class="Identifier">exactReplica</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1592" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1592" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="extractPragma-procs-all">
<div id="extractPragma,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#extractPragma%2CPSym"><span class="Identifier">extractPragma</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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>
gets the pragma node of routine/type/var/let/const symbol <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1085" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1085" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="findUnresolvedStatic-procs-all">
<div id="findUnresolvedStatic,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#findUnresolvedStatic%2CPNode"><span class="Identifier">findUnresolvedStatic</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L2037" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2037" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstGenericParam-procs-all">
<div id="firstGenericParam,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#firstGenericParam%2CPType"><span class="Identifier">firstGenericParam</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1364" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1364" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstParamType-procs-all">
<div id="firstParamType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#firstParamType%2CPType"><span class="Identifier">firstParamType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1363" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1363" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericConstraint-procs-all">
<div id="genericConstraint,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#genericConstraint%2CPType"><span class="Identifier">genericConstraint</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1481" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1481" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericHead-procs-all">
<div id="genericHead,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#genericHead%2CPType"><span class="Identifier">genericHead</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1368" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1368" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInvocationParamsLen-procs-all">
<div id="genericInvocationParamsLen,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#genericInvocationParamsLen%2CPType"><span class="Identifier">genericInvocationParamsLen</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1468" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1468" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericParamHasConstraints-procs-all">
<div id="genericParamHasConstraints,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#genericParamHasConstraints%2CPType"><span class="Identifier">genericParamHasConstraints</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1475" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1475" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericParamsLen-procs-all">
<div id="genericParamsLen,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#genericParamsLen%2CPType"><span class="Identifier">genericParamsLen</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1464" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1464" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getDeclPragma-procs-all">
<div id="getDeclPragma,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getDeclPragma%2CPNode"><span class="Identifier">getDeclPragma</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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>
return the <tt class="docutils literal"><span class="pre"><span class="Identifier">nkPragma</span></span></tt> node for declaration <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt>, or <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> if no pragma was found. Currently only supports routineDefs + {nkTypeDef}.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1051" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1051" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getFloat-procs-all">
<div id="getFloat,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getFloat%2CPNode"><span class="Identifier">getFloat</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">BiggestFloat</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="Identifier">ERecoverableError</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/ast.nim#L1865" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1865" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getInt-procs-all">
<div id="getInt,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getInt%2CPNode"><span class="Identifier">getInt</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="int128.html#Int128"><span class="Identifier">Int128</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="Identifier">ERecoverableError</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/ast.nim#L1845" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1845" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getInt64-procs-all">
<div id="getInt64,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getInt64%2CPNode"><span class="Identifier">getInt64</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int64</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">&quot;use getInt&quot;</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ERecoverableError</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>
<div class="deprecation-message">
<b>Deprecated:</b> use getInt
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1858" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1858" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getPIdent-procs-all">
<div id="getPIdent,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getPIdent%2CPNode"><span class="Identifier">getPIdent</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a> {.<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>
Returns underlying <tt class="docutils literal"><span class="pre"><span class="Identifier">PIdent</span></span></tt> for <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Identifier">nkSym</span><span class="Punctuation">,</span> <span class="Identifier">nkIdent</span><span class="Punctuation">}</span></span></tt>, or <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L946" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L946" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getStr-procs-all">
<div id="getStr,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getStr%2CPNode"><span class="Identifier">getStr</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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="Identifier">ERecoverableError</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/ast.nim#L1876" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1876" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getStrOrChar-procs-all">
<div id="getStrOrChar,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#getStrOrChar%2CPNode"><span class="Identifier">getStrOrChar</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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="Identifier">ERecoverableError</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/ast.nim#L1888" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1888" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasElementType-procs-all">
<div id="hasElementType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#hasElementType%2CPType"><span class="Identifier">hasElementType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1477" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1477" 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="ast.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/ast.nim#L583" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L583" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasNilSon-procs-all">
<div id="hasNilSon,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#hasNilSon%2CPNode"><span class="Identifier">hasNilSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1819" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1819" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasPattern-procs-all">
<div id="hasPattern,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#hasPattern%2CPSym"><span class="Identifier">hasPattern</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L1947" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1947" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasSonWith-procs-all">
<div id="hasSonWith,PNode,TNodeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#hasSonWith%2CPNode%2CTNodeKind"><span class="Identifier">hasSonWith</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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> <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/ast.nim#L1813" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1813" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasSubnodeWith-procs-all">
<div id="hasSubnodeWith,PNode,TNodeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#hasSubnodeWith%2CPNode%2CTNodeKind"><span class="Identifier">hasSubnodeWith</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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> <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/ast.nim#L1836" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1836" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="idGeneratorForPackage-procs-all">
<div id="idGeneratorForPackage,int32">
<dt><pre><span class="Keyword">proc</span> <a href="#idGeneratorForPackage%2Cint32"><span class="Identifier">idGeneratorForPackage</span></a><span class="Other">(</span><span class="Identifier">nextIdWillBe</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</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/ast.nim#L978" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L978" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="idGeneratorFromModule-procs-all">
<div id="idGeneratorFromModule,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#idGeneratorFromModule%2CPSym"><span class="Identifier">idGeneratorFromModule</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</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/ast.nim#L974" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L974" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="indexType-procs-all">
<div id="indexType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#indexType%2CPType"><span class="Identifier">indexType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1353" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1353" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initIdTable-procs-all">
<div id="initIdTable">
<dt><pre><span class="Keyword">proc</span> <a href="#initIdTable"><span class="Identifier">initIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#TIdTable"><span class="Identifier">TIdTable</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/ast.nim#L1631" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1631" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initNodeTable-procs-all">
<div id="initNodeTable">
<dt><pre><span class="Keyword">proc</span> <a href="#initNodeTable"><span class="Identifier">initNodeTable</span></a><span class="Other">(</span><span class="Identifier">ignoreTypes</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#TNodeTable"><span class="Identifier">TNodeTable</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/ast.nim#L1645" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1645" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initObjectSet-procs-all">
<div id="initObjectSet">
<dt><pre><span class="Keyword">proc</span> <a href="#initObjectSet"><span class="Identifier">initObjectSet</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#TObjectSet"><span class="Identifier">TObjectSet</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/ast.nim#L1641" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1641" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initStrTable-procs-all">
<div id="initStrTable">
<dt><pre><span class="Keyword">proc</span> <a href="#initStrTable"><span class="Identifier">initStrTable</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#TStrTable"><span class="Identifier">TStrTable</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/ast.nim#L1627" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1627" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isAtom-procs-all">
<div id="isAtom,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isAtom%2CPNode"><span class="Identifier">isAtom</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1956" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1956" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isCallExpr-procs-all">
<div id="isCallExpr,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isCallExpr%2CPNode"><span class="Identifier">isCallExpr</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1006" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1006" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isClosure-procs-all">
<div id="isClosure,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isClosure%2CPType"><span class="Identifier">isClosure</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2078" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2078" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isClosureIterator-procs-all">
<div id="isClosureIterator,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isClosureIterator%2CPType"><span class="Identifier">isClosureIterator</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2075" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2075" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isCompileTimeProc-procs-all">
<div id="isCompileTimeProc,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isCompileTimeProc%2CPSym"><span class="Identifier">isCompileTimeProc</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L1943" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1943" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isEmptyTupleType-procs-all">
<div id="isEmptyTupleType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isEmptyTupleType%2CPType"><span class="Identifier">isEmptyTupleType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1478" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1478" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isEmptyType-procs-all">
<div id="isEmptyType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isEmptyType%2CPType"><span class="Identifier">isEmptyType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
'void' and 'typed' types are often equivalent to 'nil' these days:
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1959" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1959" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isExplicitCallConv-procs-all">
<div id="isExplicitCallConv,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isExplicitCallConv%2CPSym"><span class="Identifier">isExplicitCallConv</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L2084" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2084" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isGCedMem-procs-all">
<div id="isGCedMem,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isGCedMem%2CPType"><span class="Identifier">isGCedMem</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1664" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1664" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isGenericParams-procs-all">
<div id="isGenericParams,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isGenericParams%2CPNode"><span class="Identifier">isGenericParams</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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>
used to judge whether a node is generic params.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1898" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1898" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isGenericRoutine-procs-all">
<div id="isGenericRoutine,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isGenericRoutine%2CPNode"><span class="Identifier">isGenericRoutine</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1902" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1902" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="isGenericRoutine,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isGenericRoutine%2CPSym"><span class="Identifier">isGenericRoutine</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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>
<p>determines if this symbol represents a generic routine or an instance of one. This should be renamed accordingly and <tt class="docutils literal"><span class="pre"><span class="Identifier">isGenericRoutineStrict</span></span></tt> should take this name instead.</p>
<p>Warning/XXX: Unfortunately, it considers a proc kind symbol flagged with sfFromGeneric as a generic routine. Instead this should likely not be the case and the concepts should be teased apart:</p>
<ul class="simple"><li>generic definition</li>
<li>generic instance</li>
<li>either generic definition or instance</li>
</ul>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1911" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1911" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isGenericRoutineStrict-procs-all">
<div id="isGenericRoutineStrict,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isGenericRoutineStrict%2CPSym"><span class="Identifier">isGenericRoutineStrict</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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>
determines if this symbol represents a generic routine the unusual name is so it doesn't collide and eventually replaces <tt class="docutils literal"><span class="pre"><span class="Identifier">isGenericRoutine</span></span></tt>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1905" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1905" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isImportedException-procs-all">
<div id="isImportedException,PType,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#isImportedException%2CPType%2CConfigRef"><span class="Identifier">isImportedException</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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/ast.nim#L2020" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2020" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isInfixAs-procs-all">
<div id="isInfixAs,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isInfixAs%2CPNode"><span class="Identifier">isInfixAs</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L2029" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2029" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isInlineIterator-procs-all">
<div id="isInlineIterator,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isInlineIterator%2CPType"><span class="Identifier">isInlineIterator</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2069" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2069" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isIterator-procs-all">
<div id="isIterator,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isIterator%2CPType"><span class="Identifier">isIterator</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2072" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2072" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isMetaType-procs-all">
<div id="isMetaType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isMetaType%2CPType"><span class="Identifier">isMetaType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1243" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1243" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isNewStyleConcept-procs-all">
<div id="isNewStyleConcept,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isNewStyleConcept%2CPNode"><span class="Identifier">isNewStyleConcept</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L2150" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2150" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isNimcall-procs-all">
<div id="isNimcall,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isNimcall%2CPSym"><span class="Identifier">isNimcall</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L2081" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2081" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isOutParam-procs-all">
<div id="isOutParam,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isOutParam%2CPType"><span class="Identifier">isOutParam</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2154" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2154" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isRoutine-procs-all">
<div id="isRoutine,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isRoutine%2CPSym"><span class="Identifier">isRoutine</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L1940" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1940" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isSingletonTupleType-procs-all">
<div id="isSingletonTupleType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isSingletonTupleType%2CPType"><span class="Identifier">isSingletonTupleType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1479" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1479" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isSinkParam-procs-all">
<div id="isSinkParam,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isSinkParam%2CPSym"><span class="Identifier">isSinkParam</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</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/ast.nim#L2087" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2087" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isSinkType-procs-all">
<div id="isSinkType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isSinkType%2CPType"><span class="Identifier">isSinkType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2090" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2090" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isTrue-procs-all">
<div id="isTrue,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isTrue%2CPNode"><span class="Identifier">isTrue</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L2164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isUnresolvedStatic-procs-all">
<div id="isUnresolvedStatic,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isUnresolvedStatic%2CPType"><span class="Identifier">isUnresolvedStatic</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1248" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1248" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="kidsLen-procs-all">
<div id="kidsLen,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#kidsLen%2CPType"><span class="Identifier">kidsLen</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1472" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1472" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="last-procs-all">
<div id="last,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#last%2CPType"><span class="Identifier">last</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1348" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1348" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lastSon-procs-all">
<div id="lastSon,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#lastSon%2CPNode"><span class="Identifier">lastSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a> {.<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/ast.nim#L1333" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1333" 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="ast.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/ast.nim#L1011" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1011" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="len,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CPType"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1443" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1443" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="linkTo-procs-all">
<div id="linkTo,PSym,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#linkTo%2CPSym%2CPType"><span class="Identifier">linkTo</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a> {.<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/ast.nim#L1256" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1256" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="linkTo,PType,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#linkTo%2CPType%2CPSym"><span class="Identifier">linkTo</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1251" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1251" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="makeStmtList-procs-all">
<div id="makeStmtList,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#makeStmtList%2CPNode"><span class="Identifier">makeStmtList</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1963" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1963" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newAtom-procs-all">
<div id="newAtom,PIdent,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newAtom%2CPIdent%2CTLineInfo"><span class="Identifier">newAtom</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="ast.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/ast.nim#L1169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newAtom,TNodeKind,BiggestFloat,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newAtom%2CTNodeKind%2CBiggestFloat%2CTLineInfo"><span class="Identifier">newAtom</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">floatVal</span><span class="Other">:</span> <span class="Identifier">BiggestFloat</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="ast.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/ast.nim#L1177" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1177" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newAtom,TNodeKind,BiggestInt,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newAtom%2CTNodeKind%2CBiggestInt%2CTLineInfo"><span class="Identifier">newAtom</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">intVal</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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="ast.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/ast.nim#L1173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newAtom,TNodeKind,sinkstring,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#newAtom%2CTNodeKind%2Csinkstring%2CTLineInfo"><span class="Identifier">newAtom</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">sink</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="ast.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/ast.nim#L1181" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1181" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newFloatNode-procs-all">
<div id="newFloatNode,TNodeKind,BiggestFloat">
<dt><pre><span class="Keyword">proc</span> <a href="#newFloatNode%2CTNodeKind%2CBiggestFloat"><span class="Identifier">newFloatNode</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">floatVal</span><span class="Other">:</span> <span class="Identifier">BiggestFloat</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1405" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1405" 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="ast.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/ast.nim#L1305" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1305" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newIntNode-procs-all">
<div id="newIntNode,TNodeKind,BiggestInt">
<dt><pre><span class="Keyword">proc</span> <a href="#newIntNode%2CTNodeKind%2CBiggestInt"><span class="Identifier">newIntNode</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">intVal</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1325" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1325" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newIntNode,TNodeKind,Int128">
<dt><pre><span class="Keyword">proc</span> <a href="#newIntNode%2CTNodeKind%2CInt128"><span class="Identifier">newIntNode</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">intVal</span><span class="Other">:</span> <a href="int128.html#Int128"><span class="Identifier">Int128</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1329" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1329" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newIntTypeNode-procs-all">
<div id="newIntTypeNode,BiggestInt,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#newIntTypeNode%2CBiggestInt%2CPType"><span class="Identifier">newIntTypeNode</span></a><span class="Other">(</span><span class="Identifier">intVal</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1378" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1378" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newIntTypeNode,Int128,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#newIntTypeNode%2CInt128%2CPType"><span class="Identifier">newIntTypeNode</span></a><span class="Other">(</span><span class="Identifier">intVal</span><span class="Other">:</span> <a href="int128.html#Int128"><span class="Identifier">Int128</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1401" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1401" 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="ast.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/ast.nim#L1141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1141" 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="ast.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/ast.nim#L1164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1164" 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="ast.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/ast.nim#L1146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1146" 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="ast.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/ast.nim#L1151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1151" 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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1158" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newOpenSym-procs-all">
<div id="newOpenSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#newOpenSym%2CPNode"><span class="Identifier">newOpenSym</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a> {.<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/ast.nim#L1322" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1322" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newProcNode-procs-all">
<div id="newProcNode,TNodeKind,TLineInfo,PNode,PNode,PNode,PNode,PNode,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#newProcNode%2CTNodeKind%2CTLineInfo%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode%2CPNode"><span class="Identifier">newProcNode</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">body</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">params</span><span class="Other">,</span> <span class="Identifier">name</span><span class="Other">,</span>
<span class="Identifier">pattern</span><span class="Other">,</span> <span class="Identifier">genericParams</span><span class="Other">,</span> <span class="Identifier">pragmas</span><span class="Other">,</span> <span class="Identifier">exceptions</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1417" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1417" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newProcType-procs-all">
<div id="newProcType,TLineInfo,IdGenerator,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#newProcType%2CTLineInfo%2CIdGenerator%2CPSym"><span class="Identifier">newProcType</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">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2093" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2093" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newSons-procs-all">
<div id="newSons,PNode,int">
<dt><pre><span class="Keyword">proc</span> <a href="#newSons%2CPNode%2Cint"><span class="Identifier">newSons</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">length</span><span class="Other">:</span> <span class="Identifier">int</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/ast.nim#L1558" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1558" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newSons,PType,int">
<dt><pre><span class="Keyword">proc</span> <a href="#newSons%2CPType%2Cint"><span class="Identifier">newSons</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">length</span><span class="Other">:</span> <span class="Identifier">int</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/ast.nim#L1561" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1561" 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="ast.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/ast.nim#L1409" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1409" 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="ast.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/ast.nim#L1413" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1413" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newSym-procs-all">
<div id="newSym,TSymKind,PIdent,IdGenerator,PSym,TLineInfo,TOptions">
<dt><pre><span class="Keyword">proc</span> <a href="#newSym%2CTSymKind%2CPIdent%2CIdGenerator%2CPSym%2CTLineInfo%2CTOptions"><span class="Identifier">newSym</span></a><span class="Other">(</span><span class="Identifier">symKind</span><span class="Other">:</span> <a href="ast.html#TSymKind"><span class="Identifier">TSymKind</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="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="ast.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="Identifier">options</span><span class="Other">:</span> <a href="options.html#TOptions"><span class="Identifier">TOptions</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1221" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1221" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newSymNode-procs-all">
<div id="newSymNode,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#newSymNode%2CPSym"><span class="Identifier">newSymNode</span></a><span class="Other">(</span><span class="Identifier">sym</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1310" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1310" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<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="ast.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="ast.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/ast.nim#L1316" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1316" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newTree-procs-all">
<div id="newTree,TNodeKind,varargs[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#newTree%2CTNodeKind%2Cvarargs%5BPNode%5D"><span class="Identifier">newTree</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">children</span><span class="Other">:</span> <span class="Identifier">varargs</span><span class="Other">[</span><a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1191" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1191" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newTree,TNodeKind,TLineInfo,varargs[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#newTree%2CTNodeKind%2CTLineInfo%2Cvarargs%5BPNode%5D"><span class="Identifier">newTree</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">varargs</span><span class="Other">[</span><a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newTreeI-procs-all">
<div id="newTreeI,TNodeKind,TLineInfo,varargs[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#newTreeI%2CTNodeKind%2CTLineInfo%2Cvarargs%5BPNode%5D"><span class="Identifier">newTreeI</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">varargs</span><span class="Other">[</span><a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1197" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1197" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newTreeIT-procs-all">
<div id="newTreeIT,TNodeKind,TLineInfo,PType,varargs[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#newTreeIT%2CTNodeKind%2CTLineInfo%2CPType%2Cvarargs%5BPNode%5D"><span class="Identifier">newTreeIT</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span>
<span class="Identifier">children</span><span class="Other">:</span> <span class="Identifier">varargs</span><span class="Other">[</span><a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1203" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1203" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newType-procs-all">
<div id="newType,TTypeKind,IdGenerator,PSym,sinkPType">
<dt><pre><span class="Keyword">proc</span> <a href="#newType%2CTTypeKind%2CIdGenerator%2CPSym%2CsinkPType"><span class="Identifier">newType</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="ast.html#TTypeKind"><span class="Identifier">TTypeKind</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
<span class="Identifier">son</span><span class="Other">:</span> <span class="Identifier">sink</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> <span class="Other">=</span> <span class="Keyword">nil</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1536" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1536" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nextTypeId-procs-all">
<div id="nextTypeId,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#nextTypeId%2CIdGenerator"><span class="Identifier">nextTypeId</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#ItemId"><span class="Identifier">ItemId</span></a> {.<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/ast.nim#L986" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L986" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="originatingModule-procs-all">
<div id="originatingModule,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#originatingModule%2CPSym"><span class="Identifier">originatingModule</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1936" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1936" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="owner-procs-all">
<div id="owner">
<dt><pre><span class="Keyword">proc</span> <a href="#owner"><span class="Identifier">owner</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a> <span class="Operator">|</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L837" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L837" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="paramsLen-procs-all">
<div id="paramsLen,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#paramsLen%2CPType"><span class="Identifier">paramsLen</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1461" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1461" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="propagateToOwner-procs-all">
<div id="propagateToOwner,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#propagateToOwner%2CPType%2CPType"><span class="Identifier">propagateToOwner</span></a><span class="Other">(</span><span class="Identifier">owner</span><span class="Other">,</span> <span class="Identifier">elem</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">propagateHasAsgn</span> <span class="Other">=</span> <span class="Identifier">true</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/ast.nim#L1668" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1668" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="rawAddSon-procs-all">
<div id="rawAddSon,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#rawAddSon%2CPType%2CPType"><span class="Identifier">rawAddSon</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">son</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">propagateHasAsgn</span> <span class="Other">=</span> <span class="Identifier">true</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/ast.nim#L1693" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1693" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="replaceFirstSon-procs-all">
<div id="replaceFirstSon,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#replaceFirstSon%2CPNode%2CPNode"><span class="Identifier">replaceFirstSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">newson</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</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/ast.nim#L1342" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1342" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="replaceSon-procs-all">
<div id="replaceSon,PNode,int,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#replaceSon%2CPNode%2Cint%2CPNode"><span class="Identifier">replaceSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.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">newson</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</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/ast.nim#L1345" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1345" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="resetIdTable-procs-all">
<div id="resetIdTable,TIdTable[T]">
<dt><pre><span class="Keyword">proc</span> <a href="#resetIdTable%2CTIdTable%5BT%5D"><span class="Identifier">resetIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="ast.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></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1635" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1635" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="returnType-procs-all">
<div id="returnType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#returnType%2CPType"><span class="Identifier">returnType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1359" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1359" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="safeArrLen-procs-all">
<div id="safeArrLen,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#safeArrLen%2CPNode"><span class="Identifier">safeArrLen</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.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 for array-like objects (strings passed as openArray in VM).
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1019" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1019" 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="ast.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/ast.nim#L1014" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1014" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sameTupleLengths-procs-all">
<div id="sameTupleLengths,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#sameTupleLengths%2CPType%2CPType"><span class="Identifier">sameTupleLengths</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="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1446" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1446" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setIndexType-procs-all">
<div id="setIndexType,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#setIndexType%2CPType%2CPType"><span class="Identifier">setIndexType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">idx</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</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/ast.nim#L1361" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1361" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setInfoRecursive-procs-all">
<div id="setInfoRecursive,PNode,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#setInfoRecursive%2CPNode%2CTLineInfo"><span class="Identifier">setInfoRecursive</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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><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>
set line info recursively
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1113" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1113" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setOwner-procs-all">
<div id="setOwner,,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#setOwner%2C%2CPSym"><span class="Identifier">setOwner</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a> <span class="Operator">|</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span> {.<span class="Identifier">inline</span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L840" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L840" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setReturnType-procs-all">
<div id="setReturnType,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#setReturnType%2CPType%2CPType"><span class="Identifier">setReturnType</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</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/ast.nim#L1360" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1360" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setSon-procs-all">
<div id="setSon,PType,sinkPType">
<dt><pre><span class="Keyword">proc</span> <a href="#setSon%2CPType%2CsinkPType"><span class="Identifier">setSon</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">son</span><span class="Other">:</span> <span class="Identifier">sink</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</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/ast.nim#L1548" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1548" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setSons-procs-all">
<div id="setSons,PType,sinkseq[PType]">
<dt><pre><span class="Keyword">proc</span> <a href="#setSons%2CPType%2Csinkseq%5BPType%5D"><span class="Identifier">setSons</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">sons</span><span class="Other">:</span> <span class="Identifier">sink</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span><span class="Other">)</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/ast.nim#L1547" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1547" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setSonsLen-procs-all">
<div id="setSonsLen,PType,int">
<dt><pre><span class="Keyword">proc</span> <a href="#setSonsLen%2CPType%2Cint"><span class="Identifier">setSonsLen</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</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/ast.nim#L1549" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1549" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setUseIc-procs-all">
<div id="setUseIc,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#setUseIc%2Cbool"><span class="Identifier">setUseIc</span></a><span class="Other">(</span><span class="Identifier">useIc</span><span class="Other">:</span> <span class="Identifier">bool</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/ast.nim#L851" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L851" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="shallowCopy-procs-all">
<div id="shallowCopy,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#shallowCopy%2CPNode"><span class="Identifier">shallowCopy</span></a><span class="Other">(</span><span class="Identifier">src</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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="Identifier">KeyError</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/ast.nim#L1794" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1794" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="signatureLen-procs-all">
<div id="signatureLen,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#signatureLen%2CPType"><span class="Identifier">signatureLen</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1458" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1458" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipColon-procs-all">
<div id="skipColon,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipColon%2CPNode"><span class="Identifier">skipColon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L2032" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2032" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipGenericOwner-procs-all">
<div id="skipGenericOwner,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#skipGenericOwner%2CPSym"><span class="Identifier">skipGenericOwner</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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>
Generic instantiations are owned by their originating generic symbol. This proc skips such owners and goes straight to the owner of the generic itself (the module or the enclosing proc).
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1925" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1925" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipHiddenAddr-procs-all">
<div id="skipHiddenAddr,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipHiddenAddr%2CPNode"><span class="Identifier">skipHiddenAddr</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a> {.<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/ast.nim#L2147" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2147" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipModifier-procs-all">
<div id="skipModifier,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#skipModifier%2CPType"><span class="Identifier">skipModifier</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1351" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1351" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipPragmaExpr-procs-all">
<div id="skipPragmaExpr,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipPragmaExpr%2CPNode"><span class="Identifier">skipPragmaExpr</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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>
if pragma expr, give the node the pragmas are applied to, otherwise give node itself
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1105" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1105" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipStmtList-procs-all">
<div id="skipStmtList,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipStmtList%2CPNode"><span class="Identifier">skipStmtList</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1970" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1970" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipTypes-procs-all">
<div id="skipTypes,PType,TTypeKinds">
<dt><pre><span class="Keyword">proc</span> <a href="#skipTypes%2CPType%2CTTypeKinds"><span class="Identifier">skipTypes</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">kinds</span><span class="Other">:</span> <a href="ast.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
Used throughout the compiler code to test whether a type tree contains or doesn't contain a specific type/types - it is often the case that only the last child nodes of a type tree need to be searched. This is a really hot path within the compiler!
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1370" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1370" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="skipTypes,PType,TTypeKinds,int">
<dt><pre><span class="Keyword">proc</span> <a href="#skipTypes%2CPType%2CTTypeKinds%2Cint"><span class="Identifier">skipTypes</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">kinds</span><span class="Other">:</span> <a href="ast.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a><span class="Other">;</span> <span class="Identifier">maxIters</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1649" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1649" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipTypesOrNil-procs-all">
<div id="skipTypesOrNil,PType,TTypeKinds">
<dt><pre><span class="Keyword">proc</span> <a href="#skipTypesOrNil%2CPType%2CTTypeKinds"><span class="Identifier">skipTypesOrNil</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">kinds</span><span class="Other">:</span> <a href="ast.html#TTypeKinds"><span class="Identifier">TTypeKinds</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
same as skipTypes but handles 'nil'
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1657" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1657" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toHumanStr-procs-all">
<div id="toHumanStr,TSymKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toHumanStr%2CTSymKind"><span class="Identifier">toHumanStr</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="ast.html#TSymKind"><span class="Identifier">TSymKind</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>
strips leading <tt class="docutils literal"><span class="pre"><span class="Identifier">sk</span></span></tt>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2139" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2139" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toHumanStr,TTypeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toHumanStr%2CTTypeKind"><span class="Identifier">toHumanStr</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="ast.html#TTypeKind"><span class="Identifier">TTypeKind</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>
strips leading <tt class="docutils literal"><span class="pre"><span class="Identifier">tk</span></span></tt>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2143" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2143" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toObject-procs-all">
<div id="toObject,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#toObject%2CPType"><span class="Identifier">toObject</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
If <tt class="docutils literal"><span class="pre">typ</span></tt> is a tyRef then its immediate son is returned (which in many cases should be a <tt class="docutils literal"><span class="pre">tyObject</span></tt>). Otherwise <tt class="docutils literal"><span class="pre">typ</span></tt> is simply returned as-is.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1992" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1992" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toObjectFromRefPtrGeneric-procs-all">
<div id="toObjectFromRefPtrGeneric,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#toObjectFromRefPtrGeneric%2CPType"><span class="Identifier">toObjectFromRefPtrGeneric</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L2000" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2000" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toRef-procs-all">
<div id="toRef,PType,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#toRef%2CPType%2CIdGenerator"><span class="Identifier">toRef</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
If <tt class="docutils literal"><span class="pre">typ</span></tt> is a tyObject then it is converted into a <tt class="docutils literal"><span class="pre"><span class="Keyword">ref</span> <span class="Operator">&lt;</span><span class="Identifier">typ</span><span class="Operator">&gt;</span></span></tt> and returned. Otherwise <tt class="docutils literal"><span class="pre">typ</span></tt> is simply returned as-is.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1985" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1985" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toVar-procs-all">
<div id="toVar,PType,TTypeKind,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#toVar%2CPType%2CTTypeKind%2CIdGenerator"><span class="Identifier">toVar</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <a href="ast.html#TTypeKind"><span class="Identifier">TTypeKind</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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>
If <tt class="docutils literal"><span class="pre">typ</span></tt> is not a tyVar then it is converted into a <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span> <span class="Operator">&lt;</span><span class="Identifier">typ</span><span class="Operator">&gt;</span></span></tt> and returned. Otherwise <tt class="docutils literal"><span class="pre">typ</span></tt> is simply returned as-is.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1978" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1978" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionGenericParamToType-procs-all">
<div id="transitionGenericParamToType,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionGenericParamToType%2CPSym"><span class="Identifier">transitionGenericParamToType</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1760" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1760" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionIntKind-procs-all">
<div id="transitionIntKind,PNode,range[]">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionIntKind%2CPNode%2Crange%5B%5D"><span class="Identifier">transitionIntKind</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <span class="Identifier">range</span><span class="Other">[</span><span class="Identifier">nkCharLit</span> <span class="Operator">..</span> <span class="Identifier">nkUInt64Lit</span><span class="Other">]</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/ast.nim#L1738" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1738" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionIntToFloatKind-procs-all">
<div id="transitionIntToFloatKind,PNode,range[]">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionIntToFloatKind%2CPNode%2Crange%5B%5D"><span class="Identifier">transitionIntToFloatKind</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <span class="Identifier">range</span><span class="Other">[</span><span class="Identifier">nkFloatLit</span> <span class="Operator">..</span> <span class="Identifier">nkFloat128Lit</span><span class="Other">]</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/ast.nim#L1742" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1742" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionNoneToSym-procs-all">
<div id="transitionNoneToSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionNoneToSym%2CPNode"><span class="Identifier">transitionNoneToSym</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1746" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1746" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionRoutineSymKind-procs-all">
<div id="transitionRoutineSymKind,PSym,range[]">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionRoutineSymKind%2CPSym%2Crange%5B%5D"><span class="Identifier">transitionRoutineSymKind</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <span class="Identifier">range</span><span class="Other">[</span><span class="Identifier">skProc</span> <span class="Operator">..</span> <span class="Identifier">skTemplate</span><span class="Other">]</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/ast.nim#L1763" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1763" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionSonsKind-procs-all">
<div id="transitionSonsKind,PNode,range[]">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionSonsKind%2CPNode%2Crange%5B%5D"><span class="Identifier">transitionSonsKind</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <span class="Identifier">range</span><span class="Other">[</span><span class="Identifier">nkComesFrom</span> <span class="Operator">..</span> <span class="Identifier">nkTupleConstr</span><span class="Other">]</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/ast.nim#L1734" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1734" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionToLet-procs-all">
<div id="transitionToLet,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#transitionToLet%2CPSym"><span class="Identifier">transitionToLet</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1768" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1768" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="truncateInferredTypeCandidates-procs-all">
<div id="truncateInferredTypeCandidates,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#truncateInferredTypeCandidates%2CPType"><span class="Identifier">truncateInferredTypeCandidates</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</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/ast.nim#L1564" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1564" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typeBodyImpl-procs-all">
<div id="typeBodyImpl,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#typeBodyImpl%2CPType"><span class="Identifier">typeBodyImpl</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> {.<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/ast.nim#L1366" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1366" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="withInfo-procs-all">
<div id="withInfo,PNode,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#withInfo%2CPNode%2CTLineInfo"><span class="Identifier">withInfo</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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="ast.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/ast.nim#L1301" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1301" 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="genericBodyParams-iterators-all">
<div id="genericBodyParams.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericBodyParams.i%2CPType"><span class="Identifier">genericBodyParams</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1506" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1506" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInstParamPairs-iterators-all">
<div id="genericInstParamPairs.i,PType,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericInstParamPairs.i%2CPType%2CPType"><span class="Identifier">genericInstParamPairs</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1487" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1487" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInstParams-iterators-all">
<div id="genericInstParams.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericInstParams.i%2CPType"><span class="Identifier">genericInstParams</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">bool</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1483" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1483" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInvocationAndBodyElements-iterators-all">
<div id="genericInvocationAndBodyElements.i,PType,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericInvocationAndBodyElements.i%2CPType%2CPType"><span class="Identifier">genericInvocationAndBodyElements</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1495" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1495" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInvocationParamPairs-iterators-all">
<div id="genericInvocationParamPairs.i,PType,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericInvocationParamPairs.i%2CPType%2CPType"><span class="Identifier">genericInvocationParamPairs</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">bool</span><span class="Other">,</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1499" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1499" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genericInvocationParams-iterators-all">
<div id="genericInvocationParams.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#genericInvocationParams.i%2CPType"><span class="Identifier">genericInvocationParams</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">bool</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1491" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1491" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="ikids-iterators-all">
<div id="ikids.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#ikids.i%2CPType"><span class="Identifier">ikids</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1514" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1514" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<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="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1950" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1950" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="kids-iterators-all">
<div id="kids.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#kids.i%2CPType"><span class="Identifier">kids</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1529" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1529" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="pairs-iterators-all">
<div id="pairs.i,PNode">
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CPNode"><span class="Identifier">pairs</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><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">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</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/ast.nim#L1953" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1953" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="paramTypePairs-iterators-all">
<div id="paramTypePairs.i,PType,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#paramTypePairs.i%2CPType%2CPType"><span class="Identifier">paramTypePairs</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1524" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1524" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="paramTypes-iterators-all">
<div id="paramTypes.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#paramTypes.i%2CPType"><span class="Identifier">paramTypes</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1521" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1521" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="signature-iterators-all">
<div id="signature.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#signature.i%2CPType"><span class="Identifier">signature</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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/ast.nim#L1532" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1532" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="tupleTypePairs-iterators-all">
<div id="tupleTypePairs.i,PType,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#tupleTypePairs.i%2CPType%2CPType"><span class="Identifier">tupleTypePairs</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1449" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1449" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="underspecifiedPairs-iterators-all">
<div id="underspecifiedPairs.i,PType,PType,int,int">
<dt><pre><span class="Keyword">iterator</span> <a href="#underspecifiedPairs.i%2CPType%2CPType%2Cint%2Cint"><span class="Identifier">underspecifiedPairs</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="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">start</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span> <span class="Identifier">without</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1453" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1453" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="userTypeClassInstParams-iterators-all">
<div id="userTypeClassInstParams.i,PType">
<dt><pre><span class="Keyword">iterator</span> <a href="#userTypeClassInstParams.i%2CPType"><span class="Identifier">userTypeClassInstParams</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">bool</span><span class="Other">,</span> <a href="ast.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>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1510" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1510" 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="ast.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="ast.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1035" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1035" 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="ast.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="ast.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1032" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1032" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[].t,PType,BackwardsIndex">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D.t%2CPType%2CBackwardsIndex"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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="ast.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1048" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1048" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[].t,PType,int">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D.t%2CPType%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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="ast.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1045" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1045" 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="ast.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="ast.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/ast.nim#L1036" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1036" 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="ast.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="ast.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/ast.nim#L1033" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1033" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[]=.t,PType,BackwardsIndex,PType">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D%3D.t%2CPType%2CBackwardsIndex%2CPType"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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="ast.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/ast.nim#L1049" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1049" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="[]=.t,PType,int,PType">
<dt><pre><span class="Keyword">template</span> <a href="#%5B%5D%3D.t%2CPType%2Cint%2CPType"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</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="ast.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/ast.nim#L1046" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1046" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="detailedInfo-templates-all">
<div id="detailedInfo.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#detailedInfo.t%2CPSym"><span class="Identifier">detailedInfo</span></a><span class="Other">(</span><span class="Identifier">sym</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2066" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2066" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="fileIdx-templates-all">
<div id="fileIdx.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#fileIdx.t%2CPSym"><span class="Identifier">fileIdx</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1261" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1261" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="filename-templates-all">
<div id="filename.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#filename.t%2CPSym"><span class="Identifier">filename</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1265" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1265" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstSon-templates-all">
<div id="firstSon.t,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#firstSon.t%2CPNode"><span class="Identifier">firstSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1336" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1336" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="has2Sons-templates-all">
<div id="has2Sons.t,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#has2Sons.t%2CPNode"><span class="Identifier">has2Sons</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1340" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1340" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasDestructor-templates-all">
<div id="hasDestructor.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#hasDestructor.t%2CPType"><span class="Identifier">hasDestructor</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2058" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2058" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasSon-templates-all">
<div id="hasSon.t,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#hasSon.t%2CPNode"><span class="Identifier">hasSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1339" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1339" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="id-templates-all">
<div id="id.t">
<dt><pre><span class="Keyword">template</span> <a href="#id.t"><span class="Identifier">id</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a> <span class="Operator">|</span> <a href="ast.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L961" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L961" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="incompleteType-templates-all">
<div id="incompleteType.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#incompleteType.t%2CPType"><span class="Identifier">incompleteType</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2060" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2060" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initSymMapping-templates-all">
<div id="initSymMapping.t">
<dt><pre><span class="Keyword">template</span> <a href="#initSymMapping.t"><span class="Identifier">initSymMapping</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#SymMapping"><span class="Identifier">SymMapping</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2172" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2172" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initTypeMapping-templates-all">
<div id="initTypeMapping.t">
<dt><pre><span class="Keyword">template</span> <a href="#initTypeMapping.t"><span class="Identifier">initTypeMapping</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#TypeMapping"><span class="Identifier">TypeMapping</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L2173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="paramTypeToNodeIndex-templates-all">
<div id="paramTypeToNodeIndex.t,int">
<dt><pre><span class="Keyword">template</span> <a href="#paramTypeToNodeIndex.t%2Cint"><span class="Identifier">paramTypeToNodeIndex</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1527" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1527" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="previouslyInferred-templates-all">
<div id="previouslyInferred.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#previouslyInferred.t%2CPType"><span class="Identifier">previouslyInferred</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1209" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1209" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="secondSon-templates-all">
<div id="secondSon.t,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#secondSon.t%2CPNode"><span class="Identifier">secondSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L1337" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1337" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setLastSon-templates-all">
<div id="setLastSon.t,PNode,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#setLastSon.t%2CPNode%2CPNode"><span class="Identifier">setLastSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1334" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1334" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toId-templates-all">
<div id="toId.t,ItemId">
<dt><pre><span class="Keyword">template</span> <a href="#toId.t%2CItemId"><span class="Identifier">toId</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="ast.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L957" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L957" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="transitionSymKindCommon-templates-all">
<div id="transitionSymKindCommon.t,TSymKind">
<dt><pre><span class="Keyword">template</span> <a href="#transitionSymKindCommon.t%2CTSymKind"><span class="Identifier">transitionSymKindCommon</span></a><span class="Other">(</span><span class="Identifier">k</span><span class="Other">:</span> <a href="ast.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/ast.nim#L1749" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L1749" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typ-templates-all">
<div id="typ.t,PNode">
<dt><pre><span class="Keyword">template</span> <a href="#typ.t%2CPNode"><span class="Identifier">typ</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ast.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ast.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast.nim#L834" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L834" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typeCompleted-templates-all">
<div id="typeCompleted.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#typeCompleted.t%2CPSym"><span class="Identifier">typeCompleted</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="ast.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/ast.nim#L2063" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast.nim#L2063" 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-09-27 04:02:28 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>