ANN Type check_prim_str(const Env env, const struct AstString *data) {
if (!prim_self(data)->value)
prim_self(data)->value = global_string(env, data->data, prim_pos(data));
+ exp_setmeta(prim_exp(data), true);
return env->gwion->type[et_string]; // prim->value
}
}
ANN static Type check_prim_locale(const Env env, const Symbol *data NUSED) {
+ exp_setmeta(prim_exp(data), true);
return env->gwion->type[et_float];
}
static ANN Type check_exp_array(const Env env, const Exp_Array *array) {
CHECK_OO((array->array->type = check_exp(env, array->base)));
CHECK_BO(check_subscripts(env, array->array, 0));
+ if(exp_getmeta(array->base)) exp_setmeta(exp_self(array), true);
return check_array_access(env, array->array);
}