@@ -224,6 +224,8 @@ func evalMinusPrefixOperatorExpression(right object.Object, line int) object.Obj
224224
225225func evalInfixExpression (operator string , left , right object.Object , line int ) object.Object {
226226 switch {
227+ case left .Type () == object .STRING_OBJ && right .Type () == object .STRING_OBJ :
228+ return evalStringInfixExpression (operator , left , right , line )
227229
228230 case operator == "+" && left .Type () == object .DICT_OBJ && right .Type () == object .DICT_OBJ :
229231 leftVal := left .(* object.Dict ).Pairs
@@ -285,9 +287,6 @@ func evalInfixExpression(operator string, left, right object.Object, line int) o
285287 return newError ("Mstari %d: Aina Hazilingani: %s %s %s" ,
286288 line , left .Type (), operator , right .Type ())
287289
288- case left .Type () == object .STRING_OBJ && right .Type () == object .STRING_OBJ :
289- return evalStringInfixExpression (operator , left , right , line )
290-
291290 default :
292291 return newError ("Mstari %d: Operesheni Haielweki: %s %s %s" ,
293292 line , left .Type (), operator , right .Type ())
@@ -450,11 +449,10 @@ func evalStringInfixExpression(operator string, left, right object.Object, line
450449 switch operator {
451450 case "+" :
452451 return & object.String {Value : leftVal + rightVal }
453- // doesn't work for some reason, maybe cause its cause its 4am
454- // case "==":
455- // return nativeBoolToBooleanObject(leftVal == rightVal)
456- // case "!=":
457- // return nativeBoolToBooleanObject(leftVal != rightVal)
452+ case "==" :
453+ return nativeBoolToBooleanObject (leftVal == rightVal )
454+ case "!=" :
455+ return nativeBoolToBooleanObject (leftVal != rightVal )
458456 default :
459457 return newError ("Mstari %d: Operesheni Haielweki: %s %s %s" , line , left .Type (), operator , right .Type ())
460458 }
0 commit comments