pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:5257:    }    return NULL;    }       /*    * NB: At this point a and b are basic types.    */       /* Check implicit casting. */    switch(TWOT(a->type & PIKE_T_MASK, b->type & PIKE_T_MASK)) { -  case TWOT(T_PROGRAM, T_TYPE): +     case TWOT(T_PROGRAM, T_PROGRAM): -  +  if (a->car == object_type_string) { +  if (op & PT_BINOP_AND) { +  return remap_markers(b, remap, remap_flags ^ PT_FLAG_REMAP_SWAP_MARKERS); +  } +  } +  if (b->car == object_type_string) { +  if (op & PT_BINOP_AND) { +  return remap_markers(a, remap, remap_flags); +  } +  return NULL; +  } +  /* FALLTHRU */ +  case TWOT(T_PROGRAM, T_TYPE):    case TWOT(T_PROGRAM, T_FUNCTION):    case TWOT(T_PROGRAM, T_MANY):    case TWOT(T_PROGRAM, PIKE_T_TRANSITIVE):    aret = a->car;    a = low_object_lfun_type(aret, LFUN_CREATE);    if (a) goto loop;       type_stack_mark();    push_finished_type(aret);    push_type(PIKE_T_UNKNOWN);