Unify Action and Scope stacks, and eliminate Frame (#880)

Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
This commit is contained in:
Geoff Romer
2021-10-21 14:55:41 -07:00
committed by GitHub
co-authored by Jon Meow
parent 44154c8663
commit 3bec7f8dc0
13 changed files with 450 additions and 329 deletions
+4 -3
View File
@@ -9,7 +9,7 @@
#include "common/check.h"
#include "executable_semantics/common/arena.h"
#include "executable_semantics/common/error.h"
#include "executable_semantics/interpreter/frame.h"
#include "executable_semantics/interpreter/action.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/Casting.h"
@@ -274,8 +274,9 @@ void Value::Print(llvm::raw_ostream& out) const {
case Value::Kind::ContinuationValue: {
out << "{";
llvm::ListSeparator sep(" :: ");
for (Nonnull<Frame*> frame : cast<ContinuationValue>(*this).stack()) {
out << sep << *frame;
for (Nonnull<const Action*> action :
cast<ContinuationValue>(*this).stack()) {
out << sep << *action;
}
out << "}";
break;