pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1044:    }    break;       case ':':    case F_RANGE_FROM_BEG:    case F_RANGE_FROM_END:    case F_RANGE_OPEN:    res->node_info |= OPT_FLAG_NODE;    break;    +  case F_SET_LOCAL_NAME: +  case F_SET_LOCAL_TYPE: +  case F_SET_LOCAL_END: +  /* Protect against the node being removed by the optimizer. */ +  res->node_info |= OPT_NOT_CONST|OPT_SIDE_EFFECT; +  break; +     default:    if(a) res->tree_info |= a->tree_info;    if(b) res->tree_info |= b->tree_info;    }       /* We try to optimize most things, but argument lists are hard... */    if((token != F_ARG_LIST) && (a || b))    res->node_info |= OPT_TRY_OPTIMIZE;       res->tree_info |= res->node_info;
pike.git/src/las.c:4172:    break;    case F_MAGIC_TYPES:    /* FIXME: Could have a stricter type for ::_types. */    MAKE_CONSTANT_TYPE(n->type, tF_MAGIC_TYPES);    break;    case F_MAGIC_ANNOTATIONS:    /* FIXME: Could have a stricter type for ::_annotations. */    MAKE_CONSTANT_TYPE(n->type, tF_MAGIC_ANNOTATIONS);    break;    +  case F_SET_LOCAL_NAME: +  case F_SET_LOCAL_TYPE: +  case F_SET_LOCAL_END: +  copy_pike_type(n->type, void_type_string); +  break; +     case F_CATCH:    /* FALLTHRU */    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;    }