about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-08-24T13·31+0300
committertazjin <tazjin@tvl.su>2022-09-02T12·59+0000
commit07fcaf034b17df80de2f37de008562209a76987c (patch)
tree493c8aa0467c90ae128df0bcf1649e2e6cf58305
parentb41960c55efd8e9e95ac67681ea21c1b22bbcd99 (diff)
feat(tvix/eval): emit warnings when globals are being shadowed r/4591
Change-Id: I7dae6978c2a4548382d7fa059b20ccdf35d2cf7f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6257
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
-rw-r--r--tvix/eval/src/compiler.rs1
-rw-r--r--tvix/eval/src/warnings.rs1
2 files changed, 2 insertions, 0 deletions
diff --git a/tvix/eval/src/compiler.rs b/tvix/eval/src/compiler.rs
index cb97b61c989e..a2ab6273c102 100644
--- a/tvix/eval/src/compiler.rs
+++ b/tvix/eval/src/compiler.rs
@@ -900,6 +900,7 @@ impl Compiler {
         };
 
         if let Some(global_ident) = key {
+            self.emit_warning(node.clone(), WarningKind::ShadowedGlobal(global_ident));
             self.scope_mut().poison(global_ident, depth);
         }
 
diff --git a/tvix/eval/src/warnings.rs b/tvix/eval/src/warnings.rs
index 20aa9677466e..5bc8ed971aea 100644
--- a/tvix/eval/src/warnings.rs
+++ b/tvix/eval/src/warnings.rs
@@ -6,6 +6,7 @@ pub enum WarningKind {
     DeprecatedLiteralURL,
     UselessInherit,
     UnusedBinding,
+    ShadowedGlobal(&'static str),
 }
 
 #[derive(Debug)]