Fix clippy and track in CI
`flake check` will run clippy.
This commit is contained in:
parent
654addc555
commit
351a206776
13 changed files with 82 additions and 50 deletions
|
|
@ -8,3 +8,12 @@ members = [
|
|||
"nix-bindings-util",
|
||||
]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.lints.rust]
|
||||
warnings = "deny"
|
||||
dead-code = "allow"
|
||||
|
||||
[workspace.lints.clippy]
|
||||
type-complexity = "allow"
|
||||
# We're still trying to make Nix more thread-safe, want forward-compat
|
||||
arc-with-non-send-sync = "allow"
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@
|
|||
key = "nix-bindings-rust-add-checks";
|
||||
config.checks = lib.concatMapAttrs (
|
||||
k: v:
|
||||
lib.optionalAttrs (lib.strings.hasPrefix "nix-bindings-" k && !lib.strings.hasSuffix "-clippy" k) {
|
||||
lib.optionalAttrs (lib.strings.hasPrefix "nix-bindings-" k) {
|
||||
"dependency-${k}" = v;
|
||||
}
|
||||
) nix-bindings-rust-perSystemConfig.config.checks;
|
||||
|
|
|
|||
|
|
@ -16,3 +16,6 @@ lazy_static = "1.4"
|
|||
ctor = "0.2"
|
||||
tempfile = "3.10"
|
||||
cstr = "0.2"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
|||
|
|
@ -1382,7 +1382,7 @@ mod tests {
|
|||
let a = es.eval_from_string("2", "<test>").unwrap();
|
||||
let v = es.new_value_apply(&f, &a).unwrap();
|
||||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == None);
|
||||
assert!(t.is_none());
|
||||
let i = es.require_int(&v).unwrap();
|
||||
assert!(i == 3);
|
||||
})
|
||||
|
|
@ -1398,9 +1398,9 @@ mod tests {
|
|||
let a = es.eval_from_string("true", "<test>").unwrap();
|
||||
let v = es.new_value_apply(&f, &a).unwrap();
|
||||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == None);
|
||||
assert!(t.is_none());
|
||||
let i = es.require_bool(&v).unwrap();
|
||||
assert!(i == false);
|
||||
assert!(!i);
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -1423,7 +1423,7 @@ mod tests {
|
|||
let mut es = EvalState::new(store, []).unwrap();
|
||||
let v = make_thunk(&mut es, "1");
|
||||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == None);
|
||||
assert!(t.is_none());
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -1450,7 +1450,7 @@ mod tests {
|
|||
let mut es = EvalState::new(store, []).unwrap();
|
||||
let v = make_thunk(&mut es, "{ a = 1; b = 2; }");
|
||||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == None);
|
||||
assert!(t.is_none());
|
||||
let attrs = es.require_attrs_names_unsorted(&v).unwrap();
|
||||
assert_eq!(attrs.len(), 2);
|
||||
})
|
||||
|
|
@ -1507,7 +1507,7 @@ mod tests {
|
|||
let s = format!("{e:#}");
|
||||
if !s.contains("attribute `c` not found") {
|
||||
eprintln!("unexpected error message: {}", s);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1542,7 +1542,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("oh no the error") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1594,7 +1594,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("oh no the error") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1730,7 +1730,7 @@ mod tests {
|
|||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == Some(ValueType::String));
|
||||
let s = es.require_string(&v).unwrap();
|
||||
assert!(s == "");
|
||||
assert!(s.is_empty());
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -1746,7 +1746,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("contains null byte") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1832,7 +1832,7 @@ mod tests {
|
|||
let list: Vec<Value> = es.require_list_strict(&v).unwrap();
|
||||
assert_eq!(list.len(), 2);
|
||||
assert_eq!(es.require_int(&list[0]).unwrap(), 42);
|
||||
assert_eq!(es.require_bool(&list[1]).unwrap(), true);
|
||||
assert!(es.require_bool(&list[1]).unwrap());
|
||||
})
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -1971,7 +1971,7 @@ mod tests {
|
|||
let f = es.eval_from_string("x: x + 1", "<test>").unwrap();
|
||||
let a = es.eval_from_string("2", "<test>").unwrap();
|
||||
let v = es.new_value_apply(&f, &a).unwrap();
|
||||
assert!(es.value_type_unforced(&v) == None);
|
||||
assert!(es.value_type_unforced(&v).is_none());
|
||||
es.force(&v).unwrap();
|
||||
let t = es.value_type_unforced(&v);
|
||||
assert!(t == Some(ValueType::Int));
|
||||
|
|
@ -1994,7 +1994,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("cannot coerce") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2017,7 +2017,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("expected an integer but found") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2041,7 +2041,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("cannot coerce") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2063,7 +2063,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("called without required argument") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2086,7 +2086,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("called without required argument") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2111,7 +2111,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("called without required argument") {
|
||||
eprintln!("{}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2179,8 +2179,7 @@ mod tests {
|
|||
for derivation in derivations {
|
||||
assert!(store_contents
|
||||
.iter()
|
||||
.find(|f| f.as_encoded_bytes().ends_with(derivation))
|
||||
.is_some());
|
||||
.any(|f| f.as_encoded_bytes().ends_with(derivation)));
|
||||
}
|
||||
assert!(!empty(read_dir(state.path()).unwrap()));
|
||||
|
||||
|
|
@ -2214,7 +2213,7 @@ mod tests {
|
|||
let a = es.require_int(a)?;
|
||||
let b = es.require_int(b)?;
|
||||
let c = *bias.lock().unwrap();
|
||||
Ok(es.new_value_int(a + b + c)?)
|
||||
es.new_value_int(a + b + c)
|
||||
}),
|
||||
)
|
||||
.unwrap();
|
||||
|
|
@ -2268,7 +2267,7 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("error with arg [2]") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2284,7 +2283,7 @@ mod tests {
|
|||
let v = es
|
||||
.new_value_thunk(
|
||||
"test_thunk",
|
||||
Box::new(move |es: &mut EvalState| Ok(es.new_value_int(42)?)),
|
||||
Box::new(move |es: &mut EvalState| es.new_value_int(42)),
|
||||
)
|
||||
.unwrap();
|
||||
es.force(&v).unwrap();
|
||||
|
|
@ -2318,11 +2317,11 @@ mod tests {
|
|||
"error message in test case eval_state_primop_anon_call_no_args_lazy",
|
||||
) {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
if !e.to_string().contains("test_thunk") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2345,7 +2344,7 @@ mod tests {
|
|||
Box::new(|es, args| {
|
||||
let a = es.require_int(&args[0])?;
|
||||
let b = es.require_int(&args[1])?;
|
||||
Ok(es.new_value_int(a + b)?)
|
||||
es.new_value_int(a + b)
|
||||
}),
|
||||
)
|
||||
.unwrap();
|
||||
|
|
@ -2385,11 +2384,11 @@ mod tests {
|
|||
Err(e) => {
|
||||
if !e.to_string().contains("The frob unexpectedly fizzled") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
if !e.to_string().contains("frobnicate") {
|
||||
eprintln!("unexpected error message: {}", e);
|
||||
assert!(false);
|
||||
panic!();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,19 @@ use super::Value;
|
|||
use nix_bindings_bindgen_raw as raw;
|
||||
|
||||
/// See [Value::new].
|
||||
///
|
||||
/// # Safety
|
||||
///
|
||||
/// See underlying function.
|
||||
pub unsafe fn raw_value_new(ptr: *mut raw::Value) -> Value {
|
||||
Value::new(ptr)
|
||||
}
|
||||
|
||||
/// See [Value::new_borrowed].
|
||||
///
|
||||
/// # Safety
|
||||
///
|
||||
/// See underlying function.
|
||||
pub unsafe fn raw_value_new_borrowed(ptr: *mut raw::Value) -> Value {
|
||||
Value::new_borrowed(ptr)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,3 +15,6 @@ nix-bindings-bindgen-raw = { path = "../nix-bindings-bindgen-raw" }
|
|||
ctor = "0.2"
|
||||
tempfile = "3.10"
|
||||
cstr = "0.2"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
|||
|
|
@ -18,3 +18,6 @@ lazy_static = "1.4"
|
|||
ctor = "0.2"
|
||||
tempfile = "3.10"
|
||||
cstr = "0.2"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ impl FlakeReference {
|
|||
}?;
|
||||
let ptr = NonNull::new(ptr)
|
||||
.context("flake_reference_and_fragment_from_string unexpectedly returned null")?;
|
||||
Ok((FlakeReference { ptr: ptr }, r?))
|
||||
Ok((FlakeReference { ptr }, r?))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -293,7 +293,7 @@ mod tests {
|
|||
|
||||
let b = eval_state.require_bool(&v).unwrap();
|
||||
|
||||
assert_eq!(b, true);
|
||||
assert!(b);
|
||||
|
||||
drop(gc_registration);
|
||||
}
|
||||
|
|
@ -353,7 +353,7 @@ mod tests {
|
|||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
|
||||
assert_eq!(hello, "potato");
|
||||
|
|
@ -394,7 +394,7 @@ mod tests {
|
|||
|
||||
// a
|
||||
std::fs::write(
|
||||
&tmp_dir.path().join("a/flake.nix"),
|
||||
tmp_dir.path().join("a/flake.nix"),
|
||||
r#"
|
||||
{
|
||||
inputs.b.url = "@flake_dir_b@";
|
||||
|
|
@ -409,7 +409,7 @@ mod tests {
|
|||
|
||||
// b
|
||||
std::fs::write(
|
||||
&tmp_dir.path().join("b/flake.nix"),
|
||||
tmp_dir.path().join("b/flake.nix"),
|
||||
r#"
|
||||
{
|
||||
outputs = { ... }: {
|
||||
|
|
@ -422,7 +422,7 @@ mod tests {
|
|||
|
||||
// c
|
||||
std::fs::write(
|
||||
&tmp_dir.path().join("c/flake.nix"),
|
||||
tmp_dir.path().join("c/flake.nix"),
|
||||
r#"
|
||||
{
|
||||
outputs = { ... }: {
|
||||
|
|
@ -486,7 +486,7 @@ mod tests {
|
|||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
|
||||
assert_eq!(hello, "BOB");
|
||||
|
|
@ -527,7 +527,7 @@ mod tests {
|
|||
let outputs = locked_flake
|
||||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
assert_eq!(hello, "BOB");
|
||||
|
||||
|
|
@ -547,7 +547,7 @@ mod tests {
|
|||
let outputs = locked_flake
|
||||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
assert_eq!(hello, "BOB");
|
||||
|
||||
|
|
@ -581,7 +581,7 @@ mod tests {
|
|||
let outputs = locked_flake
|
||||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
assert_eq!(hello, "Claire");
|
||||
|
||||
|
|
@ -604,7 +604,7 @@ mod tests {
|
|||
let outputs = locked_flake
|
||||
.outputs(&flake_settings, &mut eval_state)
|
||||
.unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, &"hello").unwrap();
|
||||
let hello = eval_state.require_attrs_select(&outputs, "hello").unwrap();
|
||||
let hello = eval_state.require_string(&hello).unwrap();
|
||||
assert_eq!(hello, "BOB");
|
||||
|
||||
|
|
|
|||
|
|
@ -22,3 +22,6 @@ tempfile = "3.10"
|
|||
pkg-config = "0.3"
|
||||
# Needed for version parsing in build.rs
|
||||
nix-bindings-util = { path = "../nix-bindings-util" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
|||
|
|
@ -514,7 +514,7 @@ mod tests {
|
|||
#[test]
|
||||
fn parse_store_path_fail() {
|
||||
let mut store = crate::store::Store::open(Some("dummy://"), []).unwrap();
|
||||
let store_path_string = format!("bash-interactive-5.2p26");
|
||||
let store_path_string = "bash-interactive-5.2p26".to_string();
|
||||
let r = store.parse_store_path(store_path_string.as_str());
|
||||
match r {
|
||||
Err(e) => {
|
||||
|
|
|
|||
|
|
@ -11,3 +11,6 @@ path = "src/lib.rs"
|
|||
anyhow = "1.0"
|
||||
nix-bindings-bindgen-raw = { path = "../nix-bindings-bindgen-raw" }
|
||||
ctor = "0.2"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
use anyhow::{bail, Result};
|
||||
use nix_bindings_bindgen_raw as raw;
|
||||
use std::os::raw::c_char;
|
||||
use std::ptr::null_mut;
|
||||
use std::ptr::NonNull;
|
||||
|
||||
|
|
@ -11,6 +10,12 @@ pub struct Context {
|
|||
inner: NonNull<raw::c_context>,
|
||||
}
|
||||
|
||||
impl Default for Context {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
impl Context {
|
||||
pub fn new() -> Self {
|
||||
let ctx = unsafe { raw::c_context_create() };
|
||||
|
|
@ -48,11 +53,7 @@ impl Context {
|
|||
|
||||
pub fn clear(&mut self) {
|
||||
unsafe {
|
||||
raw::set_err_msg(
|
||||
self.inner.as_ptr(),
|
||||
raw::err_NIX_OK,
|
||||
b"\0".as_ptr() as *const c_char,
|
||||
);
|
||||
raw::set_err_msg(self.inner.as_ptr(), raw::err_NIX_OK, c"".as_ptr());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -143,8 +144,8 @@ mod tests {
|
|||
unsafe {
|
||||
raw::set_err_msg(
|
||||
ctx_ptr,
|
||||
raw::err_NIX_ERR_UNKNOWN.try_into().unwrap(),
|
||||
b"dummy error message\0".as_ptr() as *const std::os::raw::c_char,
|
||||
raw::err_NIX_ERR_UNKNOWN,
|
||||
c"dummy error message".as_ptr(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ pub fn parse_version(version_str: &str) -> (u32, u32, i32) {
|
|||
let parts = version_str.split('.').collect::<Vec<&str>>();
|
||||
let major = parts[0].parse::<u32>().unwrap();
|
||||
let minor = parts[1].parse::<u32>().unwrap();
|
||||
let patch = if parts.get(2).map_or(false, |s| s.contains("pre")) {
|
||||
let patch = if parts.get(2).is_some_and(|s| s.contains("pre")) {
|
||||
-1i32
|
||||
} else {
|
||||
parts
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue