pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:11774:    * Program does not have the lfun `()(). NULL    */       /* FALLTHRU */    case PIKE_T_MIXED:    copy_pike_type(res, mixed_type_string);    break;       case PIKE_T_OPERATOR:    tmp = apply_type_operator(fun_type->type, fun_type->car, fun_type->cdr); +  if (!tmp) { +  return NULL; +  }    res = lower_new_check_call(tmp, arg_type, flags, sval CHECK_CALL_ARGS);    free_type(tmp);    break;       case PIKE_T_TRANSITIVE:   #if 0    /* NB: In theory we could use expand_transitive() here and recurse,    * but this leads to a combinatorial explosion.    */    tmp = expand_transitive(fun_type, a_markers, 0);
pike.git/src/pike_types.cmod:12033:    * In strict mode the former should be split here,    * and the latter kept.    * In non-strict mode both should be split here.    * Suggestion:    * Introduce a new operator (UNION?) for the former case.    */       loop:    clear_markers();    /* First split the argument type into basic types. */ -  switch(arg_type->type) { +  switch(arg_type?arg_type->type:PIKE_T_UNKNOWN) {    case T_ASSIGN:    case PIKE_T_NAME:    arg_type = arg_type->cdr;    goto loop;       /* FIXME: PIKE_T_ATTRIBUTE's ought to propagate out to the basic types.    */       case T_OR:    if (arg_type->car == zero_type_string) {