Skip to content

fix: lazy object comprehension #440

fix: lazy object comprehension

fix: lazy object comprehension #440

Triggered via push January 16, 2024 08:07
Status Failure
Total duration 1m 14s
Artifacts

release.yml

on: push
cargo-release
0s
cargo-release
Matrix: github-release
Fit to window
Zoom out
Zoom in

Annotations

1 error and 59 warnings
Test Suite
The process '/home/runner/.cargo/bin/cargo' failed with exit code 101
redundant closure: crates/jrsonnet-stdlib/src/misc.rs#L50
warning: redundant closure --> crates/jrsonnet-stdlib/src/misc.rs:50:22 | 50 | .map_or(Val::Null, |v| Val::Func(v)) | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `Val::Func` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
question mark operator is useless here: crates/jrsonnet-stdlib/src/encoding.rs#L42
warning: question mark operator is useless here --> crates/jrsonnet-stdlib/src/encoding.rs:42:2 | 42 | Ok(String::from_utf8(bytes).map_err(|_| runtime_error!("bad utf8"))?) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `String::from_utf8(bytes).map_err(|_| runtime_error!("bad utf8"))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark = note: `#[warn(clippy::needless_question_mark)]` on by default
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/typed/mod.rs#L93
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/typed/mod.rs:93:6 | 93 | Ok(_) => Ok(()), | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`: crates/jrsonnet-evaluator/src/typed/conversions.rs#L452
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` --> crates/jrsonnet-evaluator/src/typed/conversions.rs:452:3 | 452 | / match &value { 453 | | Val::Arr(a) => { 454 | | if let Some(bytes) = a.as_any().downcast_ref::<BytesArray>() { 455 | | return Ok(bytes.0.as_slice().into()); ... | 469 | | } 470 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else = note: `#[warn(clippy::single_match_else)]` implied by `#[warn(clippy::pedantic)]` help: try | 452 ~ if let Val::Arr(a) = &value { 453 ~ if let Some(bytes) = a.as_any().downcast_ref::<BytesArray>() { 454 ~ return Ok(bytes.0.as_slice().into()); 455 ~ }; 456 ~ <Self as Typed>::TYPE.check(&value)?; 457 ~ // Any::downcast_ref::<ByteArray>(&a); 458 ~ let mut out = Vec::with_capacity(a.len()); 459 ~ for e in a.iter() { 460 ~ let r = e?; 461 ~ out.push(u8::from_untyped(r)?); 462 ~ } 463 ~ Ok(out.as_slice().into()) 464 ~ } else { 465 ~ <Self as Typed>::TYPE.check(&value)?; 466 ~ unreachable!() 467 ~ } |
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/stdlib/format.rs#L251
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/stdlib/format.rs:251:7 | 251 | let (_, str) = try_parse_length_modifier(str)?; | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
redundant clone: crates/jrsonnet-evaluator/src/obj.rs#L637
warning: redundant clone --> crates/jrsonnet-evaluator/src/obj.rs:637:31 | 637 | let entry = out.entry(name.clone()); | ^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/obj.rs:637:27 | 637 | let entry = out.entry(name.clone()); | ^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
redundant clone: crates/jrsonnet-evaluator/src/obj.rs#L498
warning: redundant clone --> crates/jrsonnet-evaluator/src/obj.rs:498:31 | 498 | let entry = out.entry(name.clone()); | ^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/obj.rs:498:27 | 498 | let entry = out.entry(name.clone()); | ^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
question mark operator is useless here: crates/jrsonnet-evaluator/src/obj.rs#L477
warning: question mark operator is useless here --> crates/jrsonnet-evaluator/src/obj.rs:477:5 | 477 | Ok(self.obj.get_or_bail(self.key)?) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `self.obj.get_or_bail(self.key)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark = note: `#[warn(clippy::needless_question_mark)]` implied by `#[warn(clippy::all)]`
use of `unwrap_or` followed by a function call: crates/jrsonnet-evaluator/src/obj.rs#L398
warning: use of `unwrap_or` followed by a function call --> crates/jrsonnet-evaluator/src/obj.rs:398:35 | 398 | self.get_for(key, self.0.this().unwrap_or(self.clone())) | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| self.clone())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call = note: `#[warn(clippy::or_fun_call)]` implied by `#[warn(clippy::nursery)]`
consider adding a `;` to the last statement for consistent formatting: crates/jrsonnet-evaluator/src/obj.rs#L350
warning: consider adding a `;` to the last statement for consistent formatting --> crates/jrsonnet-evaluator/src/obj.rs:350:4 | 350 | member = member.add() | ^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `member = member.add();` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]`
manual `Debug` impl does not include all fields: crates/jrsonnet-evaluator/src/obj.rs#L166
warning: manual `Debug` impl does not include all fields --> crates/jrsonnet-evaluator/src/obj.rs:166:1 | 166 | / impl Debug for OopObject { 167 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 168 | | f.debug_struct("OopObject") 169 | | .field("sup", &self.sup) ... | 175 | | } 176 | | } | |_^ | note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:161:2 | 161 | assertions: Cc<Vec<TraceBox<dyn ObjectAssertion>>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:162:2 | 162 | assertions_ran: RefCell<GcHashSet<ObjValue>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:164:2 | 164 | value_cache: RefCell<GcHashMap<(IStr, Option<WeakObjValue>), CacheValue>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: consider including all fields in this `Debug` impl = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug = note: `#[warn(clippy::missing_fields_in_debug)]` implied by `#[warn(clippy::pedantic)]`
this function has too many lines (118/100): crates/jrsonnet-evaluator/src/manifest.rs#L178
warning: this function has too many lines (118/100) --> crates/jrsonnet-evaluator/src/manifest.rs:178:1 | 178 | / fn manifest_json_ex_buf( 179 | | val: &Val, 180 | | buf: &mut String, 181 | | cur_padding: &mut String, ... | 305 | | Ok(()) 306 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines = note: `#[warn(clippy::too_many_lines)]` implied by `#[warn(clippy::pedantic)]`
unnecessary `!=` operation: crates/jrsonnet-evaluator/src/integrations/serde.rs#L162
warning: unnecessary `!=` operation --> crates/jrsonnet-evaluator/src/integrations/serde.rs:162:5 | 162 | / if n.fract() != 0.0 { 163 | | serializer.serialize_f64(*n) 164 | | } else { 165 | | let n = *n as i64; 166 | | serializer.serialize_i64(n) 167 | | } | |_________________^ | = help: change to `==` and swap the blocks of the `if`/`else` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else = note: `#[warn(clippy::if_not_else)]` implied by `#[warn(clippy::pedantic)]`
redundant clone: crates/jrsonnet-evaluator/src/function/builtin.rs#L90
warning: redundant clone --> crates/jrsonnet-evaluator/src/function/builtin.rs:90:36 | 90 | name: ParamName::new_dynamic(n.to_string()), | ^^^^^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/function/builtin.rs:90:35 | 90 | name: ParamName::new_dynamic(n.to_string()), | ^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone = note: `#[warn(clippy::redundant_clone)]` implied by `#[warn(clippy::nursery)]`
use Option::map_or instead of an if let/else: crates/jrsonnet-evaluator/src/function/builtin.rs#L30
warning: use Option::map_or instead of an if let/else --> crates/jrsonnet-evaluator/src/function/builtin.rs:30:3 | 30 | / match &self.0 { 31 | | Some(s) => s.as_bytes() == other.as_bytes(), 32 | | None => false, 33 | | } | |_________^ help: try: `self.0.as_ref().map_or(false, |s| s.as_bytes() == other.as_bytes())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else = note: `#[warn(clippy::option_if_let_else)]` implied by `#[warn(clippy::nursery)]`
item in documentation is missing backticks: crates/jrsonnet-evaluator/src/function/builtin.rs#L9
warning: item in documentation is missing backticks --> crates/jrsonnet-evaluator/src/function/builtin.rs:9:45 | 9 | /// Can't have str | IStr, because constant BuiltinParam causes | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 9 | /// Can't have str | IStr, because constant `BuiltinParam` causes | ~~~~~~~~~~~~~~
item in documentation is missing backticks: crates/jrsonnet-evaluator/src/function/builtin.rs#L9
warning: item in documentation is missing backticks --> crates/jrsonnet-evaluator/src/function/builtin.rs:9:22 | 9 | /// Can't have str | IStr, because constant BuiltinParam causes | ^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown = note: `#[warn(clippy::doc_markdown)]` implied by `#[warn(clippy::pedantic)]` help: try | 9 | /// Can't have str | `IStr`, because constant BuiltinParam causes | ~~~~~~
accessing first element with `specs.get(0)`: crates/jrsonnet-evaluator/src/evaluate/mod.rs#L92
warning: accessing first element with `specs.get(0)` --> crates/jrsonnet-evaluator/src/evaluate/mod.rs:92:8 | 92 | match specs.get(0) { | ^^^^^^^^^^^^ help: try: `specs.first()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:5:2 | 5 | clippy::all, | ^^^^^^^^^^^ = note: `#[warn(clippy::get_first)]` implied by `#[warn(clippy::all)]`
pub(crate) import inside private module: crates/jrsonnet-evaluator/src/lib.rs#L1
warning: pub(crate) import inside private module --> crates/jrsonnet-evaluator/src/lib.rs:1:1 | 1 | / //! jsonnet interpreter implementation 2 | | #![cfg_attr(feature = "nightly", feature(thread_local, type_alias_impl_trait))] 3 | | #![deny(unsafe_op_in_unsafe_fn)] 4 | | #![warn( ... | 10 | | explicit_outlives_requirements, 11 | | noop_method_call, | |_ | ::: crates/jrsonnet-evaluator/src/arr/mod.rs:11:1 | 11 | pub(crate) use spec::*; | ---------- help: consider using: `pub` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pub_crate = note: `#[warn(clippy::redundant_pub_crate)]` implied by `#[warn(clippy::nursery)]`
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/arr/spec.rs#L511
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/arr/spec.rs:511:24 | 511 | ArrayThunk::Waiting(_) | ArrayThunk::Pending => {} | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/arr/spec.rs#L464
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/arr/spec.rs:464:27 | 464 | let ArrayThunk::Waiting(_) = | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:7:2 | 7 | clippy::pedantic, | ^^^^^^^^^^^^^^^^ = note: `#[warn(clippy::ignored_unit_patterns)]` implied by `#[warn(clippy::pedantic)]`
this bound is already specified as the supertrait of `ExactSizeIterator`: crates/jrsonnet-evaluator/src/arr/spec.rs#L375
warning: this bound is already specified as the supertrait of `ExactSizeIterator` --> crates/jrsonnet-evaluator/src/arr/spec.rs:375:26 | 375 | fn range(&self) -> impl Iterator<Item = i32> + ExactSizeIterator + DoubleEndedIterator { | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:6:2 | 6 | clippy::nursery, | ^^^^^^^^^^^^^^^ = note: `#[warn(clippy::implied_bounds_in_impls)]` implied by `#[warn(clippy::nursery)]` help: try removing this bound | 375 - fn range(&self) -> impl Iterator<Item = i32> + ExactSizeIterator + DoubleEndedIterator { 375 + fn range(&self) -> impl ExactSizeIterator<Item = i32> + DoubleEndedIterator { |
Test Suite
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Test Suite
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test Suite
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test Suite
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test Suite
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test Suite: crates/jrsonnet-rowan-parser/src/marker.rs#L82
variable does not need to be mutable
Test Suite: crates/jrsonnet-rowan-parser/src/marker.rs#L85
variable does not need to be mutable
Test Suite: crates/jrsonnet-rowan-parser/src/marker.rs#L94
variable does not need to be mutable
Test Suite: crates/jrsonnet-rowan-parser/src/marker.rs#L102
variable does not need to be mutable
Test Suite: crates/jrsonnet-rowan-parser/src/parser.rs#L776
variable `had_rest` is assigned to, but never used
Test Suite: crates/jrsonnet-rowan-parser/src/parser.rs#L782
unused variable: `m_err`
Test Suite: crates/jrsonnet-rowan-parser/src/parser.rs#L787
value assigned to `had_rest` is never read
Test Suite: crates/jrsonnet-rowan-parser/src/parser.rs#L807
unused variable: `m_err`
Test Suite: crates/jrsonnet-rowan-parser/src/event.rs#L26
variant `VirtualToken` is never constructed
redundant closure: crates/jrsonnet-stdlib/src/misc.rs#L50
warning: redundant closure --> crates/jrsonnet-stdlib/src/misc.rs:50:22 | 50 | .map_or(Val::Null, |v| Val::Func(v)) | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `Val::Func` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
question mark operator is useless here: crates/jrsonnet-stdlib/src/encoding.rs#L42
warning: question mark operator is useless here --> crates/jrsonnet-stdlib/src/encoding.rs:42:2 | 42 | Ok(String::from_utf8(bytes).map_err(|_| runtime_error!("bad utf8"))?) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `String::from_utf8(bytes).map_err(|_| runtime_error!("bad utf8"))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark = note: `#[warn(clippy::needless_question_mark)]` on by default
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/typed/mod.rs#L93
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/typed/mod.rs:93:6 | 93 | Ok(_) => Ok(()), | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`: crates/jrsonnet-evaluator/src/typed/conversions.rs#L452
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` --> crates/jrsonnet-evaluator/src/typed/conversions.rs:452:3 | 452 | / match &value { 453 | | Val::Arr(a) => { 454 | | if let Some(bytes) = a.as_any().downcast_ref::<BytesArray>() { 455 | | return Ok(bytes.0.as_slice().into()); ... | 469 | | } 470 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else = note: `#[warn(clippy::single_match_else)]` implied by `#[warn(clippy::pedantic)]` help: try | 452 ~ if let Val::Arr(a) = &value { 453 ~ if let Some(bytes) = a.as_any().downcast_ref::<BytesArray>() { 454 ~ return Ok(bytes.0.as_slice().into()); 455 ~ }; 456 ~ <Self as Typed>::TYPE.check(&value)?; 457 ~ // Any::downcast_ref::<ByteArray>(&a); 458 ~ let mut out = Vec::with_capacity(a.len()); 459 ~ for e in a.iter() { 460 ~ let r = e?; 461 ~ out.push(u8::from_untyped(r)?); 462 ~ } 463 ~ Ok(out.as_slice().into()) 464 ~ } else { 465 ~ <Self as Typed>::TYPE.check(&value)?; 466 ~ unreachable!() 467 ~ } |
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/stdlib/format.rs#L251
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/stdlib/format.rs:251:7 | 251 | let (_, str) = try_parse_length_modifier(str)?; | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
redundant clone: crates/jrsonnet-evaluator/src/obj.rs#L637
warning: redundant clone --> crates/jrsonnet-evaluator/src/obj.rs:637:31 | 637 | let entry = out.entry(name.clone()); | ^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/obj.rs:637:27 | 637 | let entry = out.entry(name.clone()); | ^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
redundant clone: crates/jrsonnet-evaluator/src/obj.rs#L498
warning: redundant clone --> crates/jrsonnet-evaluator/src/obj.rs:498:31 | 498 | let entry = out.entry(name.clone()); | ^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/obj.rs:498:27 | 498 | let entry = out.entry(name.clone()); | ^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
question mark operator is useless here: crates/jrsonnet-evaluator/src/obj.rs#L477
warning: question mark operator is useless here --> crates/jrsonnet-evaluator/src/obj.rs:477:5 | 477 | Ok(self.obj.get_or_bail(self.key)?) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `self.obj.get_or_bail(self.key)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark = note: `#[warn(clippy::needless_question_mark)]` implied by `#[warn(clippy::all)]`
use of `unwrap_or` followed by a function call: crates/jrsonnet-evaluator/src/obj.rs#L398
warning: use of `unwrap_or` followed by a function call --> crates/jrsonnet-evaluator/src/obj.rs:398:35 | 398 | self.get_for(key, self.0.this().unwrap_or(self.clone())) | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| self.clone())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call = note: `#[warn(clippy::or_fun_call)]` implied by `#[warn(clippy::nursery)]`
consider adding a `;` to the last statement for consistent formatting: crates/jrsonnet-evaluator/src/obj.rs#L350
warning: consider adding a `;` to the last statement for consistent formatting --> crates/jrsonnet-evaluator/src/obj.rs:350:4 | 350 | member = member.add() | ^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `member = member.add();` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]`
manual `Debug` impl does not include all fields: crates/jrsonnet-evaluator/src/obj.rs#L166
warning: manual `Debug` impl does not include all fields --> crates/jrsonnet-evaluator/src/obj.rs:166:1 | 166 | / impl Debug for OopObject { 167 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 168 | | f.debug_struct("OopObject") 169 | | .field("sup", &self.sup) ... | 175 | | } 176 | | } | |_^ | note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:161:2 | 161 | assertions: Cc<Vec<TraceBox<dyn ObjectAssertion>>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:162:2 | 162 | assertions_ran: RefCell<GcHashSet<ObjValue>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: this field is unused --> crates/jrsonnet-evaluator/src/obj.rs:164:2 | 164 | value_cache: RefCell<GcHashMap<(IStr, Option<WeakObjValue>), CacheValue>>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: consider including all fields in this `Debug` impl = help: consider calling `.finish_non_exhaustive()` if you intend to ignore fields = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_fields_in_debug = note: `#[warn(clippy::missing_fields_in_debug)]` implied by `#[warn(clippy::pedantic)]`
this function has too many lines (118/100): crates/jrsonnet-evaluator/src/manifest.rs#L178
warning: this function has too many lines (118/100) --> crates/jrsonnet-evaluator/src/manifest.rs:178:1 | 178 | / fn manifest_json_ex_buf( 179 | | val: &Val, 180 | | buf: &mut String, 181 | | cur_padding: &mut String, ... | 305 | | Ok(()) 306 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines = note: `#[warn(clippy::too_many_lines)]` implied by `#[warn(clippy::pedantic)]`
unnecessary `!=` operation: crates/jrsonnet-evaluator/src/integrations/serde.rs#L162
warning: unnecessary `!=` operation --> crates/jrsonnet-evaluator/src/integrations/serde.rs:162:5 | 162 | / if n.fract() != 0.0 { 163 | | serializer.serialize_f64(*n) 164 | | } else { 165 | | let n = *n as i64; 166 | | serializer.serialize_i64(n) 167 | | } | |_________________^ | = help: change to `==` and swap the blocks of the `if`/`else` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else = note: `#[warn(clippy::if_not_else)]` implied by `#[warn(clippy::pedantic)]`
redundant clone: crates/jrsonnet-evaluator/src/function/builtin.rs#L90
warning: redundant clone --> crates/jrsonnet-evaluator/src/function/builtin.rs:90:36 | 90 | name: ParamName::new_dynamic(n.to_string()), | ^^^^^^^^^^^^ help: remove this | note: this value is dropped without further use --> crates/jrsonnet-evaluator/src/function/builtin.rs:90:35 | 90 | name: ParamName::new_dynamic(n.to_string()), | ^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone = note: `#[warn(clippy::redundant_clone)]` implied by `#[warn(clippy::nursery)]`
use Option::map_or instead of an if let/else: crates/jrsonnet-evaluator/src/function/builtin.rs#L30
warning: use Option::map_or instead of an if let/else --> crates/jrsonnet-evaluator/src/function/builtin.rs:30:3 | 30 | / match &self.0 { 31 | | Some(s) => s.as_bytes() == other.as_bytes(), 32 | | None => false, 33 | | } | |_________^ help: try: `self.0.as_ref().map_or(false, |s| s.as_bytes() == other.as_bytes())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else = note: `#[warn(clippy::option_if_let_else)]` implied by `#[warn(clippy::nursery)]`
item in documentation is missing backticks: crates/jrsonnet-evaluator/src/function/builtin.rs#L9
warning: item in documentation is missing backticks --> crates/jrsonnet-evaluator/src/function/builtin.rs:9:45 | 9 | /// Can't have str | IStr, because constant BuiltinParam causes | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 9 | /// Can't have str | IStr, because constant `BuiltinParam` causes | ~~~~~~~~~~~~~~
item in documentation is missing backticks: crates/jrsonnet-evaluator/src/function/builtin.rs#L9
warning: item in documentation is missing backticks --> crates/jrsonnet-evaluator/src/function/builtin.rs:9:22 | 9 | /// Can't have str | IStr, because constant BuiltinParam causes | ^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown = note: `#[warn(clippy::doc_markdown)]` implied by `#[warn(clippy::pedantic)]` help: try | 9 | /// Can't have str | `IStr`, because constant BuiltinParam causes | ~~~~~~
accessing first element with `specs.get(0)`: crates/jrsonnet-evaluator/src/evaluate/mod.rs#L92
warning: accessing first element with `specs.get(0)` --> crates/jrsonnet-evaluator/src/evaluate/mod.rs:92:8 | 92 | match specs.get(0) { | ^^^^^^^^^^^^ help: try: `specs.first()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:5:2 | 5 | clippy::all, | ^^^^^^^^^^^ = note: `#[warn(clippy::get_first)]` implied by `#[warn(clippy::all)]`
pub(crate) import inside private module: crates/jrsonnet-evaluator/src/lib.rs#L1
warning: pub(crate) import inside private module --> crates/jrsonnet-evaluator/src/lib.rs:1:1 | 1 | / //! jsonnet interpreter implementation 2 | | #![cfg_attr(feature = "nightly", feature(thread_local, type_alias_impl_trait))] 3 | | #![deny(unsafe_op_in_unsafe_fn)] 4 | | #![warn( ... | 10 | | explicit_outlives_requirements, 11 | | noop_method_call, | |_ | ::: crates/jrsonnet-evaluator/src/arr/mod.rs:11:1 | 11 | pub(crate) use spec::*; | ---------- help: consider using: `pub` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pub_crate = note: `#[warn(clippy::redundant_pub_crate)]` implied by `#[warn(clippy::nursery)]`
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/arr/spec.rs#L511
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/arr/spec.rs:511:24 | 511 | ArrayThunk::Waiting(_) | ArrayThunk::Pending => {} | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
matching over `()` is more explicit: crates/jrsonnet-evaluator/src/arr/spec.rs#L464
warning: matching over `()` is more explicit --> crates/jrsonnet-evaluator/src/arr/spec.rs:464:27 | 464 | let ArrayThunk::Waiting(_) = | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:7:2 | 7 | clippy::pedantic, | ^^^^^^^^^^^^^^^^ = note: `#[warn(clippy::ignored_unit_patterns)]` implied by `#[warn(clippy::pedantic)]`
this bound is already specified as the supertrait of `ExactSizeIterator`: crates/jrsonnet-evaluator/src/arr/spec.rs#L375
warning: this bound is already specified as the supertrait of `ExactSizeIterator` --> crates/jrsonnet-evaluator/src/arr/spec.rs:375:26 | 375 | fn range(&self) -> impl Iterator<Item = i32> + ExactSizeIterator + DoubleEndedIterator { | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls note: the lint level is defined here --> crates/jrsonnet-evaluator/src/lib.rs:6:2 | 6 | clippy::nursery, | ^^^^^^^^^^^^^^^ = note: `#[warn(clippy::implied_bounds_in_impls)]` implied by `#[warn(clippy::nursery)]` help: try removing this bound | 375 - fn range(&self) -> impl Iterator<Item = i32> + ExactSizeIterator + DoubleEndedIterator { 375 + fn range(&self) -> impl ExactSizeIterator<Item = i32> + DoubleEndedIterator { |