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(