pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:11786:    }    push_type(T_NOT);    push_type(fun_type->type);    tmp = fun_type = pop_unfinished_type();    }       {    struct remap_state remap;    struct pike_type *old_res;    struct pike_type *fun_cont; +  enum pt_remap_flags remap_flags = 0;       INIT_REMAP_STATE(remap);      #ifdef PIKE_DEBUG    if (l_flag>2) {    fprintf(stderr, "%*sChecking argument type ", indent*2+2, "");    simple_describe_type(arg_type);    fprintf(stderr, " against function type ");    simple_describe_type(fun_type);    fprintf(stderr, ".\n"); -  +  remap_flags |= PT_FLAG_REMAP_TRACE;    }   #endif /* PIKE_DEBUG */       /* No need to perform advanced checking in the trivial case... */    if (arg_type != (tmp2 = fun_type->car)) {    if (!tmp2) {    if (flags & CALL_STRICT) goto no_match;    } else {    struct pike_type *bin_t =    low_type_binop((flags & CALL_INVERTED_TYPES)?    PT_BINOP_INVERSE_MINUS:    PT_BINOP_MINUS,    arg_type, tmp2, &remap,    PT_FLAG_CMP_VOID_IS_ZERO,    PT_FLAG_CMP_VOID_IS_ZERO, -  PT_FLAG_REMAP_EVAL_MARKERS); +  remap_flags|PT_FLAG_REMAP_EVAL_MARKERS);       /* Legend for mismatch:    * 0 - Strict match.    * 1 - Partial match.    * 3 - Strict mismatch.    */    int mismatch = bin_t?((bin_t == arg_type)?3:1):0;    int mask = (flags & (CALL_INVERTED_TYPES|CALL_STRICT))?3:2;    free_type(bin_t);   
pike.git/src/pike_types.cmod:11856:    fun_cont = fun_type;    }       if (tmp) free_type(tmp);       /* NB: KEEP_MARKERS is needed if we are staying on    * the same function type, as it (by definition)    * then still holds the same assignments too.    */    res = remap_markers(fun_cont, &remap, -  PT_FLAG_REMAP_SWAP_MARKERS| +  remap_flags|PT_FLAG_REMAP_SWAP_MARKERS|    ((fun_type == fun_cont)?    PT_FLAG_REMAP_KEEP_MARKERS:0));       EXIT_REMAP_STATE(remap);    }       if ((Pike_compiler->compiler_pass == COMPILER_PASS_LAST) && sval) {    while (tmp2 && (tmp2->type == PIKE_T_NAME)) {    tmp2 = tmp2->cdr;    }