diff options
Diffstat (limited to 'src/lift.cpp')
-rw-r--r-- | src/lift.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lift.cpp b/src/lift.cpp index e0a5b5a..5ac3816 100644 --- a/src/lift.cpp +++ b/src/lift.cpp @@ -30,8 +30,7 @@ using namespace std; static const AST* lift_symbol(CEnv& cenv, Code& code, const ASymbol* sym) throw() { - const std::string& cppstr = sym->cppstr; - if (!cenv.liftStack.empty() && cppstr == cenv.name(cenv.liftStack.top().fn)) { + if (!cenv.liftStack.empty() && cenv.name(cenv.liftStack.top().fn) == sym->sym()) { return cenv.penv.sym("_me"); // Reference to innermost function } else if (!cenv.code.innermost(sym)) { @@ -145,7 +144,7 @@ lift_call(CEnv& cenv, Code& code, const ATuple* call) throw() const AType* copyT = NULL; const ASymbol* sym = call->head()->to_symbol(); - if (sym && !cenv.liftStack.empty() && sym->cppstr == cenv.name(cenv.liftStack.top().fn)) { + if (sym && !cenv.liftStack.empty() && sym->sym() == cenv.name(cenv.liftStack.top().fn)) { /* Recursive call to innermost function, call implementation directly, * reusing the current "_me" closure parameter (no cons or .). */ @@ -234,7 +233,7 @@ resp_lift(CEnv& cenv, Code& code, const AST* ast) throw() const ATuple* const call = ast->to_tuple(); if (call) { const ASymbol* const sym = call->head()->to_symbol(); - const std::string form = sym ? sym->cppstr : ""; + const std::string form = sym ? sym->sym() : ""; if (is_primitive(cenv.penv, call)) return lift_builtin_call(cenv, code, call); else if (form == "fn") |