Skip to content

fix: lazy object comprehension #440

fix: lazy object comprehension

fix: lazy object comprehension #440

GitHub Actions / clippy succeeded Jan 16, 2024 in 1s

clippy

22 warnings

Details

Results

Message level Amount
Internal compiler error 0
Error 0
Warning 22
Note 0
Help 0

Versions

  • rustc 1.75.0-nightly (2f1bd0729 2023-10-27)
  • cargo 1.75.0-nightly (df3509237 2023-10-24)
  • clippy 0.1.75 (2f1bd07 2023-10-27)

Annotations

Check warning on line 50 in crates/jrsonnet-stdlib/src/misc.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

redundant closure

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

Check warning on line 42 in crates/jrsonnet-stdlib/src/encoding.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

question mark operator is useless here

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

Check warning on line 93 in crates/jrsonnet-evaluator/src/typed/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

matching over `()` is more explicit

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

Check warning on line 470 in crates/jrsonnet-evaluator/src/typed/conversions.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`

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 ~               }
    |

Check warning on line 251 in crates/jrsonnet-evaluator/src/stdlib/format.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

matching over `()` is more explicit

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

Check warning on line 637 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

redundant clone

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

Check warning on line 498 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

redundant clone

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

Check warning on line 477 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

question mark operator is useless here

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)]`

Check warning on line 398 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

use of `unwrap_or` followed by a function call

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)]`

Check warning on line 350 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

consider adding a `;` to the last statement for consistent formatting

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)]`

Check warning on line 176 in crates/jrsonnet-evaluator/src/obj.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

manual `Debug` impl does not include all fields

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)]`

Check warning on line 306 in crates/jrsonnet-evaluator/src/manifest.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this function has too many lines (118/100)

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)]`

Check warning on line 167 in crates/jrsonnet-evaluator/src/integrations/serde.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unnecessary `!=` operation

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)]`

Check warning on line 90 in crates/jrsonnet-evaluator/src/function/builtin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

redundant clone

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)]`

Check warning on line 33 in crates/jrsonnet-evaluator/src/function/builtin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

use Option::map_or instead of an if let/else

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)]`

Check warning on line 9 in crates/jrsonnet-evaluator/src/function/builtin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

item in documentation is missing backticks

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
  |                                             ~~~~~~~~~~~~~~

Check warning on line 9 in crates/jrsonnet-evaluator/src/function/builtin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

item in documentation is missing backticks

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
  |                      ~~~~~~

Check warning on line 92 in crates/jrsonnet-evaluator/src/evaluate/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

accessing first element with `specs.get(0)`

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)]`

Check warning on line 11 in crates/jrsonnet-evaluator/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

pub(crate) import inside private module

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)]`

Check warning on line 511 in crates/jrsonnet-evaluator/src/arr/spec.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

matching over `()` is more explicit

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

Check warning on line 464 in crates/jrsonnet-evaluator/src/arr/spec.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

matching over `()` is more explicit

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)]`

Check warning on line 375 in crates/jrsonnet-evaluator/src/arr/spec.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this bound is already specified as the supertrait of `ExactSizeIterator`

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 {
    |