This module contains the data structures for the semantic checking phase.
ImportedModule = object
m*: PSym
case mode*: ImportMode
of importAll:
nil
of importSet:
imported*: IntSet
of importExcept:
exceptSet*: IntSetTBorrowState = enum bsNone, bsReturnNotMatch, bsNoDistinct, bsGeneric, bsNotSupported, bsMatch
TContext = object of TPassContext
enforceVoidContext*: PType
voidType*: PType
module*: PSym
currentScope*: PScope
moduleScope*: PScope
imports*: seq[ImportedModule]
topLevelScope*: PScope
p*: PProcCon
intTypeCache*: array[-5 .. 32, PType]
nilTypeCache*: PType
matchedConcept*: ptr TMatchedConcept
friendModules*: seq[PSym]
instCounter*: int
templInstCounter*: ref int
inGenericContext*: int
inStaticContext*: int
inUnrolledContext*: int
compilesContextId*: int
compilesContextIdGenerator*: int
inGenericInst*: int
converters*: seq[PSym]
patterns*: seq[PSym]
optionStack*: seq[POptionEntry]
libs*: seq[PLib]
semConstExpr*: proc (c: PContext; n: PNode; expectedType: PType = nil): PNode {.
nimcall.}
semExpr*: proc (c: PContext; n: PNode; flags: TExprFlags = {};
expectedType: PType = nil): PNode {.nimcall.}
semExprWithType*: proc (c: PContext; n: PNode; flags: TExprFlags = {};
expectedType: PType = nil): PNode {.nimcall.}
semTryExpr*: proc (c: PContext; n: PNode; flags: TExprFlags = {}): PNode {.
nimcall.}
semTryConstExpr*: proc (c: PContext; n: PNode; expectedType: PType = nil): PNode {.
nimcall.}
computeRequiresInit*: proc (c: PContext; t: PType): bool {.nimcall.}
hasUnresolvedArgs*: proc (c: PContext; n: PNode): bool
semOperand*: proc (c: PContext; n: PNode; flags: TExprFlags = {}): PNode {.
nimcall.}
semConstBoolExpr*: proc (c: PContext; n: PNode): PNode {.nimcall.}
semOverloadedCall*: proc (c: PContext; n, nOrig: PNode; filter: TSymKinds;
flags: TExprFlags; expectedType: PType = nil): PNode {.
nimcall.}
semTypeNode*: proc (c: PContext; n: PNode; prev: PType): PType {.nimcall.}
semInferredLambda*: proc (c: PContext; pt: Table[ItemId, PType]; n: PNode): PNode
semGenerateInstance*: proc (c: PContext; fn: PSym; pt: Table[ItemId, PType];
info: TLineInfo): PSym
instantiateOnlyProcType*: proc (c: PContext; pt: TypeMapping; prc: PSym;
info: TLineInfo): PType
includedFiles*: IntSet
pureEnumFields*: TStrTable
userPragmas*: TStrTable
evalContext*: PEvalContext
unknownIdents*: IntSet
generics*: seq[TInstantiationPair]
topStmts*: int
lastGenericIdx*: int
hloLoopDetector*: int
inParallelStmt*: int
instTypeBoundOp*: proc (c: PContext; dc: PSym; t: PType; info: TLineInfo;
op: TTypeAttachedOp; col: int): PSym {.nimcall.}
cache*: IdentCache
graph*: ModuleGraph
signatures*: TStrTable
recursiveDep*: string
suggestionsMade*: bool
isAmbiguous*: bool
features*: set[Feature]
inTypeContext*, inConceptDecl*: int
unusedImports*: seq[(PSym, TLineInfo)]
exportIndirections*: HashSet[(int, int)]
importModuleMap*: Table[int, int]
lastTLineInfo*: TLineInfo
sideEffects*: Table[int, seq[(TLineInfo, PSym)]]
inUncheckedAssignSection*: int
importModuleLookup*: Table[int, seq[int]]
skipTypes*: seq[PNode]
inTypeofContext*: intTExprFlag = enum efLValue, efWantIterator, efWantIterable, efInTypeof, efNeedStatic, efPreferStatic, efPreferNilResult, efWantStmt, efAllowStmt, efDetermineType, efExplain, efWantValue, efOperand, efNoSemCheck, efNoEvaluateGeneric, efInCall, efFromHlo, efNoSem2Check, efNoUndeclared, efIsDotCall, efCannotBeDotCall, efTypeAllowed, efWantNoDefaults, efIgnoreDefaults, efAllowSymChoice
proc rememberExpansion(c: PContext; info: TLineInfo; expandedSym: PSym) {.
...raises: [], tags: [], forbids: [].}
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/compiler/semdata.html