Changeset b3f9684c


Ignore:
Timestamp:
Oct 9, 2020, 11:27:37 AM (14 months ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
290553a
Parents:
d4da688 (diff), 8fc9a5f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
libcfa/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/coroutine.hfa

    rd4da688 rb3f9684c  
    3737// Anything that implements this trait can be resumed.
    3838// Anything that is resumed is a coroutine.
    39 trait is_coroutine(dtype T
    40                 | is_resumption_exception(CoroutineCancelled(T),
    41                         CoroutineCancelled_vtable(T))) {
     39trait is_coroutine(dtype T | IS_RESUMPTION_EXCEPTION(CoroutineCancelled, (T))) {
    4240        void main(T & this);
    4341        $coroutine * get_coroutine(T & this);
  • libcfa/src/exception.hfa

    rd4da688 rb3f9684c  
    125125#define VTABLE_ASSERTION(exception_name, parameters) \
    126126        { VTABLE_TYPE(exception_name) parameters VTABLE_NAME(exception_name); }
     127
     128// IS_EXCEPTION(exception_name [, (...parameters)])
     129// IS_RESUMPTION_EXCEPTION(exception_name [, (parameters...)])
     130// IS_TERMINATION_EXCEPTION(exception_name [, (parameters...)])
     131// Create an assertion that exception_name, possibly with the qualifing parameters, is the given
     132// kind of exception with the standard vtable with the same parameters if applicable.
     133#define IS_EXCEPTION(...) _IS_EXCEPTION(is_exception, __VA_ARGS__, , ~)
     134#define IS_RESUMPTION_EXCEPTION(...) _IS_EXCEPTION(is_resumption_exception, __VA_ARGS__, , ~)
     135#define IS_TERMINATION_EXCEPTION(...) _IS_EXCEPTION(is_termination_exception, __VA_ARGS__, , ~)
    127136
    128137// All internal helper macros begin with an underscore.
     
    234243                _GLUE2(exception_name,_copy), ^?{}, \
    235244                _CLOSE
     245
     246#define _IS_EXCEPTION(kind, exception_name, parameters, ...) \
     247        kind(exception_name parameters, VTABLE_TYPE(exception_name) parameters)
Note: See TracChangeset for help on using the changeset viewer.