pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:4279:       case '0': case '1': case '2': case '3': case '4':    case '5': case '6': case '7': case '8': case '9':    {    int marker = remap_marker(remap, t->type, flags);    struct pike_type *value = lookup_marker(remap, marker);       if (value) {    push_remap_markers(value, remap, flags);    free_type(value); +  if (marker && (flags & PT_FLAG_REMAP_KEEP_MARKERS)) { +  push_type(marker); +  push_type(T_OR); +  }    } else if (flags & PT_FLAG_REMAP_EVAL_MARKERS) { -  /* Marker without matching assign. */ -  /* FIXME: Report error? */ -  push_type(T_MIXED); +  /* Marker without matching assign. +  * NB: Not an error. Consider +  * +  * function($0 = mixed...: $0|float) +  * +  * when evaluating the $0|float to get the +  * return value, $0 will not be bound. +  */ +  push_type(PIKE_T_UNKNOWN);    } else {       /* Remap the marker. */       if (!marker) {    /* FIXME: Improve error handling here. */    push_type(T_MIXED);    } else {    push_type(marker);    }