pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:4797:    add_ref(a);    return a;    }    }    return NULL;    }       /* Check implicit casting. */    loop:    switch(TWOT(a->type & PIKE_T_MASK, b->type & PIKE_T_MASK)) { +  case TWOT(T_PROGRAM, T_TYPE): +  case TWOT(T_PROGRAM, T_PROGRAM):    case TWOT(T_PROGRAM, T_FUNCTION):    case TWOT(T_PROGRAM, T_MANY):    aret = a->car;    a = low_object_lfun_type(aret, LFUN_CREATE);    if (!a) {    a = void_function_type_string;    }    goto loop;       case TWOT(T_FUNCTION, T_PROGRAM):
pike.git/src/pike_types.cmod:5181:    a = int0_type_string;    }    break;       case TWOT(T_INT, T_ZERO):    if (!(aflags & PT_FLAG_CMP_NULLABLE)) {    b = int0_type_string;    }    break;    -  /* T_TYPE and T_PROGRAM are essentially the same thing. */ +     case TWOT(T_TYPE, T_TYPE): -  case TWOT(T_TYPE, T_PROGRAM): -  case TWOT(T_PROGRAM, T_TYPE): -  case TWOT(T_PROGRAM, T_PROGRAM): +     tmp = low_type_binop(op, a->car, b->car, remap,    0, 0, remap_flags);    if (!tmp) return NULL;       type_stack_mark();    push_finished_type(tmp);    if (a->type == b->type) {    push_type(a->type);    } else {    push_type(T_TYPE);    }    free_type(tmp);    return pop_unfinished_type();    -  +  case TWOT(T_TYPE, T_PROGRAM):    case TWOT(T_TYPE, T_FUNCTION):    case TWOT(T_TYPE, T_MANY):    case TWOT(T_TYPE, PIKE_T_TRANSITIVE):    type_stack_mark();    push_finished_type(a->car);    push_type(T_VOID);    push_type(T_MANY);    push_type(T_MIXED);    push_type(T_FUNCTION);    tmp = pop_unfinished_type();