pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:2077:    fprintf(stderr, "(%ld..%ld)",(long)min,(long)max);    }    }    break;    }    case T_FLOAT: fprintf(stderr, "float"); break;    case T_STRING:    {    INT32 min;    INT32 max; -  s = s->cdr; +     fprintf(stderr, "string"); -  if (s != int_type_string) { +  if ((s->car == int_pos_type_string) && (s->cdr == int_type_string)) { +  break; +  }    fprintf(stderr, "("); -  +  if (s->car != int_pos_type_string) { +  simple_describe_type(s->car); +  fprintf(stderr, ": "); +  } +  s = s->cdr; +  if (s != int_type_string) {    while (s->type == T_OR) {    struct pike_type *char_type = s->car;    while(char_type->type == T_ASSIGN) {    char_type = char_type->cdr;    }       if (char_type->type == T_ZERO) {    fprintf(stderr, "zero | ");    s = s->cdr;    continue;
pike.git/src/pike_types.cmod:2161:    fprintf(stderr, "%d", min);    }    if (min != max) {    fprintf(stderr, "..");    if (max != MAX_INT32) {    fprintf(stderr, "%d", max);    }    }    }    } -  fprintf(stderr, ")"); +     } -  +  fprintf(stderr, ")");    break;    }    case T_TYPE:    fprintf(stderr, "type(");    simple_describe_type(s->car);    fprintf(stderr, ")");    break;    case T_PROGRAM:    fprintf(stderr, "program(");    simple_describe_type(s->car);
pike.git/src/pike_types.cmod:2205:    if (s->car->type != T_VOID) {    simple_describe_type(s->car);    fprintf(stderr, "...");    }    fprintf(stderr, ":");    simple_describe_type(s->cdr);    fprintf(stderr, ")");    break;    case T_ARRAY:    fprintf(stderr, "array("); +  if (s->car != int_pos_type_string) { +  simple_describe_type(s->car); +  fprintf(stderr, ":"); +  }    simple_describe_type(s->cdr);    fprintf(stderr, ")");    break;    case T_MAPPING:    fprintf(stderr, "mapping(");    simple_describe_type(s->car);    fprintf(stderr, ":");    simple_describe_type(s->cdr);    fprintf(stderr, ")");    break;
pike.git/src/pike_types.cmod:2397:    string_builder_sprintf(s, "%"PRINTPTRDIFFT"d)", CDR_TO_INT(t));    }    }else{    string_builder_strcat(s, "object");    }    break;       case T_STRING:    {    string_builder_strcat(s, "string"); -  if (t->cdr == int_type_string) { +  if ((t->cdr == int_type_string) && (t->car == int_pos_type_string)) {    break;    }    string_builder_putchar(s, '('); -  +  if (t->car != int_pos_type_string) { +  low_describe_int_range(s, t->car); +  string_builder_strcat(s, ": "); +  }    low_describe_int_range(s, t->cdr);    string_builder_putchar(s, ')');    break;    }    case T_TYPE:    string_builder_sprintf(s, "type(%T)", t->car);    break;       case PIKE_T_NAME:    string_builder_sprintf(s, "{ %S = %T }",
pike.git/src/pike_types.cmod:2475:    low_describe_type(s, t->car);    string_builder_strcat(s, " ...");    }    string_builder_sprintf(s, " : %T)", t->cdr);    }    break;    }       case T_ARRAY:    string_builder_strcat(s, "array"); -  if(t->cdr->type == T_MIXED) { +  if((t->cdr->type == T_MIXED) || (t->car == int_pos_type_string)) {    break;    }    string_builder_putchar(s, '('); -  +  if (t->car != int_pos_type_string) { +  low_describe_int_range(s, t->car); +  string_builder_putchar(s, ':'); +  if (t->cdr->type != T_MIXED) { +  string_builder_putchar(s, ' '); +  } +  } +  if (t->cdr->type != T_MIXED) {    string_builder_sprintf(s, "%T", t->cdr); -  +  }    string_builder_putchar(s, ')');    break;       case T_MULTISET:    if(t->car->type != T_MIXED) {    string_builder_sprintf(s, "multiset(%T)", t->car);    } else {    string_builder_strcat(s, "multiset");    }    break;