guards

Source   Edit  

This module implements the 'implies' relation for guards.

Types

TModel = object
  s*: seq[PNode]
  g*: ModuleGraph
  beSmart*: bool
Source   Edit  

Procs

proc addAsgnFact(m: var TModel; key, value: PNode) {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addCaseBranchFacts(m: var TModel; n: PNode; i: int) {....raises: [ValueError,
    IOError, KeyError, OSError, Exception, ERecoverableError],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addDiscriminantFact(m: var TModel; n: PNode) {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addFact(m: var TModel; nn: PNode) {....raises: [ValueError, IOError, KeyError,
    OSError, Exception, ERecoverableError],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addFactLe(m: var TModel; a, b: PNode) {.
    ...raises: [KeyError, ValueError, IOError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addFactLt(m: var TModel; a, b: PNode) {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc addFactNeg(m: var TModel; n: PNode) {....raises: [ValueError, IOError,
    KeyError, OSError, Exception, ERecoverableError],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc buildAdd(a: PNode; b: BiggestInt; o: Operators): PNode {.
    ...raises: [KeyError, ValueError, IOError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc buildCall(op: PSym; a, b: PNode): PNode {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc buildCall(op: PSym; a: PNode): PNode {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc buildLe(o: Operators; a, b: PNode): PNode {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc canon(n: PNode; o: Operators): PNode {.
    ...raises: [KeyError, ValueError, IOError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc checkFieldAccess(m: TModel; n: PNode; conf: ConfigRef; produceError: bool) {....raises: [
    KeyError, ValueError, IOError, OSError, Exception, ERecoverableError], tags: [
    WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc doesImply(facts: TModel; prop: PNode): TImplication {....raises: [ValueError,
    IOError, KeyError, OSError, Exception, ERecoverableError], tags: [
    WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc highBound(conf: ConfigRef; x: PNode; o: Operators): PNode {....raises: [
    ValueError, IOError, KeyError, OSError, Exception, ERecoverableError], tags: [
    WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc impliesNotNil(m: TModel; arg: PNode): TImplication {....raises: [ValueError,
    IOError, KeyError, OSError, Exception, ERecoverableError], tags: [
    WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc interestingCaseExpr(m: PNode): bool {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc invalidateFacts(m: var TModel; n: PNode) {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc invalidateFacts(s: var seq[PNode]; n: PNode) {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit  
proc lowBound(conf: ConfigRef; x: PNode): PNode {....raises: [ValueError, IOError,
    KeyError, OSError, Exception, ERecoverableError], tags: [WriteIOEffect,
    ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect], forbids: [].}
Source   Edit  
proc proveLe(m: TModel; a, b: PNode): TImplication {....raises: [KeyError,
    ValueError, IOError, OSError, Exception, ERecoverableError], tags: [
    WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc sameSubexprs(m: TModel; a, b: PNode): bool {....raises: [ValueError, IOError,
    KeyError, OSError, Exception, ERecoverableError], tags: [WriteIOEffect,
    ReadEnvEffect, ReadIOEffect, RootEffect, ReadDirEffect], forbids: [].}
Source   Edit  
proc sameTree(a, b: PNode): bool {....raises: [ValueError, IOError, KeyError,
    OSError, Exception], tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect,
                                RootEffect], forbids: [].}
Source   Edit  
proc simpleSlice(a, b: PNode): BiggestInt {.
    ...raises: [ValueError, IOError, KeyError, OSError, Exception],
    tags: [WriteIOEffect, ReadEnvEffect, ReadIOEffect, RootEffect], forbids: [].}
Source   Edit