asoffer / Icarus

An experimental general-purpose programming language
Apache License 2.0
9 stars 2 forks source link

Replace base::expected with absl::StatusOr #43

Closed asoffer closed 3 years ago

perimosocordiae commented 3 years ago

Here are the remaining base::expected usages, according to git grep:

compiler/compiler.cc:base::expected<ir::Value, interpreter::EvaluationFailure> Compiler::Evaluate(
compiler/compiler.h:  base::expected<ir::Value, interpreter::EvaluationFailure> Evaluate(
compiler/compiler.h:  base::expected<type::QualType, CallError> VerifyCall(
compiler/verify/common.cc:base::expected<type::QualType, Compiler::CallError> Compiler::VerifyCall(
ir/interpreter/evaluate.cc:base::expected<ir::Value, EvaluationFailure> Evaluate(ir::CompiledFn &&fn) {
ir/interpreter/evaluate.h:base::expected<ir::Value, EvaluationFailure> Evaluate(ir::CompiledFn &&fn);

I haven't looked too deeply at EvaluationFailure or CallError yet, but I expect they carry more than an absl::Status would. Unless there's a nice way to tag a status with the necessary payload, I'll consider this issue resolved.