guards
This module implements the 'implies' relation for guards.
Imports
- ast, astalgo, msgs, magicsys, nimsets, trees, types, renderer, idents, saturate, modulegraphs, options, lineinfos, int128
Types
Operators = object opNot*, opContains*, opLe*, opLt*, opAnd*, opOr*, opIsNil*, opEq*: PSym opAdd*, opSub*, opMul*, opDiv*, opLen*: PSym
- Source Edit
TModel = object s*: seq[PNode] o*: Operators beSmart*: bool
- Source Edit
Procs
proc interestingCaseExpr(m: PNode): bool {...}{.raises: [], tags: [].}
- Source Edit
proc initOperators(g: ModuleGraph): Operators {...}{.raises: [], tags: [].}
- Source Edit
proc buildCall(op: PSym; a: PNode): PNode {...}{.raises: [], tags: [].}
- Source Edit
proc buildCall(op: PSym; a, b: PNode): PNode {...}{.raises: [], tags: [].}
- Source Edit
proc lowBound(conf: ConfigRef; x: PNode): PNode {...}{. raises: [Exception, ValueError, IOError, ERecoverableError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc highBound(conf: ConfigRef; x: PNode; o: Operators): PNode {...}{. raises: [Exception, ValueError, IOError, ERecoverableError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc buildLe(o: Operators; a, b: PNode): PNode {...}{.raises: [], tags: [].}
- Source Edit
proc canon(n: PNode; o: Operators): PNode {...}{.raises: [], tags: [].}
- Source Edit
proc buildAdd(a: PNode; b: BiggestInt; o: Operators): PNode {...}{.raises: [], tags: [].}
- Source Edit
proc addFact(m: var TModel; nn: PNode) {...}{.raises: [ERecoverableError], tags: [].}
- Source Edit
proc addFactNeg(m: var TModel; n: PNode) {...}{.raises: [ERecoverableError], tags: [].}
- Source Edit
proc sameTree(a, b: PNode): bool {...}{.raises: [], tags: [].}
- Source Edit
proc invalidateFacts(s: var seq[PNode]; n: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc invalidateFacts(m: var TModel; n: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc doesImply(facts: TModel; prop: PNode): TImplication {...}{. raises: [ERecoverableError, Exception, ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc impliesNotNil(m: TModel; arg: PNode): TImplication {...}{. raises: [ERecoverableError, Exception, ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc simpleSlice(a, b: PNode): BiggestInt {...}{.raises: [], tags: [].}
- Source Edit
proc proveLe(m: TModel; a, b: PNode): TImplication {...}{. raises: [ERecoverableError, Exception, ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc addFactLe(m: var TModel; a, b: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc addFactLt(m: var TModel; a, b: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc addDiscriminantFact(m: var TModel; n: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc addAsgnFact(m: var TModel; key, value: PNode) {...}{.raises: [], tags: [].}
- Source Edit
proc sameSubexprs(m: TModel; a, b: PNode): bool {...}{. raises: [ERecoverableError, Exception, ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
proc addCaseBranchFacts(m: var TModel; n: PNode; i: int) {...}{. raises: [ERecoverableError], tags: [].}
- Source Edit
proc checkFieldAccess(m: TModel; n: PNode; conf: ConfigRef) {...}{. raises: [ERecoverableError, Exception, ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
- Source Edit
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/compiler/guards.html