difftreelog
style fix clippy warnings
in: master
11 files changed
crates/jrsonnet-evaluator/src/dynamic.rsdiffbeforeafterboth1use std::cell::OnceCell;23use jrsonnet_gcmodule::{Cc, Trace};45use crate::{error::ErrorKind::InfiniteRecursionDetected, throw, val::ThunkValue, Result, Thunk};67// TODO: Replace with OnceCell once in std8#[derive(Clone, Trace)]9pub struct Pending<V: Trace + 'static>(pub Cc<OnceCell<V>>);10impl<T: Trace + 'static> Pending<T> {11 pub fn new() -> Self {12 Self(Cc::new(OnceCell::new()))13 }14 pub fn new_filled(v: T) -> Self {15 let cell = OnceCell::new();16 let _ = cell.set(v);17 Self(Cc::new(cell))18 }19 /// # Panics20 /// If wrapper is filled already21 pub fn fill(self, value: T) {22 self.023 .set(value)24 .map_err(|_| ())25 .expect("wrapper is filled already")26 }27}28impl<T: Clone + Trace + 'static> Pending<T> {29 /// # Panics30 /// If wrapper is not yet filled31 pub fn unwrap(&self) -> T {32 self.0.get().cloned().expect("pending was not filled")33 }34 pub fn try_get(&self) -> Option<T> {35 self.0.get().cloned()36 }37}3839impl<T: Trace + Clone> ThunkValue for Pending<T> {40 type Output = T;4142 fn get(self: Box<Self>) -> Result<Self::Output> {43 let Some(value) = self.0.get() else {44 throw!(InfiniteRecursionDetected);45 };46 Ok(value.clone())47 }48}4950impl<T: Trace + 'static> Default for Pending<T> {51 fn default() -> Self {52 Self::new()53 }54}5556impl<T: Trace + Clone> Into<Thunk<T>> for Pending<T> {57 fn into(self) -> Thunk<T> {58 Thunk::new(self)59 }60}crates/jrsonnet-evaluator/src/evaluate/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/evaluate/mod.rs
+++ b/crates/jrsonnet-evaluator/src/evaluate/mod.rs
@@ -294,7 +294,7 @@
// We have single context for all fields, so we can cache binds
let uctx = CachedUnbound::new(evaluate_object_locals(fctx.clone(), locals));
- for member in members.iter() {
+ for member in members {
match member {
Member::Field(field) => {
evaluate_field_member(&mut builder, ctx.clone(), uctx.clone(), field)?;
crates/jrsonnet-evaluator/src/function/arglike.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/function/arglike.rs
+++ b/crates/jrsonnet-evaluator/src/function/arglike.rs
@@ -210,14 +210,14 @@
tailstrict: bool,
handler: &mut dyn FnMut(&IStr, Thunk<Val>) -> Result<()>,
) -> Result<()> {
- for (name, value) in self.iter() {
+ for (name, value) in self {
handler(name, value.evaluate_arg(ctx.clone(), tailstrict)?)?;
}
Ok(())
}
fn named_names(&self, handler: &mut dyn FnMut(&IStr)) {
- for (name, _) in self.iter() {
+ for (name, _) in self {
handler(name);
}
}
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/lib.rs
+++ b/crates/jrsonnet-evaluator/src/lib.rs
@@ -39,6 +39,8 @@
clippy::type_repetition_in_bounds,
// ci is being run with nightly, but library should work on stable
clippy::missing_const_for_fn,
+ // too many false-positives with .expect() calls
+ clippy::missing_panics_doc,
)]
// For jrsonnet-macros
crates/jrsonnet-evaluator/src/map.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/map.rs
+++ b/crates/jrsonnet-evaluator/src/map.rs
@@ -15,7 +15,7 @@
impl LayeredHashMap {
pub fn iter_keys(self, mut handler: impl FnMut(IStr)) {
- for (k, _) in self.0.current.iter() {
+ for (k, _) in &*self.0.current {
handler(k.clone());
}
if let Some(parent) = self.0.parent.clone() {
crates/jrsonnet-evaluator/src/typed/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/typed/mod.rs
+++ b/crates/jrsonnet-evaluator/src/typed/mod.rs
@@ -206,7 +206,7 @@
},
Self::ObjectRef(elems) => match value {
Val::Obj(obj) => {
- for (k, v) in elems.iter() {
+ for (k, v) in *elems {
if let Some(got_v) = obj.get((*k).into())? {
push_type_description(
|| format!("property {k}"),
@@ -225,7 +225,7 @@
},
Self::Union(types) => {
let mut errors = Vec::new();
- for ty in types.iter() {
+ for ty in types {
match ty.check(value) {
Ok(()) => {
return Ok(());
@@ -240,7 +240,7 @@
}
Self::UnionRef(types) => {
let mut errors = Vec::new();
- for ty in types.iter() {
+ for ty in *types {
match ty.check(value) {
Ok(()) => {
return Ok(());
@@ -254,13 +254,13 @@
Err(TypeError::UnionFailed(self.clone(), TypeLocErrorList(errors)).into())
}
Self::Sum(types) => {
- for ty in types.iter() {
+ for ty in types {
ty.check(value)?;
}
Ok(())
}
Self::SumRef(types) => {
- for ty in types.iter() {
+ for ty in *types {
ty.check(value)?;
}
Ok(())
crates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/val.rs
+++ b/crates/jrsonnet-evaluator/src/val.rs
@@ -346,15 +346,14 @@
impl Eq for StrValue {}
impl PartialOrd for StrValue {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
- let a = self.clone().into_flat();
- let b = other.clone().into_flat();
- Some(a.cmp(&b))
+ Some(self.cmp(other))
}
}
impl Ord for StrValue {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
- self.partial_cmp(other)
- .expect("partial_cmp always returns Some")
+ let a = self.clone().into_flat();
+ let b = other.clone().into_flat();
+ a.cmp(&b)
}
}
crates/jrsonnet-interner/src/inner.rsdiffbeforeafterboth--- a/crates/jrsonnet-interner/src/inner.rs
+++ b/crates/jrsonnet-interner/src/inner.rs
@@ -217,7 +217,7 @@
impl Eq for Inner {}
impl PartialOrd for Inner {
fn partial_cmp(&self, other: &Self) -> Option<cmp::Ordering> {
- self.as_slice().partial_cmp(other.as_slice())
+ Some(self.cmp(other))
}
}
impl Ord for Inner {
crates/jrsonnet-macros/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-macros/src/lib.rs
+++ b/crates/jrsonnet-macros/src/lib.rs
@@ -591,7 +591,7 @@
.map(TypedField::parse)
.collect::<Result<Vec<_>>>()?;
- let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl( );
+ let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
let typed = {
let fields = fields
crates/jrsonnet-stdlib/src/sort.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/sort.rs
+++ b/crates/jrsonnet-stdlib/src/sort.rs
@@ -26,13 +26,13 @@
struct NonNaNf64(f64);
impl PartialOrd for NonNaNf64 {
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
- self.0.partial_cmp(&other.0)
+ Some(self.cmp(other))
}
}
impl Eq for NonNaNf64 {}
impl Ord for NonNaNf64 {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
- self.partial_cmp(other).expect("non nan")
+ self.0.partial_cmp(&other.0).expect("non nan")
}
}
flake.nixdiffbeforeafterboth--- a/flake.nix
+++ b/flake.nix
@@ -17,7 +17,7 @@
overlays = [ rust-overlay.overlays.default ];
};
rust = ((pkgs.rustChannelOf { date = "2023-07-23"; channel = "nightly"; }).default.override {
- extensions = [ "rust-src" "miri" "rust-analyzer" ];
+ extensions = [ "rust-src" "miri" "rust-analyzer" "clippy" ];
});
in
rec {