From 604647c2405115e55555606eba2bc16317534a44 Mon Sep 17 00:00:00 2001 From: Pavel Belikov Date: Sat, 2 Dec 2023 20:06:42 +0300 Subject: [PATCH] Fix empty dict literal parsing --- src/expression_parser.cpp | 2 +- test/expressions_test.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/expression_parser.cpp b/src/expression_parser.cpp index edc599c..c892936 100644 --- a/src/expression_parser.cpp +++ b/src/expression_parser.cpp @@ -370,7 +370,7 @@ ExpressionParser::ParseResult> ExpressionPars ExpressionEvaluatorPtr result; std::unordered_map> items; - if (lexer.EatIfEqual(']')) + if (lexer.EatIfEqual('}')) return std::make_shared(std::move(items)); do diff --git a/test/expressions_test.cpp b/test/expressions_test.cpp index b528102..33f044a 100644 --- a/test/expressions_test.cpp +++ b/test/expressions_test.cpp @@ -100,6 +100,19 @@ rain }; } +MULTISTR_TEST(ExpressionsMultiStrTest, EmptyDict, +R"( +{% set d = {} %} +{{ d.asdf|default(42) }} +)", +//----------- +R"( + +42 +)") +{ +} + TEST(ExpressionTest, DoStatement) { std::string source = R"(