Fix string value in hash literal being forced frozen

We should pass `false` for `hash_key` for value nodes. Credits to
`@kddnewton` for noticing and bisecting.
This commit is contained in:
Alan Wu 2024-02-20 16:45:59 -05:00
parent 5fb574ae4e
commit 2a6917b463
2 changed files with 6 additions and 1 deletions

View file

@ -4910,7 +4910,7 @@ compile_array(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, int pop
static inline int
static_literal_node_pair_p(const NODE *node, const rb_iseq_t *iseq)
{
return RNODE_LIST(node)->nd_head && static_literal_node_p(RNODE_LIST(node)->nd_head, iseq, true) && static_literal_node_p(RNODE_LIST(RNODE_LIST(node)->nd_next)->nd_head, iseq, true);
return RNODE_LIST(node)->nd_head && static_literal_node_p(RNODE_LIST(node)->nd_head, iseq, true) && static_literal_node_p(RNODE_LIST(RNODE_LIST(node)->nd_next)->nd_head, iseq, false);
}
static int