Expressions: Fixed issue #2879.

This commit is contained in:
Eivind Kvedalen
2017-01-28 22:28:04 +01:00
committed by wmayer
parent a988ac2537
commit 7ebaa54bd5
2 changed files with 57 additions and 11 deletions

View File

@@ -455,17 +455,6 @@ std::string OperatorExpression::toString() const
bool needsParens;
Operator leftOperator(NONE), rightOperator(NONE);
switch (op) {
case NEG:
s << "-" << left->toString();
return s.str();
case POS:
s << "+" << left->toString();
return s.str();
default:
break;
}
needsParens = false;
if (freecad_dynamic_cast<OperatorExpression>(left))
leftOperator = static_cast<OperatorExpression*>(left)->op;
@@ -478,6 +467,17 @@ std::string OperatorExpression::toString() const
// needsParens = true;
}
switch (op) {
case NEG:
s << "-" << (needsParens ? "(" : "") << left->toString() << (needsParens ? ")" : "");
return s.str();
case POS:
s << "+" << (needsParens ? "(" : "") << left->toString() << (needsParens ? ")" : "");
return s.str();
default:
break;
}
if (needsParens)
s << "(" << left->toString() << ")";
else