@@ -137,7 +137,7 @@ auto CompletionFieldOrWordExpr::type() const -> Type
137137 return Type::FIELD;
138138}
139139
140- auto CompletionFieldOrWordExpr::ieval (Context ctx, const Value& val, const ResultFn& res) -> tl::expected<Result, Error>
140+ auto CompletionFieldOrWordExpr::ieval (Context ctx, const Value& val, const ResultFn& res) const -> tl::expected<Result, Error>
141141{
142142 if (ctx.phase == Context::Phase::Compilation)
143143 return res (ctx, Value::undef ());
@@ -191,12 +191,7 @@ auto CompletionFieldOrWordExpr::toString() const -> std::string
191191 return prefix_;
192192}
193193
194- auto CompletionFieldOrWordExpr::clone () const -> std::unique_ptr<Expr>
195- {
196- throw std::runtime_error (" Cannot clone CompletionFieldOrWordExpr" );
197- }
198-
199- auto CompletionFieldOrWordExpr::accept (ExprVisitor& v) -> void
194+ auto CompletionFieldOrWordExpr::accept (ExprVisitor& v) const -> void
200195{
201196 v.visit (*this );
202197}
@@ -216,7 +211,7 @@ struct FindExpressionRange : ExprVisitor
216211
217212 using ExprVisitor::visit;
218213
219- void visit (Expr& expr) override
214+ void visit (const Expr& expr) override
220215 {
221216 ExprVisitor::visit (expr);
222217
@@ -255,7 +250,7 @@ auto CompletionAndExpr::type() const -> Type
255250 return Type::VALUE;
256251}
257252
258- auto CompletionAndExpr::ieval (Context ctx, const Value& val, const ResultFn& res) -> tl::expected<Result, Error>
253+ auto CompletionAndExpr::ieval (Context ctx, const Value& val, const ResultFn& res) const -> tl::expected<Result, Error>
259254{
260255 if (left_)
261256 (void )left_->eval (ctx, val, LambdaResultFn ([](const Context&, const Value&) {
@@ -270,16 +265,11 @@ auto CompletionAndExpr::ieval(Context ctx, const Value& val, const ResultFn& res
270265 return Result::Continue;
271266}
272267
273- void CompletionAndExpr::accept (ExprVisitor& v)
268+ void CompletionAndExpr::accept (ExprVisitor& v) const
274269{
275270 v.visit (*this );
276271}
277272
278- auto CompletionAndExpr::clone () const -> ExprPtr
279- {
280- throw std::runtime_error (" Cannot clone CompletionAndExpr" );
281- }
282-
283273auto CompletionAndExpr::toString () const -> std::string
284274{
285275 if (left_ && right_)
@@ -316,7 +306,7 @@ auto CompletionOrExpr::type() const -> Type
316306 return Type::VALUE;
317307}
318308
319- auto CompletionOrExpr::ieval (Context ctx, const Value& val, const ResultFn& res) -> tl::expected<Result, Error>
309+ auto CompletionOrExpr::ieval (Context ctx, const Value& val, const ResultFn& res) const -> tl::expected<Result, Error>
320310{
321311 if (left_)
322312 (void )left_->eval (ctx, val, LambdaResultFn ([](const Context&, const Value&) {
@@ -331,16 +321,11 @@ auto CompletionOrExpr::ieval(Context ctx, const Value& val, const ResultFn& res)
331321 return Result::Continue;
332322}
333323
334- void CompletionOrExpr::accept (ExprVisitor& v)
324+ void CompletionOrExpr::accept (ExprVisitor& v) const
335325{
336326 v.visit (*this );
337327}
338328
339- auto CompletionOrExpr::clone () const -> ExprPtr
340- {
341- throw std::runtime_error (" Cannot clone CompletionOrExpr" );
342- }
343-
344329auto CompletionOrExpr::toString () const -> std::string
345330{
346331 if (left_ && right_)
@@ -368,7 +353,7 @@ auto CompletionWordExpr::constant() const -> bool
368353 return true ;
369354}
370355
371- auto CompletionWordExpr::ieval (Context ctx, const Value& val, const ResultFn& res) -> tl::expected<Result, Error>
356+ auto CompletionWordExpr::ieval (Context ctx, const Value& val, const ResultFn& res) const -> tl::expected<Result, Error>
372357{
373358 if (ctx.phase == Context::Phase::Compilation)
374359 return res (ctx, Value::undef ());
@@ -384,12 +369,7 @@ auto CompletionWordExpr::toString() const -> std::string
384369 return prefix_;
385370}
386371
387- auto CompletionWordExpr::clone () const -> std::unique_ptr<Expr>
388- {
389- throw std::runtime_error (" Cannot clone CompletionWordExpr" );
390- }
391-
392- auto CompletionWordExpr::accept (ExprVisitor& v) -> void
372+ auto CompletionWordExpr::accept (ExprVisitor& v) const -> void
393373{
394374 v.visit (*this );
395375}
@@ -399,12 +379,7 @@ auto CompletionConstExpr::constant() const -> bool
399379 return false ;
400380}
401381
402- auto CompletionConstExpr::clone () const -> ExprPtr
403- {
404- return std::make_unique<CompletionConstExpr>(id (), value_);
405- }
406-
407- auto CompletionConstExpr::ieval (Context ctx, const Value&, const ResultFn& res) -> tl::expected<Result, Error>
382+ auto CompletionConstExpr::ieval (Context ctx, const Value&, const ResultFn& res) const -> tl::expected<Result, Error>
408383{
409384 if (ctx.phase == Context::Compilation)
410385 return res (ctx, Value::undef ());
0 commit comments