fix(3p/nix): Compatibility with updated SymbolTable

The functions in SymbolTable have been renamed to match the Google
Style guide, and some debug-only functions have been removed.
This commit is contained in:
Vincent Ambo 2020-05-21 04:56:22 +01:00
parent 97e85f94e5
commit c395a48be2
21 changed files with 141 additions and 137 deletions

View file

@ -118,12 +118,12 @@ static void prim_scopedImport(EvalState& state, const Pos& pos, Value** args,
mkString(*v2, path, {"=" + path});
v2 = state.allocAttr(w, state.sName);
mkString(*v2, drv.env["name"]);
Value* outputsVal = state.allocAttr(w, state.symbols.create("outputs"));
Value* outputsVal = state.allocAttr(w, state.symbols.Create("outputs"));
state.mkList(*outputsVal, drv.outputs.size());
unsigned int outputs_index = 0;
for (const auto& o : drv.outputs) {
v2 = state.allocAttr(w, state.symbols.create(o.first));
v2 = state.allocAttr(w, state.symbols.Create(o.first));
mkString(*v2, o.second.path, {"!" + o.first + "!" + path});
outputsVal->listElems()[outputs_index] = state.allocValue();
mkString(*(outputsVal->listElems()[outputs_index++]), o.first);
@ -291,7 +291,7 @@ static void prim_typeOf(EvalState& state, const Pos& pos, Value** args,
default:
abort();
}
mkString(v, state.symbols.create(t));
mkString(v, state.symbols.Create(t));
}
/* Determine whether the argument is the null value. */
@ -394,7 +394,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
/* Get the start set. */
Bindings::iterator startSet =
args[0]->attrs->find(state.symbols.create("startSet"));
args[0]->attrs->find(state.symbols.Create("startSet"));
if (startSet == args[0]->attrs->end()) {
throw EvalError(format("attribute 'startSet' required, at %1%") % pos);
}
@ -407,7 +407,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
/* Get the operator. */
Bindings::iterator op =
args[0]->attrs->find(state.symbols.create("operator"));
args[0]->attrs->find(state.symbols.Create("operator"));
if (op == args[0]->attrs->end()) {
throw EvalError(format("attribute 'operator' required, at %1%") % pos);
}
@ -426,7 +426,7 @@ static void prim_genericClosure(EvalState& state, const Pos& pos, Value** args,
state.forceAttrs(*e, pos);
Bindings::iterator key = e->attrs->find(state.symbols.create("key"));
Bindings::iterator key = e->attrs->find(state.symbols.Create("key"));
if (key == e->attrs->end()) {
throw EvalError(format("attribute 'key' required, at %1%") % pos);
}
@ -493,10 +493,10 @@ static void prim_tryEval(EvalState& state, const Pos& pos, Value** args,
try {
state.forceValue(*args[0]);
v.attrs->push_back(Attr(state.sValue, args[0]));
mkBool(*state.allocAttr(v, state.symbols.create("success")), true);
mkBool(*state.allocAttr(v, state.symbols.Create("success")), true);
} catch (AssertionError& e) {
mkBool(*state.allocAttr(v, state.sValue), false);
mkBool(*state.allocAttr(v, state.symbols.create("success")), false);
mkBool(*state.allocAttr(v, state.symbols.Create("success")), false);
}
v.attrs->sort();
}
@ -846,7 +846,7 @@ static void prim_derivationStrict(EvalState& state, const Pos& pos,
state.mkAttrs(v, 1 + drv.outputs.size());
mkString(*state.allocAttr(v, state.sDrvPath), drvPath, {"=" + drvPath});
for (auto& i : drv.outputs) {
mkString(*state.allocAttr(v, state.symbols.create(i.first)), i.second.path,
mkString(*state.allocAttr(v, state.symbols.Create(i.first)), i.second.path,
{"!" + i.first + "!" + drvPath});
}
v.attrs->sort();
@ -987,12 +987,12 @@ static void prim_findFile(EvalState& state, const Pos& pos, Value** args,
state.forceAttrs(v2, pos);
string prefix;
Bindings::iterator i = v2.attrs->find(state.symbols.create("prefix"));
Bindings::iterator i = v2.attrs->find(state.symbols.Create("prefix"));
if (i != v2.attrs->end()) {
prefix = state.forceStringNoCtx(*i->value, pos);
}
i = v2.attrs->find(state.symbols.create("path"));
i = v2.attrs->find(state.symbols.Create("path"));
if (i == v2.attrs->end()) {
throw EvalError(format("attribute 'path' missing, at %1%") % pos);
}
@ -1050,7 +1050,7 @@ static void prim_readDir(EvalState& state, const Pos& pos, Value** args,
state.mkAttrs(v, entries.size());
for (auto& ent : entries) {
Value* ent_val = state.allocAttr(v, state.symbols.create(ent.name));
Value* ent_val = state.allocAttr(v, state.symbols.Create(ent.name));
if (ent.type == DT_UNKNOWN) {
ent.type = getFileType(path + "/" + ent.name);
}
@ -1301,7 +1301,7 @@ void prim_getAttr(EvalState& state, const Pos& pos, Value** args, Value& v) {
string attr = state.forceStringNoCtx(*args[0], pos);
state.forceAttrs(*args[1], pos);
// !!! Should we create a symbol here or just do a lookup?
Bindings::iterator i = args[1]->attrs->find(state.symbols.create(attr));
Bindings::iterator i = args[1]->attrs->find(state.symbols.Create(attr));
if (i == args[1]->attrs->end()) {
throw EvalError(format("attribute '%1%' missing, at %2%") % attr % pos);
}
@ -1318,7 +1318,7 @@ void prim_unsafeGetAttrPos(EvalState& state, const Pos& pos, Value** args,
Value& v) {
string attr = state.forceStringNoCtx(*args[0], pos);
state.forceAttrs(*args[1], pos);
Bindings::iterator i = args[1]->attrs->find(state.symbols.create(attr));
Bindings::iterator i = args[1]->attrs->find(state.symbols.Create(attr));
if (i == args[1]->attrs->end()) {
mkNull(v);
} else {
@ -1331,7 +1331,7 @@ static void prim_hasAttr(EvalState& state, const Pos& pos, Value** args,
Value& v) {
string attr = state.forceStringNoCtx(*args[0], pos);
state.forceAttrs(*args[1], pos);
mkBool(v, args[1]->attrs->find(state.symbols.create(attr)) !=
mkBool(v, args[1]->attrs->find(state.symbols.Create(attr)) !=
args[1]->attrs->end());
}
@ -1351,7 +1351,7 @@ static void prim_removeAttrs(EvalState& state, const Pos& pos, Value** args,
std::set<Symbol> names;
for (unsigned int i = 0; i < args[1]->listSize(); ++i) {
state.forceStringNoCtx(*args[1]->listElems()[i], pos);
names.insert(state.symbols.create(args[1]->listElems()[i]->string.s));
names.insert(state.symbols.Create(args[1]->listElems()[i]->string.s));
}
/* Copy all attributes not in that set. Note that we don't need
@ -1391,10 +1391,13 @@ static void prim_listToAttrs(EvalState& state, const Pos& pos, Value** args,
}
string name = state.forceStringNoCtx(*j->value, pos);
Symbol sym = state.symbols.create(name);
Symbol sym = state.symbols.Create(name);
if (seen.find(sym) == seen.end()) {
Bindings::iterator j2 =
v2.attrs->find(state.symbols.create(state.sValue));
// TODO(tazjin): this line used to construct the symbol again:
// state.symbols.Create(state.sValue));
// Why?
v2.attrs->find(state.sValue);
if (j2 == v2.attrs->end()) {
throw TypeError(format("'value' attribute missing in a call to "
"'listToAttrs', at %1%") %
@ -1436,7 +1439,7 @@ static void prim_intersectAttrs(EvalState& state, const Pos& pos, Value** args,
*/
static void prim_catAttrs(EvalState& state, const Pos& pos, Value** args,
Value& v) {
Symbol attrName = state.symbols.create(state.forceStringNoCtx(*args[0], pos));
Symbol attrName = state.symbols.Create(state.forceStringNoCtx(*args[0], pos));
state.forceList(*args[1], pos);
Value* res[args[1]->listSize()];
@ -2144,7 +2147,7 @@ static void prim_parseDrvName(EvalState& state, const Pos& pos, Value** args,
DrvName parsed(name);
state.mkAttrs(v, 2);
mkString(*state.allocAttr(v, state.sName), parsed.name);
mkString(*state.allocAttr(v, state.symbols.create("version")),
mkString(*state.allocAttr(v, state.symbols.Create("version")),
parsed.version);
v.attrs->sort();
}
@ -2430,7 +2433,7 @@ void EvalState::createBaseEnv() {
`drvPath' and `outPath' attributes lazily. */
string path =
canonPath(settings.nixDataDir + "/nix/corepkgs/derivation.nix", true);
sDerivationNix = symbols.create(path);
sDerivationNix = symbols.Create(path);
evalFile(path, v);
addConstant("derivation", v);
@ -2440,8 +2443,8 @@ void EvalState::createBaseEnv() {
for (auto& i : searchPath) {
v2 = v.listElems()[n++] = allocValue();
mkAttrs(*v2, 2);
mkString(*allocAttr(*v2, symbols.create("path")), i.second);
mkString(*allocAttr(*v2, symbols.create("prefix")), i.first);
mkString(*allocAttr(*v2, symbols.Create("path")), i.second);
mkString(*allocAttr(*v2, symbols.Create("prefix")), i.first);
v2->attrs->sort();
}
addConstant("__nixPath", v);