@@ -563,11 +563,10 @@ STATIC bool fold_constants(parser_t *parser, const rule_t *rule, size_t num_args
563563 // this node is of the form <x> = <y>
564564 mp_parse_node_t pn0 = peek_result (parser , 1 );
565565 if (MP_PARSE_NODE_IS_ID (pn0 )
566- && MP_PARSE_NODE_IS_STRUCT_KIND (pn1 , RULE_power )
566+ && MP_PARSE_NODE_IS_STRUCT_KIND (pn1 , RULE_atom_expr_normal )
567567 && MP_PARSE_NODE_IS_ID (((mp_parse_node_struct_t * )pn1 )-> nodes [0 ])
568568 && MP_PARSE_NODE_LEAF_ARG (((mp_parse_node_struct_t * )pn1 )-> nodes [0 ]) == MP_QSTR_const
569569 && MP_PARSE_NODE_IS_STRUCT_KIND (((mp_parse_node_struct_t * )pn1 )-> nodes [1 ], RULE_trailer_paren )
570- && MP_PARSE_NODE_IS_NULL (((mp_parse_node_struct_t * )pn1 )-> nodes [2 ])
571570 ) {
572571 // code to assign dynamic constants: id = const(value)
573572
@@ -599,13 +598,11 @@ STATIC bool fold_constants(parser_t *parser, const rule_t *rule, size_t num_args
599598 #endif
600599
601600 #if MICROPY_COMP_MODULE_CONST
602- } else if (rule -> rule_id == RULE_power ) {
603- mp_parse_node_t pn0 = peek_result (parser , 2 );
604- mp_parse_node_t pn1 = peek_result (parser , 1 );
605- mp_parse_node_t pn2 = peek_result (parser , 0 );
601+ } else if (rule -> rule_id == RULE_atom_expr_normal ) {
602+ mp_parse_node_t pn0 = peek_result (parser , 1 );
603+ mp_parse_node_t pn1 = peek_result (parser , 0 );
606604 if (!(MP_PARSE_NODE_IS_ID (pn0 )
607- && MP_PARSE_NODE_IS_STRUCT_KIND (pn1 , RULE_trailer_period )
608- && MP_PARSE_NODE_IS_NULL (pn2 ))) {
605+ && MP_PARSE_NODE_IS_STRUCT_KIND (pn1 , RULE_trailer_period ))) {
609606 return false;
610607 }
611608 // id1.id2
0 commit comments