@@ -2618,12 +2618,14 @@ sub add_bindattr_op($nqpop, $hintedop, $namedop, $want) {
2618
2618
push_ilist(@ ins , $ obj_mast );
2619
2619
push_ilist(@ ins , $ type_mast );
2620
2620
push_op(@ ins , ' decont' , $ type_mast . result_reg, $ type_mast . result_reg);
2621
- if nqp ::istype($ op [2 ], QAST ::SVal) {
2621
+ my $ name := $ op [2 ];
2622
+ $ name := $ name [2 ] if nqp ::istype($ name , QAST ::Want) && $ name [1 ] eq ' Ss' ;
2623
+ if nqp ::istype($ name , QAST ::SVal) {
2622
2624
if nqp ::istype($ op [1 ], QAST ::WVal) {
2623
- $ hint := nqp ::hintfor($ op [1 ]. value , $ op [ 2 ] . value );
2625
+ $ hint := nqp ::hintfor($ op [1 ]. value , $ name . value );
2624
2626
}
2625
2627
push_op(@ ins , $ hintedop , $ obj_mast . result_reg, $ type_mast . result_reg,
2626
- MAST::SVal. new ( : value($ op [ 2 ] . value ) ),
2628
+ MAST::SVal. new ( : value($ name . value ) ),
2627
2629
$ val_mast . result_reg, MAST::IVal. new ( : value($ hint ) ));
2628
2630
} else {
2629
2631
my $ name_mast := $ qastcomp . as_mast( : want($ MVM_reg_str ), $ op [2 ] );
@@ -2654,12 +2656,14 @@ sub add_getattr_op($nqpop, $hintedop, $namedop, $want) {
2654
2656
push_ilist(@ ins , $ type_mast );
2655
2657
my $ res_reg := $ regalloc . fresh_register($ want );
2656
2658
push_op(@ ins , ' decont' , $ type_mast . result_reg, $ type_mast . result_reg);
2657
- if nqp ::istype($ op [2 ], QAST ::SVal) {
2659
+ my $ name := $ op [2 ];
2660
+ $ name := $ name [2 ] if nqp ::istype($ name , QAST ::Want) && $ name [1 ] eq ' Ss' ;
2661
+ if nqp ::istype($ name , QAST ::SVal) {
2658
2662
if nqp ::istype($ op [1 ], QAST ::WVal) {
2659
- $ hint := nqp ::hintfor($ op [1 ]. value , $ op [ 2 ] . value );
2663
+ $ hint := nqp ::hintfor($ op [1 ]. value , $ name . value );
2660
2664
}
2661
2665
push_op(@ ins , $ hintedop , $ res_reg , $ obj_mast . result_reg, $ type_mast . result_reg,
2662
- MAST::SVal. new ( : value($ op [ 2 ] . value ) ), MAST::IVal. new ( : value($ hint ) ));
2666
+ MAST::SVal. new ( : value($ name . value ) ), MAST::IVal. new ( : value($ hint ) ));
2663
2667
} else {
2664
2668
my $ name_mast := $ qastcomp . as_mast( : want($ MVM_reg_str ), $ op [2 ] );
2665
2669
push_ilist(@ ins , $ name_mast );
0 commit comments