pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:658:    pike_type_hash[index] = t;       if (flag_method) {    if (flag_method == PT_IS_MARKER) {    t->flags = PT_FLAG_MARKER_0 << (type-'0');    } else if (type == PIKE_T_SCOPE) {    /* The scope blocks propagation of markers. */    t->flags = cdr->flags & ~(PT_FLAG_MARKER|PT_FLAG_ASSIGN);    } else if (type == T_NOT) {    if (car) { -  t->flags |= car->flags ^ ~PT_FLAG_MARK_ASSIGN; +  /* NB: We cannot set the PT_FLAG_MIXED flag, +  * as inverting a non-mixed type does not +  * give mixed. +  */ +  t->flags |= (car->flags ^ ~PT_FLAG_MARK_ASSIGN) & ~PT_FLAG_MIXED;    }    } else if (flag_method & PT_COPY_MORE) {    if (car && (flag_method & PT_COPY_CAR)) {    t->flags |= car->flags;    }    if (cdr && (flag_method & PT_COPY_CDR)) {    t->flags |= cdr->flags;    }    } else {    if (car && (flag_method & PT_COPY_CAR)) {