Checks whether member access or array casting is allowed in @safe code.

Specification: Function Safety


Walter Bright

Source: safe.d

  • Declaration

    bool checkUnsafeAccess(Scope* sc, Expression e, bool readonly, bool printmsg);

    Check for unsafe access in @safe code:

    1. read overlapped pointers
    2. write misaligned pointers
    3. write overlapped storage classes
    Print error if unsafe.


    Scope* sc


    Expression e

    expression to check

    bool readonly

    if access is read-only

    bool printmsg

    print error message if true

    Return Value

    true if error

  • Declaration

    bool isSafeCast(Expression e, Type tfrom, Type tto);

    Determine if it is @safe to cast e from tfrom to tto.


    Expression e

    expression to be cast

    Type tfrom

    type of e

    Type tto

    type to cast e to

    Return Value

    true if @safe