/** @apilevel internal */ private TypeDecl binaryNumericPromotedType_compute() { TypeDecl leftType = left().type(); TypeDecl rightType = right().type(); if (leftType.isString()) return leftType; if (rightType.isString()) return rightType; if (leftType.isNumericType() && rightType.isNumericType()) return leftType.binaryNumericPromotion(rightType); if (leftType.isBoolean() && rightType.isBoolean()) return leftType; return unknownType(); }