From 66e6445e88b286c0706e42942ff536ba487d479a Mon Sep 17 00:00:00 2001 From: ajreynol Date: Wed, 3 Apr 2024 09:04:28 -0500 Subject: [PATCH] Fixes --- src/kind.cpp | 2 +- src/type_checker.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/kind.cpp b/src/kind.cpp index 478e314a..3d173942 100644 --- a/src/kind.cpp +++ b/src/kind.cpp @@ -54,7 +54,7 @@ std::ostream& operator<<(std::ostream& o, Kind k) case Kind::EVAL_TYPE_OF: o << "EVAL_TYPE_OF"; break; case Kind::EVAL_NAME_OF: o << "EVAL_NAME_OF"; break; // lists - case Kind::EVAL_NIL: o << "EVAL_EMPTYLIST";break; + case Kind::EVAL_NIL: o << "EVAL_NIL";break; case Kind::EVAL_CONS: o << "EVAL_CONS"; break; // boolean case Kind::EVAL_NOT: o << "EVAL_NOT"; break; diff --git a/src/type_checker.cpp b/src/type_checker.cpp index c14ab857..58d54371 100644 --- a/src/type_checker.cpp +++ b/src/type_checker.cpp @@ -1174,7 +1174,13 @@ Expr TypeChecker::evaluateLiteralOpInternal( bool isLeft = (ck==Attr::LEFT_ASSOC_NIL); Trace("type_checker_debug") << "EVALUATE-LIT (list) " << k << " " << isLeft << " " << args << std::endl; // infer the nil expression, which depends on the type of args[1] - Expr nilExpr = computeConstructorTermInternal(ac, {Expr(args[0]), Expr(args[1])}); + std::vector eargs; + eargs.emplace_back(args[0]); + if (args.size()>1) + { + eargs.emplace_back(args[1]); + } + Expr nilExpr = computeConstructorTermInternal(ac, eargs); if (nilExpr.isNull()) { Trace("type_checker") << "...failed to get nil" << std::endl;