~duangle/scopes

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch

[PATCH] prover.cpp: loop merge conflict error now points to loop header as source

Details
Message ID
<dc6cabdae1088c40fa22.1593438665@pop-os.localdomain>
DKIM signature
missing
Download raw message
Patch: +1 -3
# HG changeset patch
# User Westerbly Snaydley <westerbly@gmail.com>
# Date 1593438120 18000
#      Mon Jun 29 08:42:00 2020 -0500
# Node ID dc6cabdae1088c40fa22da6f9b2ff08be26ed7c0
# Parent  7fccfb5a02ee7da629d6860fceda7187922ac8c0
prover.cpp: loop merge conflict error now points to loop header as source

Previously the error message was anchored to the return type that precedes the conflicting one. This makes sense for functions where the return type is inferred by the return points, but not for loops where we always know the type (from the header).

diff --git a/src/prover.cpp b/src/prover.cpp
--- a/src/prover.cpp
+++ b/src/prover.cpp
@@ -1260,12 +1260,10 @@
    SCOPES_TRACE_PROVE_EXPR(loop);

    const Type *rtype = newloop->args->get_type();
    const Anchor *last_anchor = result.anchor();
    for (auto repeat : newloop->repeats) {
        SCOPES_CHECK_RESULT(merge_value_type("loop repeat", rtype,
            arguments_type_from_typed_values(repeat->values),
            last_anchor, repeat.anchor()));
        last_anchor = repeat.anchor();
            newloop.anchor(), repeat.anchor()));
    }

    return TypedValueRef(newloop);
Reply to thread Export thread (mbox)