Fix gn CHECK()ing on not_needed() when given undefined identifiers
GN now gives an error message that looks like:
ERROR at //BUILD.gn:76:23: Undefined identifier
not_needed(["deps", "deps_____________"])
^------------------
R=dpranke
Change-Id: Ic55afef672a7aefab7934875ceb22aff52b68f94
Reviewed-on: https://chromium-review.googlesource.com/1063118
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#559899}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4497a44f0d8236cb069ed89c013154c1adfc2087
diff --git a/tools/gn/functions.cc b/tools/gn/functions.cc
index 105dadf..e7fb524 100644
--- a/tools/gn/functions.cc
+++ b/tools/gn/functions.cc
@@ -746,7 +746,10 @@
for (const Value& cur : value->list_value()) {
if (!cur.VerifyTypeIs(Value::STRING, err))
return Value();
- source->MarkUsed(cur.string_value());
+ if (!source->GetValue(cur.string_value(), true)) {
+ *err = Err(cur, "Undefined identifier");
+ return Value();
+ }
}
return Value();
}