# liftdestructors

Theme:

- Index

Search:
Group by:
Source Edit

This module implements lifting for type-bound operations (`=sink`, `=copy`, `=destroy`, `=deepCopy`, `=wasMoved`, `=dup`).

# Imports

modulegraphs, lineinfos, idents, ast, renderer, semdata, sighashes, lowerings, options, types, msgs, magicsys, ccgutils, trees

# Procs

    proc boolLit(g: ModuleGraph; info: TLineInfo; value: bool): PNode {....raises: [
        KeyError, ValueError, OSError, Exception, IOError, ERecoverableError], tags: [
        ReadDirEffect, RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc createTypeBoundOps(g: ModuleGraph; c: PContext; orig: PType;
                            info: TLineInfo; idgen: IdGenerator) {....raises: [OSError,
        Exception, ValueError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc cyclicType(g: ModuleGraph; t: PType): bool {.
        ...raises: [Exception, KeyError, ValueError, OSError],
        tags: [RootEffect, ReadDirEffect], forbids: [].}

  Source Edit

    proc genBuiltin(g: ModuleGraph; idgen: IdGenerator; magic: TMagic; name: string;
                    i: PNode): PNode {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc isTrivial(s: PSym): bool {.inline, ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc produceDestructorForDiscriminator(g: ModuleGraph; typ: PType; field: PSym;
                                           info: TLineInfo; idgen: IdGenerator): PSym {....raises: [
        Exception, KeyError, ValueError, OSError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

# Templates

    template asink(t: PType): PSym

  Source Edit

    template assignment(t: PType): PSym

  Source Edit

    template destructor(t: PType): PSym

  Source Edit

    template dup(t: PType): PSym

  Source Edit

    template liftTypeBoundOps(c: PContext; typ: PType; info: TLineInfo)

  Source Edit