Fix kind being marked as dead code logs.chromium.org/logs/gn/buildbucket/cr-buildbucket/8673874371636868257/+/u/debug/linux-amd64/build__2_/stdout Change-Id: I87257ff5c878f34fce47d9d756e81a806a6a6964 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/25200 Commit-Queue: Matt Stark <msta@google.com> Reviewed-by: Takuto Ikuta <tikuta@google.com>
diff --git a/src/gn/starlark/crates/ffi/src/errors.rs b/src/gn/starlark/crates/ffi/src/errors.rs index d76cb6d..649a918 100644 --- a/src/gn/starlark/crates/ffi/src/errors.rs +++ b/src/gn/starlark/crates/ffi/src/errors.rs
@@ -9,6 +9,8 @@ pub(crate) enum Error { #[error("Key '{0}' not found in module '{1}'")] KeyNotFound(String, Label), + #[error("This is not allowed while executing a function loaded from a starlark file.")] + RequiresBzlFile, } impl From<Error> for starlark::Error {
diff --git a/src/gn/starlark/crates/ffi/src/eval_context.rs b/src/gn/starlark/crates/ffi/src/eval_context.rs index e514876..bc8affa 100644 --- a/src/gn/starlark/crates/ffi/src/eval_context.rs +++ b/src/gn/starlark/crates/ffi/src/eval_context.rs
@@ -6,6 +6,8 @@ use starlark::values::ProvidesStaticType; use types::{LabelRef, PackageRef, PathResolver}; +use crate::errors::Error; + #[derive(Allocative)] enum EvalContextKind { BzlFile, @@ -58,7 +60,9 @@ } fn require_bzl(&self) -> starlark::Result<()> { - todo!() + matches!(self.kind, EvalContextKind::BzlFile) + .then_some(()) + .ok_or_else(|| Error::RequiresBzlFile.into()) } fn require_rule_impl(