From a0d021abfce2f9d43f3cfa1fdfefeaf7ffbf6a29 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 19 Jan 2026 23:18:30 -0500 Subject: [PATCH] xo-reader2: bugfix in DDefineExpr --- xo-expression2/src/expression2/DDefineExpr.cpp | 6 +++++- xo-reader2/utest/SchematikaParser.test.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/xo-expression2/src/expression2/DDefineExpr.cpp b/xo-expression2/src/expression2/DDefineExpr.cpp index 14d1c52e..ada633f6 100644 --- a/xo-expression2/src/expression2/DDefineExpr.cpp +++ b/xo-expression2/src/expression2/DDefineExpr.cpp @@ -24,9 +24,13 @@ namespace xo { void * mem = mm.alloc(typeseq::id(), sizeof(DDefineExpr)); + TypeRef rhs_tref; + if (rhs_expr) + rhs_tref = rhs_expr.typeref(); + auto lhs_var = DVariable::make(mm, lhs_name, - rhs_expr.typeref()); + rhs_tref); return new (mem) DDefineExpr(lhs_var, rhs_expr); } diff --git a/xo-reader2/utest/SchematikaParser.test.cpp b/xo-reader2/utest/SchematikaParser.test.cpp index 6100392a..194a6d13 100644 --- a/xo-reader2/utest/SchematikaParser.test.cpp +++ b/xo-reader2/utest/SchematikaParser.test.cpp @@ -95,7 +95,7 @@ namespace xo { auto & result = parser.on_token(Token::symbol_token("foo")); REQUIRE(parser.has_incomplete_expr() == true); - REQUIRE(result.is_error()); + REQUIRE(result.is_incomplete()); } // define-expressions not properly implemented