fix(3p/nix): inherit Expr from gc, make parser state traceable

The parser contained vectors, and the primary parser state, that
were not participating in GC tracing.

Change-Id: Ie198592cd7acffd390e3e2ae9595138b56416838
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1706
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
Kane York 2020-08-09 22:42:00 -07:00 committed by kanepyork
parent 42bdaacca6
commit 906f5c1d2d
4 changed files with 56 additions and 40 deletions

View file

@ -5,6 +5,7 @@
#include <optional>
#include <variant>
#include <gc/gc.h>
#include <glog/logging.h>
#include "libexpr/eval.hh"
@ -59,8 +60,7 @@ void addAttr(ExprAttrs* attrs, AttrPath& attrPath, Expr* e, const Pos& pos);
void addFormal(const Pos& pos, Formals* formals, const Formal& formal);
Expr* stripIndentation(const Pos& pos, SymbolTable& symbols,
std::vector<Expr*>& es);
Expr* stripIndentation(const Pos& pos, SymbolTable& symbols, VectorExprs& es);
Path resolveExprPath(Path path);