pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h" - RCSID("$Id: las.c,v 1.244 2005/05/15 13:16:56 grubba Exp $"); + RCSID("$Id: las.c,v 1.245 2005/06/09 17:57:50 mast Exp $");      #include "language.h"   #include "interpret.h"   #include "las.h"   #include "array.h"   #include "object.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "lex.h"   #include "pike_types.h"
pike.git/src/las.c:3077:       case F_APPLY:    if (!CAR(n) || (CAR(n)->type == void_type_string)) {    my_yyerror("Calling a void expression.");    } else {    struct pike_string *s;    struct pike_string *f;    char *name;    INT32 max_args,args;    +  type_stack_mark(); +     push_type(T_MIXED); /* match any return type */    push_type(T_VOID); /* even void */    push_type(T_OR);       push_type(T_VOID); /* not varargs */    push_type(T_MANY);    function_type_max=0;    low_build_function_type(CDR(n));    push_type(T_FUNCTION); -  s = pop_type(); +  +  s = pop_unfinished_type(); +     f = CAR(n)->type?CAR(n)->type:mixed_type_string;    n->type = check_call(s, f,    (lex.pragmas & ID_STRICT_TYPES) &&    !(n->node_info & OPT_WEAK_TYPE));    args = count_arguments(s);    max_args = count_arguments(f);    if(max_args<0) max_args = 0x7fffffff;          if (n->type) {