[calculation][poincare] Revert 'b8544e3' and improve equal simplification

This commit is contained in:
Laury
2021-09-01 17:31:51 +02:00
parent d90af0323e
commit 7b4a94296b
7 changed files with 22 additions and 25 deletions

View File

@@ -31,9 +31,13 @@ void FunctionApp::willBecomeInactive() {
::App::willBecomeInactive();
}
bool FunctionApp::isAcceptableExpression(const Expression exp) {
return TextFieldDelegateApp::isAcceptableExpression(exp) && ExpressionCanBeSerialized(exp, false, Expression(), localContext());
bool FunctionApp::isAcceptableExpression(const Poincare::Expression expression) {
/* We forbid functions whose type is equal because the input "2+f(3)" would be
* simplify to an expression with an nested equal node which makes no sense. */
if (!TextFieldDelegateApp::ExpressionCanBeSerialized(expression, false, Expression(), localContext()) || expression.type() == ExpressionNode::Type::Equal) {
return false;
}
return TextFieldDelegateApp::isAcceptableExpression(expression);
}
}

View File

@@ -85,7 +85,13 @@ bool TextFieldDelegateApp::isFinishingEvent(Ion::Events::Event event) {
}
bool TextFieldDelegateApp::isAcceptableExpression(const Expression exp) {
return !(exp.isUninitialized() || exp.type() == ExpressionNode::Type::Store || exp.type() == ExpressionNode::Type::Equal);
if (exp.isUninitialized()) {
return false;
}
if (exp.type() == ExpressionNode::Type::Store) {
return false;
}
return true;
}
bool TextFieldDelegateApp::ExpressionCanBeSerialized(const Expression expression, bool replaceAns, Expression ansExpression, Context * context) {