pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: pike_types.c,v 1.270 2007/03/30 12:47:25 grubba Exp $ + || $Id: pike_types.c,v 1.271 2007/03/30 15:26:35 grubba Exp $   */      #include "global.h"   #include <ctype.h>   #include "svalue.h"   #include "pike_types.h"   #include "stralloc.h"   #include "stuff.h"   #include "array.h"   #include "program.h"
pike.git/src/pike_types.c:4674:    res = lower_new_check_call(fun_type->car, arg_type, flags CHECK_CALL_ARGS);    free_type(arg_type);    if (res) {    /* Move the inversion back to the function type. */    if (res->type == T_NOT) {    tmp = res->car;    free_type(res);    res = tmp;    } else {    type_stack_mark(); -  if ((res == fun_type->car) && -  (res->type == T_MANY) && +  if ((res->type == T_MANY) && +  (fun_type->car->type == T_MANY) &&    (res->car->type == T_NOT)) {    /* Exist criteria is fulfilled.    * Reduce !function(!type...:type) to function(mixed...:type).    * FIXME: Probably ought to move the inner inversion    * to the result type, but that is incompatible    * with current types.    * FIXME: What about the limited number of args case?    */    push_finished_type(res->cdr);    push_finished_type(mixed_type_string);