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.277 2001/12/16 02:49:40 mast Exp $"); + RCSID("$Id: las.c,v 1.278 2001/12/16 22:48:08 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:1000:    copy_pike_type(res->type, void_type_string);       if(a) res->tree_info |= a->tree_info;    if(b) res->tree_info |= b->tree_info;    break;       case F_MAGIC_SET_INDEX:    res->node_info |= OPT_ASSIGNMENT;    /* FALL_THROUGH */    case F_MAGIC_INDEX: +  case F_MAGIC_INDICES: +  case F_MAGIC_VALUES:    {    int e;    struct program_state *state = Pike_compiler;    res->node_info |= OPT_EXTERNAL_DEPEND;    for(e=0;e<b->u.sval.u.integer;e++)    {    state->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;    state=state->previous;    }   
pike.git/src/las.c:4055:    case F_MAGIC_INDEX:    /* FIXME: Could have a stricter type for ::`->(). */    /* FIXME: */    MAKE_CONSTANT_TYPE(n->type, tFunc(tMix,tMix));    break;    case F_MAGIC_SET_INDEX:    /* FIXME: Could have a stricter type for ::`->=(). */    /* FIXME: */    MAKE_CONSTANT_TYPE(n->type, tFunc(tMix tSetvar(0,tMix), tVar(0)));    break; +  case F_MAGIC_INDICES: +  MAKE_CONSTANT_TYPE(n->type, tFunc(tNone, tArr(tString))); +  break; +  case F_MAGIC_VALUES: +  /* FIXME: Could have a stricter type for ::_values. */ +  MAKE_CONSTANT_TYPE(n->type, tFunc(tNone, tArray)); +  break;       case F_CATCH:    /* FALL_THROUGH */    default:    copy_pike_type(n->type, mixed_type_string);    }       if (n->type != old_type) {    if (n->parent) {    n->parent->node_info |= OPT_TYPE_NOT_FIXED;