[PRISM] Use new constant path structure
This commit is contained in:
parent
5758e45657
commit
0948b6a592
@ -3301,7 +3301,7 @@ pm_compile_defined_expr0(rb_iseq_t *iseq, const pm_node_t *node, const pm_line_c
|
|||||||
}
|
}
|
||||||
case PM_CONSTANT_PATH_NODE: {
|
case PM_CONSTANT_PATH_NODE: {
|
||||||
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, ((const pm_constant_read_node_t *) cast->child)->name));
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, cast->name));
|
||||||
|
|
||||||
if (cast->parent != NULL) {
|
if (cast->parent != NULL) {
|
||||||
if (!lfinish[1]) lfinish[1] = NEW_LABEL(location.line);
|
if (!lfinish[1]) lfinish[1] = NEW_LABEL(location.line);
|
||||||
@ -3917,7 +3917,7 @@ pm_compile_target_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *cons
|
|||||||
// for I::J in []; end
|
// for I::J in []; end
|
||||||
//
|
//
|
||||||
const pm_constant_path_target_node_t *cast = (const pm_constant_path_target_node_t *) node;
|
const pm_constant_path_target_node_t *cast = (const pm_constant_path_target_node_t *) node;
|
||||||
ID name = pm_constant_id_lookup(scope_node, ((const pm_constant_read_node_t *) cast->child)->name);
|
ID name = pm_constant_id_lookup(scope_node, cast->name);
|
||||||
|
|
||||||
if (cast->parent != NULL) {
|
if (cast->parent != NULL) {
|
||||||
pm_compile_node(iseq, cast->parent, parents, false, scope_node);
|
pm_compile_node(iseq, cast->parent, parents, false, scope_node);
|
||||||
@ -4447,7 +4447,7 @@ pm_constant_path_parts(const pm_node_t *node, const pm_scope_node_t *scope_node)
|
|||||||
}
|
}
|
||||||
case PM_CONSTANT_PATH_NODE: {
|
case PM_CONSTANT_PATH_NODE: {
|
||||||
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, ((const pm_constant_read_node_t *) cast->child)->name));
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, cast->name));
|
||||||
|
|
||||||
rb_ary_unshift(parts, name);
|
rb_ary_unshift(parts, name);
|
||||||
if (cast->parent == NULL) {
|
if (cast->parent == NULL) {
|
||||||
@ -4485,7 +4485,7 @@ pm_compile_constant_path(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *co
|
|||||||
}
|
}
|
||||||
case PM_CONSTANT_PATH_NODE: {
|
case PM_CONSTANT_PATH_NODE: {
|
||||||
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
const pm_constant_path_node_t *cast = (const pm_constant_path_node_t *) node;
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, ((const pm_constant_read_node_t *) cast->child)->name));
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, cast->name));
|
||||||
|
|
||||||
if (cast->parent == NULL) {
|
if (cast->parent == NULL) {
|
||||||
PUSH_INSN(body, location, pop);
|
PUSH_INSN(body, location, pop);
|
||||||
@ -5653,8 +5653,7 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||||||
const pm_constant_path_and_write_node_t *cast = (const pm_constant_path_and_write_node_t *) node;
|
const pm_constant_path_and_write_node_t *cast = (const pm_constant_path_and_write_node_t *) node;
|
||||||
const pm_constant_path_node_t *target = cast->target;
|
const pm_constant_path_node_t *target = cast->target;
|
||||||
|
|
||||||
const pm_constant_read_node_t *child = (const pm_constant_read_node_t *) target->child;
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, target->name));
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, child->name));
|
|
||||||
LABEL *lfin = NEW_LABEL(location.line);
|
LABEL *lfin = NEW_LABEL(location.line);
|
||||||
|
|
||||||
if (target->parent) {
|
if (target->parent) {
|
||||||
@ -5696,9 +5695,7 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||||||
const pm_constant_path_or_write_node_t *cast = (const pm_constant_path_or_write_node_t *) node;
|
const pm_constant_path_or_write_node_t *cast = (const pm_constant_path_or_write_node_t *) node;
|
||||||
const pm_constant_path_node_t *target = cast->target;
|
const pm_constant_path_node_t *target = cast->target;
|
||||||
|
|
||||||
const pm_constant_read_node_t *child = (const pm_constant_read_node_t *) target->child;
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, target->name));
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, child->name));
|
|
||||||
|
|
||||||
LABEL *lassign = NEW_LABEL(location.line);
|
LABEL *lassign = NEW_LABEL(location.line);
|
||||||
LABEL *lfin = NEW_LABEL(location.line);
|
LABEL *lfin = NEW_LABEL(location.line);
|
||||||
|
|
||||||
@ -5746,9 +5743,7 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||||||
const pm_constant_path_operator_write_node_t *cast = (const pm_constant_path_operator_write_node_t *) node;
|
const pm_constant_path_operator_write_node_t *cast = (const pm_constant_path_operator_write_node_t *) node;
|
||||||
const pm_constant_path_node_t *target = cast->target;
|
const pm_constant_path_node_t *target = cast->target;
|
||||||
ID method_id = pm_constant_id_lookup(scope_node, cast->operator);
|
ID method_id = pm_constant_id_lookup(scope_node, cast->operator);
|
||||||
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, target->name));
|
||||||
const pm_constant_read_node_t *child = (const pm_constant_read_node_t *) target->child;
|
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, child->name));
|
|
||||||
|
|
||||||
if (target->parent) {
|
if (target->parent) {
|
||||||
PM_COMPILE_NOT_POPPED(target->parent);
|
PM_COMPILE_NOT_POPPED(target->parent);
|
||||||
@ -5778,9 +5773,7 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret,
|
|||||||
// ^^^^^^^^^^^^
|
// ^^^^^^^^^^^^
|
||||||
const pm_constant_path_write_node_t *cast = (const pm_constant_path_write_node_t *) node;
|
const pm_constant_path_write_node_t *cast = (const pm_constant_path_write_node_t *) node;
|
||||||
const pm_constant_path_node_t *target = cast->target;
|
const pm_constant_path_node_t *target = cast->target;
|
||||||
|
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, target->name));
|
||||||
const pm_constant_read_node_t *child = (const pm_constant_read_node_t *) target->child;
|
|
||||||
VALUE name = ID2SYM(pm_constant_id_lookup(scope_node, child->name));
|
|
||||||
|
|
||||||
if (target->parent) {
|
if (target->parent) {
|
||||||
PM_COMPILE_NOT_POPPED((const pm_node_t *) target->parent);
|
PM_COMPILE_NOT_POPPED((const pm_node_t *) target->parent);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user