pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:6101:    free_type(tmp);    free_type(res);    res = pop_unfinished_type();    break;       case T_NOT:    if (arg_type->type == T_NOT) {    /* Both sides are inverted. Pop both inversions. */    arg_type = arg_type->car;    fun_type = fun_type->car; +  flags ^= CALL_INVERTED_TYPES;    goto loop;    } else {    /* Move the inversion to the argument type. */    type_stack_mark();    push_finished_type(arg_type);    push_type(T_NOT);    arg_type = pop_unfinished_type();    res = lower_new_check_call(fun_type->car, arg_type,    flags ^ CALL_INVERTED_TYPES,    sval CHECK_CALL_ARGS);
pike.git/src/pike_types.c:6241: Inside #if defined(PIKE_DEBUG)
   fprintf(stderr, ".\n");    }   #endif /* PIKE_DEBUG */    /* No need to perform advanced checking in the trivial case... */    if (arg_type != (tmp2 = fun_type->car)) {    if ((flags & CALL_7_6) && (arg_type == void_type_string)) {    /* Compat with Pike 7.6 and earlier. */    arg_type = zero_type_string;    }    -  if (!((flags & CALL_INVERTED_TYPES)? -  low_pike_types_le(tmp2, arg_type, 0, 0): +  if (!(/*(flags & CALL_INVERTED_TYPES)? +  low_pike_types_le(tmp2, arg_type, 0, LE_A_B_SWAPPED): */    low_pike_types_le(arg_type, tmp2, 0, 0)) &&    ((flags & CALL_STRICT) ||    !low_match_types(arg_type, tmp2, NO_SHORTCUTS))) {    /* No match. */   #ifdef PIKE_DEBUG    if (l_flag>2) {    fprintf(stderr, "%*sNo match.\n", indent*2+2, "");    }   #endif /* PIKE_DEBUG */    res = NULL;