pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:3458:    check_c_stack(1024);   #if 0    fprintf(stderr, " low_or_pike_types(");    simple_describe_type(t1);    fprintf(stderr, ", ");    simple_describe_type(t2);    fprintf(stderr, ")\n");   #endif    if(!t1)    { -  if(!t2) -  push_type(T_VOID); -  else +     push_finished_type(t2);    } -  else if((!t2) -  || (t2->type == T_ZERO && zero_implied) -  -  ) +  else if((!t2) || (t2->type == T_ZERO && zero_implied))    {    push_finished_type(t1);    }    else if (t1->type == T_ZERO && zero_implied)    {    push_finished_type(t2);    }    else if (t1 == t2) {    push_finished_type(t1);    } -  +  else if ((t1->type == T_MIXED) && (t2->type != T_VOID)) { +  push_finished_type(t1); +  if (t2->flags & PT_FLAG_VOIDABLE) { +  push_type(T_VOID); +  push_type(T_OR); +  } +  } else if ((t2->type == T_MIXED) && (t1->type != T_VOID)) { +  push_finished_type(t2); +  if (t1->flags & PT_FLAG_VOIDABLE) { +  push_type(T_VOID); +  push_type(T_OR); +  } +  }    else if ((t1->type == T_OR) || (t2->type == T_OR)) {    int on_stack = 0;    type_stack_mark();    while (t1 || t2) {    struct pike_type *a = t1;    struct pike_type *b = t2;    struct pike_type *n1 = NULL;    struct pike_type *n2 = NULL;    int val;    if (t1 && t1->type == T_OR) {