liftdestructors

Source   Edit  

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

Procs

proc boolLit(g: ModuleGraph; info: TLineInfo; value: bool): PNode {....raises: [
    Exception, OSError, KeyError, ValueError, IOError, ERecoverableError], tags: [
    RootEffect, WriteIOEffect, ReadEnvEffect, ReadIOEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc createTypeBoundOps(g: ModuleGraph; c: PContext; orig: PType;
                        info: TLineInfo; idgen: IdGenerator) {....raises: [
    Exception, OSError, KeyError, ValueError, IOError, ERecoverableError], tags: [
    RootEffect, WriteIOEffect, ReadEnvEffect, ReadIOEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc cyclicType(g: ModuleGraph; t: PType): bool {.
    ...raises: [Exception, OSError, KeyError, ValueError, IOError], tags: [
    RootEffect, WriteIOEffect, ReadEnvEffect, ReadIOEffect, ReadDirEffect],
    forbids: [].}
Source   Edit  
proc genBuiltin(g: ModuleGraph; idgen: IdGenerator; magic: TMagic; name: string;
                i: PNode): PNode {....raises: [Exception, OSError, KeyError,
    ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadEnvEffect,
                                 ReadIOEffect, ReadDirEffect], forbids: [].}
Source   Edit  
proc isTrivial(s: PSym): bool {.inline, ...raises: [Exception, OSError, KeyError,
    ValueError, IOError], tags: [RootEffect, WriteIOEffect, ReadEnvEffect,
                                 ReadIOEffect, ReadDirEffect], forbids: [].}
Source   Edit  
proc produceDestructorForDiscriminator(g: ModuleGraph; typ: PType; field: PSym;
                                       info: TLineInfo; idgen: IdGenerator): PSym {....raises: [
    Exception, OSError, KeyError, ValueError, IOError, ERecoverableError], tags: [
    RootEffect, WriteIOEffect, ReadEnvEffect, ReadIOEffect, ReadDirEffect],
    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