Skip to content

Commit 6b29b2c

Browse files
authored
Merge branch 'main' into startswith
2 parents 27540ff + cb5f47e commit 6b29b2c

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

include/minja/minja.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,6 +1323,8 @@ class BinaryOpExpr : public Expression {
13231323
if (name == "iterable") return l.is_iterable();
13241324
if (name == "sequence") return l.is_array();
13251325
if (name == "defined") return !l.is_null();
1326+
if (name == "true") return l.to_bool();
1327+
if (name == "false") return !l.to_bool();
13261328
throw std::runtime_error("Unknown type for 'is' operator: " + name);
13271329
};
13281330
auto value = eval();

tests/test-syntax.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,18 @@ TEST(SyntaxTest, SimpleCases) {
220220
EXPECT_EQ(
221221
"False",
222222
render(R"({% set foo = true %}{{ not foo is defined }})", {}, {}));
223+
EXPECT_EQ(
224+
"True",
225+
render(R"({% set foo = true %}{{ foo is true }})", {}, {}));
226+
EXPECT_EQ(
227+
"False",
228+
render(R"({% set foo = true %}{{ foo is false }})", {}, {}));
229+
EXPECT_EQ(
230+
"True",
231+
render(R"({% set foo = false %}{{ foo is not true }})", {}, {}));
232+
EXPECT_EQ(
233+
"False",
234+
render(R"({% set foo = false %}{{ foo is not false }})", {}, {}));
223235
EXPECT_EQ(
224236
R"({"a": "b"})",
225237
render(R"({{ {"a": "b"} | tojson }})", {}, {}));

0 commit comments

Comments
 (0)