From 23895f40e23ae428f4ac4028ca9fb86311fc70d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Fri, 9 Nov 2018 13:58:18 +0100 Subject: [PATCH] [poincare] When storing a function, replace unknownX by user's variable --- poincare/src/store.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/poincare/src/store.cpp b/poincare/src/store.cpp index a967508ee..3dac5e16e 100644 --- a/poincare/src/store.cpp +++ b/poincare/src/store.cpp @@ -78,8 +78,15 @@ Expression Store::shallowReduce(Context & context, Preferences::AngleUnit angleU if (e.isUninitialized()) { return Undefined(); } + if (symbol().type() == ExpressionNode::Type::Function) { + // Replace the xUnknown symbol with the variable initially used + assert(symbol().childAtIndex(0).type() == ExpressionNode::Type::Symbol); + Expression userDefinedUnknown = symbol().childAtIndex(0); + Symbol xUnknown = Symbol(Symbol::SpecialSymbols::UnknownX); + e = e.replaceSymbolWithExpression(xUnknown, static_cast(userDefinedUnknown)); + } replaceWithInPlace(e); - return e.shallowReduce(context, angleUnit, replaceSymbols); + return e; } }