@@ -904,31 +904,31 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val, int safe)
904904 mrb_int symlen ;
905905 const char * symname = mrb_sym2name_len (s -> mrb , sym , & symlen );
906906
907- if (!noop && symlen == 1 && symname [0 ] == '+' ) {
907+ if (!noop && symlen == 1 && symname [0 ] == '+' && n == 1 ) {
908908 genop_peep (s , MKOP_ABC (OP_ADD , cursp (), idx , n ), val );
909909 }
910- else if (!noop && symlen == 1 && symname [0 ] == '-' ) {
910+ else if (!noop && symlen == 1 && symname [0 ] == '-' && n == 1 ) {
911911 genop_peep (s , MKOP_ABC (OP_SUB , cursp (), idx , n ), val );
912912 }
913- else if (!noop && symlen == 1 && symname [0 ] == '*' ) {
913+ else if (!noop && symlen == 1 && symname [0 ] == '*' && n == 1 ) {
914914 genop (s , MKOP_ABC (OP_MUL , cursp (), idx , n ));
915915 }
916- else if (!noop && symlen == 1 && symname [0 ] == '/' ) {
916+ else if (!noop && symlen == 1 && symname [0 ] == '/' && n == 1 ) {
917917 genop (s , MKOP_ABC (OP_DIV , cursp (), idx , n ));
918918 }
919- else if (!noop && symlen == 1 && symname [0 ] == '<' ) {
919+ else if (!noop && symlen == 1 && symname [0 ] == '<' && n == 1 ) {
920920 genop (s , MKOP_ABC (OP_LT , cursp (), idx , n ));
921921 }
922- else if (!noop && symlen == 2 && symname [0 ] == '<' && symname [1 ] == '=' ) {
922+ else if (!noop && symlen == 2 && symname [0 ] == '<' && symname [1 ] == '=' && n == 1 ) {
923923 genop (s , MKOP_ABC (OP_LE , cursp (), idx , n ));
924924 }
925- else if (!noop && symlen == 1 && symname [0 ] == '>' ) {
925+ else if (!noop && symlen == 1 && symname [0 ] == '>' && n == 1 ) {
926926 genop (s , MKOP_ABC (OP_GT , cursp (), idx , n ));
927927 }
928- else if (!noop && symlen == 2 && symname [0 ] == '>' && symname [1 ] == '=' ) {
928+ else if (!noop && symlen == 2 && symname [0 ] == '>' && symname [1 ] == '=' && n == 1 ) {
929929 genop (s , MKOP_ABC (OP_GE , cursp (), idx , n ));
930930 }
931- else if (!noop && symlen == 2 && symname [0 ] == '=' && symname [1 ] == '=' ) {
931+ else if (!noop && symlen == 2 && symname [0 ] == '=' && symname [1 ] == '=' && n == 1 ) {
932932 genop (s , MKOP_ABC (OP_EQ , cursp (), idx , n ));
933933 }
934934 else {
0 commit comments