genpolicy tweaks (#141)

Allow `import input` instead of erroring out.
This import is redundant and has no effect.

Emit `print` messages to stderr onstead of stdout.

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
Anand Krishnamoorthi
2024-02-11 16:52:12 -08:00
committed by GitHub
parent 3b2e639918
commit 13eb06e4be
3 changed files with 21 additions and 2 deletions

View File

@@ -35,7 +35,7 @@ fn print(span: &Span, _params: &[Ref<Expr>], args: &[Value], _strict: bool) -> R
}
if !msg.is_empty() {
println!("{}", &msg[1..]);
eprintln!("{}", &msg[1..]);
}
Ok(Value::Bool(true))
}

View File

@@ -3359,11 +3359,22 @@ impl Interpreter {
Expr::String(s) => s.text(),
_ => "",
},
Expr::Var(v) if v.text() == "input" => {
// Warn redundant import of input. Ignore it.
eprintln!(
"{}",
import.refr.span().error("redundant import of `input`")
);
continue;
}
_ => "",
},
};
if target.is_empty() {
bail!(import.refr.span().error("invalid ref in import"));
bail!(import
.refr
.span()
.message("warning", "invalid ref in import"));
}
self.imports
.insert(module_path.clone() + "." + target, import.refr.clone());

View File

@@ -71,3 +71,11 @@ cases:
import foo
query: data
error: "import path must begin with one of"
- note: redundant import input
modules:
- |
package test
import input
query: data.test
want_result: {}