summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parser/parsers.h6
-rw-r--r--src/support/result.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/parser/parsers.h b/src/parser/parsers.h
index 4121788d7..2d3321dcd 100644
--- a/src/parser/parsers.h
+++ b/src/parser/parsers.h
@@ -1099,7 +1099,7 @@ block(Ctx& ctx, const std::vector<Annotation>& annotations, bool folded) {
auto type = blocktype(ctx);
CHECK_ERR(type);
- ctx.makeBlock(pos, annotations, label, *type);
+ CHECK_ERR(ctx.makeBlock(pos, annotations, label, *type));
CHECK_ERR(instrs(ctx));
@@ -1162,7 +1162,7 @@ ifelse(Ctx& ctx, const std::vector<Annotation>& annotations, bool folded) {
return ctx.in.err("else label does not match if label");
}
- ctx.visitElse();
+ CHECK_ERR(ctx.visitElse());
CHECK_ERR(instrs(ctx));
@@ -1205,7 +1205,7 @@ loop(Ctx& ctx, const std::vector<Annotation>& annotations, bool folded) {
auto type = blocktype(ctx);
CHECK_ERR(type);
- ctx.makeLoop(pos, annotations, label, *type);
+ CHECK_ERR(ctx.makeLoop(pos, annotations, label, *type));
CHECK_ERR(instrs(ctx));
diff --git a/src/support/result.h b/src/support/result.h
index ab71d3a53..7cd360d53 100644
--- a/src/support/result.h
+++ b/src/support/result.h
@@ -40,7 +40,7 @@ struct Err {
}
// Represent a result of type T or an error message.
-template<typename T = Ok> struct Result {
+template<typename T = Ok> struct [[nodiscard]] Result {
std::variant<T, Err> val;
Result(Result<T>& other) = default;
@@ -56,7 +56,7 @@ template<typename T = Ok> struct Result {
};
// Represent an optional result of type T or an error message.
-template<typename T = Ok> struct MaybeResult {
+template<typename T = Ok> struct [[nodiscard]] MaybeResult {
std::variant<T, None, Err> val;
MaybeResult() : val(None{}) {}