diff options
author | eldritch horrors <pennae@lix.systems> | 2024-06-16 23:10:09 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-06-17 19:46:44 +0000 |
commit | bcb774688feea4e1fc7919d4890361f4f8ea1f60 (patch) | |
tree | d89d43aed2a58040254f1aa18562f787b439b960 /tests/unit/libexpr | |
parent | ad5366c2ad43216ac9a61ccb1477ff9859d1a75c (diff) |
libexpr: add expr memory management
with the prepatory work done this mostly means turning plain pointers
into unique_ptrs, with all the associated churn that necessitates. we
might want to change some of these to box_ptrs at some point as well,
but that would be a semantic change that isn't fully appropriate yet.
Change-Id: I0c238c118617420650432f4ed45569baa3e3f413
Diffstat (limited to 'tests/unit/libexpr')
-rw-r--r-- | tests/unit/libexpr/value/print.cc | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/tests/unit/libexpr/value/print.cc b/tests/unit/libexpr/value/print.cc index feabc07c1..cdbc8f8f9 100644 --- a/tests/unit/libexpr/value/print.cc +++ b/tests/unit/libexpr/value/print.cc @@ -113,10 +113,8 @@ TEST_F(ValuePrintingTests, vLambda) }; PosTable::Origin origin = state.positions.addOrigin(std::monostate(), 1); auto posIdx = state.positions.add(origin, 0); - auto body = ExprInt(0); - auto formals = Formals {}; - ExprLambda eLambda(posIdx, createSymbol("a"), &formals, &body); + ExprLambda eLambda(posIdx, createSymbol("a"), std::make_unique<Formals>(), std::make_unique<ExprInt>(0)); Value vLambda; vLambda.mkLambda(&env, &eLambda); @@ -515,11 +513,10 @@ TEST_F(ValuePrintingTests, ansiColorsDerivationError) TEST_F(ValuePrintingTests, ansiColorsAssert) { - ExprVar eFalse(state.symbols.create("false")); - eFalse.bindVars(state, state.staticBaseEnv); - ExprInt eInt(1); - - ExprAssert expr(noPos, &eFalse, &eInt); + ExprAssert expr(noPos, + std::make_unique<ExprVar>(state.symbols.create("false")), + std::make_unique<ExprInt>(1)); + expr.bindVars(state, state.staticBaseEnv); Value v; state.mkThunk_(v, expr); @@ -561,10 +558,8 @@ TEST_F(ValuePrintingTests, ansiColorsLambda) }; PosTable::Origin origin = state.positions.addOrigin(std::monostate(), 1); auto posIdx = state.positions.add(origin, 0); - auto body = ExprInt(0); - auto formals = Formals {}; - ExprLambda eLambda(posIdx, createSymbol("a"), &formals, &body); + ExprLambda eLambda(posIdx, createSymbol("a"), std::make_unique<Formals>(), std::make_unique<ExprInt>(0)); Value vLambda; vLambda.mkLambda(&env, &eLambda); |