The symbol table will contain types that encloses a Value, thus, it needs to depend upon the Value header, whereas the Value header depends on `Symbol` for typedefs. We move the typedefs in the place where they are used. Change-Id: Ic533e5aad927b9bc4a9d1723430e90e86a4b5466 Signed-off-by: Raito Bezarius <raito@lix.systems>
27 lines
648 B
C++
27 lines
648 B
C++
#pragma once
|
|
///@file
|
|
|
|
#include "lix/libexpr/symbol-table.hh"
|
|
#include "lix/libexpr/value.hh"
|
|
|
|
namespace nix {
|
|
|
|
/**
|
|
* Print a value in the deprecated format used by `nix-instantiate --eval` and
|
|
* `nix-env` (for manifests).
|
|
*
|
|
* This output can't be changed because it's part of the `nix-instantiate` API,
|
|
* but it produces ambiguous output; unevaluated thunks and lambdas (and a few
|
|
* other types) are printed as Nix path syntax like `<CODE>`.
|
|
*
|
|
* See: https://github.com/NixOS/nix/issues/9730
|
|
*/
|
|
void printAmbiguous(
|
|
Value &v,
|
|
const SymbolTable &symbols,
|
|
std::ostream &str,
|
|
std::set<const void *> *seen,
|
|
int depth);
|
|
|
|
}
|