# guards

Dark Mode

- Index

Search:
Group by:

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