WIP #263
Annotations
94 warnings
this expression creates a reference which is immediately dereferenced by the compiler:
halo2_proofs/src/plonk/prover.rs#L390
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> halo2_proofs/src/plonk/prover.rs:390:29
|
390 | ... &domain,
| ^^^^^^^ help: change this to: `domain`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `-W clippy::needless-borrow` implied by `-W clippy::all`
|
replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`:
halo2_proofs/src/plonk/prover.rs#L369
warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`
--> halo2_proofs/src/plonk/prover.rs:369:22
|
369 | let advice = std::mem::replace(&mut self.advice, Vec::new());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.advice)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
|
replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`:
halo2_proofs/src/plonk/prover.rs#L368
warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`
--> halo2_proofs/src/plonk/prover.rs:368:24
|
368 | let instance = std::mem::replace(&mut self.instance, Vec::new());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.instance)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
= note: `-W clippy::mem-replace-with-default` implied by `-W clippy::all`
|
this `if` has identical blocks:
halo2_proofs/src/plonk/prover.rs#L268
warning: this `if` has identical blocks
--> halo2_proofs/src/plonk/prover.rs:268:55
|
268 | if column_indices.contains(&column_index) {
| _______________________________________________________^
269 | | // TODO: Check that column_index in witness is Some
270 | | // TODO: Check that the column length is `params.n()`
271 | | } else {
| |_____________^
|
note: same as this
--> halo2_proofs/src/plonk/prover.rs:271:20
|
271 | } else {
| ____________________^
272 | | // TODO: Check that column_index in witness is None
273 | | };
| |_____________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else
= note: `-W clippy::if-same-then-else` implied by `-W clippy::all`
|
unnecessary `if let` since only the `Some` variant of the iterator element is used:
halo2_proofs/src/plonk/prover.rs#L253
warning: unnecessary `if let` since only the `Some` variant of the iterator element is used
--> halo2_proofs/src/plonk/prover.rs:253:13
|
253 | for witness_column in witness_circuit {
| ^ --------------- help: try: `witness_circuit.iter().flatten()`
| _____________|
| |
254 | | if let Some(witness_column) = witness_column {
255 | | if witness_column.len() != self.params.n() as usize {
256 | | return Err(Error::Other(format!(
... |
262 | | }
263 | | }
| |_____________^
|
help: ...and remove the `if let` statement in the for loop
--> halo2_proofs/src/plonk/prover.rs:254:17
|
254 | / if let Some(witness_column) = witness_column {
255 | | if witness_column.len() != self.params.n() as usize {
256 | | return Err(Error::Other(format!(
257 | | "unexpected length in witness_column. Got {}, expected {}",
... |
261 | | }
262 | | }
| |_________________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten
= note: `-W clippy::manual-flatten` implied by `-W clippy::all`
|
useless use of `format!`:
halo2_proofs/src/plonk/prover.rs#L243
warning: useless use of `format!`
--> halo2_proofs/src/plonk/prover.rs:243:37
|
243 | return Err(Error::Other(format!("witness.len() != advice.len()")));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"witness.len() != advice.len()".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
= note: `-W clippy::useless-format` implied by `-W clippy::all`
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/prover.rs#L203
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/prover.rs:203:18
|
203 | witness: Vec<Vec<Option<Polynomial<Assigned<Scheme::Scalar>, LagrangeCoeff>>>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
|
returning the result of a `let` binding from a block:
halo2_proofs/src/plonk/circuit.rs#L2197
warning: returning the result of a `let` binding from a block
--> halo2_proofs/src/plonk/circuit.rs:2197:9
|
2190 | / let queries = Queries {
2191 | | advice: queries.advice.into_iter().collect(),
2192 | | instance: queries.instance.into_iter().collect(),
2193 | | fixed: queries.fixed.into_iter().collect(),
2194 | | num_advice_queries,
2195 | | };
| |__________- unnecessary `let` binding
2196 | // println!("DBG collected queries\n{:#?}", queries);
2197 | queries
| ^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
= note: `-W clippy::let-and-return` implied by `-W clippy::all`
help: return the expression directly
|
2190 ~
2191 | // println!("DBG collected queries\n{:#?}", queries);
2192 ~ Queries {
2193 + advice: queries.advice.into_iter().collect(),
2194 + instance: queries.instance.into_iter().collect(),
2195 + fixed: queries.fixed.into_iter().collect(),
2196 + num_advice_queries,
2197 + }
|
|
casting to the same type is unnecessary (`usize` -> `usize`):
halo2_proofs/src/plonk/circuit.rs#L1984
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> halo2_proofs/src/plonk/circuit.rs:1984:25
|
1984 | usable_rows: 0..n as usize - (cs.blinding_factors() + 1),
| ^^^^^^^^^^ help: try: `n`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
|
casting to the same type is unnecessary (`usize` -> `usize`):
halo2_proofs/src/plonk/circuit.rs#L1983
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> halo2_proofs/src/plonk/circuit.rs:1983:37
|
1983 | selectors: vec![vec![false; n as usize]; cs.num_selectors],
| ^^^^^^^^^^ help: try: `n`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
= note: `-W clippy::unnecessary-cast` implied by `-W clippy::all`
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/circuit.rs#L1959
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/circuit.rs:1959:6
|
1959 | ) -> Result<
| ______^
1960 | | (
1961 | | CompiledCircuitV2<F>,
1962 | | ConcreteCircuit::Config,
... |
1965 | | Error,
1966 | | > {
| |_^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/circuit.rs#L1887
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/circuit.rs:1887:10
|
1887 | ) -> Result<Vec<Option<Polynomial<Assigned<F>, LagrangeCoeff>>>, Error> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `-W clippy::type-complexity` implied by `-W clippy::all`
|
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true:
halo2_proofs/src/plonk/circuit.rs#L892
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true
--> halo2_proofs/src/plonk/circuit.rs:892:1
|
892 | impl<F> Into<ExpressionMid<F>> for Expression<F> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: replace the `Into` implentation with `From<plonk::circuit::Expression<F>>`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into
= note: `-W clippy::from-over-into` implied by `-W clippy::all`
|
fields `name`, `input_expressions` and `shuffle_expressions` are never read:
halo2_proofs/src/plonk/shuffle.rs#L10
warning: fields `name`, `input_expressions` and `shuffle_expressions` are never read
--> halo2_proofs/src/plonk/shuffle.rs:10:16
|
9 | pub struct ArgumentV2<F: Field> {
| ---------- fields in this struct
10 | pub(crate) name: String,
| ^^^^
11 | pub(crate) input_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
12 | pub(crate) shuffle_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^^^
|
= note: `ArgumentV2` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
|
fields `name`, `input_expressions` and `table_expressions` are never read:
halo2_proofs/src/plonk/lookup.rs#L10
warning: fields `name`, `input_expressions` and `table_expressions` are never read
--> halo2_proofs/src/plonk/lookup.rs:10:16
|
9 | pub struct ArgumentV2<F: Field> {
| ---------- fields in this struct
10 | pub(crate) name: String,
| ^^^^
11 | pub(crate) input_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
12 | pub(crate) table_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
|
= note: `ArgumentV2` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
|
associated function `collect_queries` is never used:
halo2_proofs/src/plonk/circuit.rs#L2141
warning: associated function `collect_queries` is never used
--> halo2_proofs/src/plonk/circuit.rs:2141:19
|
2141 | pub(crate) fn collect_queries(&self) -> Queries {
| ^^^^^^^^^^^^^^^
|
associated function `phases` is never used:
halo2_proofs/src/plonk/circuit.rs#L2131
warning: associated function `phases` is never used
--> halo2_proofs/src/plonk/circuit.rs:2131:19
|
2131 | pub(crate) fn phases(&self) -> Vec<u8> {
| ^^^^^^
|
multiple fields are never read:
halo2_proofs/src/plonk/circuit.rs#L1803
warning: multiple fields are never read
--> halo2_proofs/src/plonk/circuit.rs:1803:16
|
1802 | pub struct ConstraintSystemV2Backend<F: Field> {
| ------------------------- fields in this struct
1803 | pub(crate) num_fixed_columns: usize,
| ^^^^^^^^^^^^^^^^^
1804 | pub(crate) num_advice_columns: usize,
| ^^^^^^^^^^^^^^^^^^
1805 | pub(crate) num_instance_columns: usize,
| ^^^^^^^^^^^^^^^^^^^^
1806 | // pub(crate) num_selectors: usize,
1807 | pub(crate) num_challenges: usize,
| ^^^^^^^^^^^^^^
...
1810 | pub(crate) unblinded_advice_columns: Vec<usize>,
| ^^^^^^^^^^^^^^^^^^^^^^^^
...
1813 | pub(crate) advice_column_phase: Vec<u8>,
| ^^^^^^^^^^^^^^^^^^^
1814 | /// Contains the phase for each challenge. Should have same length as num_challenges.
1815 | pub(crate) challenge_phase: Vec<u8>,
| ^^^^^^^^^^^^^^^
...
1821 | pub(crate) gates: Vec<GateV2Backend<F>>,
| ^^^^^
...
1831 | pub(crate) lookups: Vec<lookup::ArgumentV2<F>>,
| ^^^^^^^
...
1835 | pub(crate) shuffles: Vec<shuffle::ArgumentV2<F>>,
| ^^^^^^^^
...
1838 | pub(crate) general_column_annotations: HashMap<metadata::Column, String>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `ConstraintSystemV2Backend` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
|
function `collect_queries` is never used:
halo2_proofs/src/plonk/circuit.rs#L1713
warning: function `collect_queries` is never used
--> halo2_proofs/src/plonk/circuit.rs:1713:4
|
1713 | fn collect_queries<F: Field>(expr: &ExpressionMid<F>, queries: &mut QueriesSet) {
| ^^^^^^^^^^^^^^^
|
struct `QueriesSet` is never constructed:
halo2_proofs/src/plonk/circuit.rs#L1707
warning: struct `QueriesSet` is never constructed
--> halo2_proofs/src/plonk/circuit.rs:1707:8
|
1707 | struct QueriesSet {
| ^^^^^^^^^^
|
associated function `get_any_query_index` is never used:
halo2_proofs/src/plonk.rs#L133
warning: associated function `get_any_query_index` is never used
--> halo2_proofs/src/plonk.rs:133:19
|
133 | pub(crate) fn get_any_query_index(&self, column: Column<Any>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^
|
associated function `get_instance_query_index` is never used:
halo2_proofs/src/plonk.rs#L123
warning: associated function `get_instance_query_index` is never used
--> halo2_proofs/src/plonk.rs:123:19
|
123 | pub(crate) fn get_instance_query_index(&self, column: Column<Instance>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
associated function `get_fixed_query_index` is never used:
halo2_proofs/src/plonk.rs#L113
warning: associated function `get_fixed_query_index` is never used
--> halo2_proofs/src/plonk.rs:113:19
|
113 | pub(crate) fn get_fixed_query_index(&self, column: Column<Fixed>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^
|
associated function `get_advice_query_index` is never used:
halo2_proofs/src/plonk.rs#L103
warning: associated function `get_advice_query_index` is never used
--> halo2_proofs/src/plonk.rs:103:19
|
103 | pub(crate) fn get_advice_query_index(&self, column: Column<Advice>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
halo2_proofs/src/plonk.rs#L408
warning: variable does not need to be mutable
--> halo2_proofs/src/plonk.rs:408:13
|
408 | let mut vk = Self {
| ----^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
halo2_proofs/src/plonk.rs#L178
warning: variable does not need to be mutable
--> halo2_proofs/src/plonk.rs:178:13
|
178 | let mut vk = Self {
| ----^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `advice_column`:
halo2_proofs/src/plonk/prover.rs#L267
warning: unused variable: `advice_column`
--> halo2_proofs/src/plonk/prover.rs:267:28
|
267 | for (column_index, advice_column) in witness.iter().enumerate() {
| ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advice_column`
|
unused variable: `circuit`:
halo2_proofs/src/plonk/circuit.rs#L2255
warning: unused variable: `circuit`
--> halo2_proofs/src/plonk/circuit.rs:2255:13
|
2255 | fn from(circuit: ConstraintSystemV2Backend<F>) -> Self {
| ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_circuit`
|
= note: `#[warn(unused_variables)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
halo2_proofs/tests/frontend_backend_split.rs#L580
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> halo2_proofs/tests/frontend_backend_split.rs:580:40
|
580 | let strategy = SingleStrategy::new(&verifier_params);
| ^^^^^^^^^^^^^^^^ help: change this to: `verifier_params`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
for loop over a single element:
halo2_proofs/tests/frontend_backend_split.rs#L562
warning: for loop over a single element
--> halo2_proofs/tests/frontend_backend_split.rs:562:5
|
562 | / for phase in [0] {
563 | | println!("DBG phase {}", phase);
564 | | let witness = witness_calc.calc(phase, &challenges).unwrap();
565 | | // println!("DBG witness: {:?}", witness);
566 | | challenges = prover.commit_phase(phase, vec![witness]).unwrap();
567 | | // println!("DBG challenges {:?}", challenges);
568 | | }
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_element_loop
= note: `-W clippy::single-element-loop` implied by `-W clippy::all`
help: try
|
562 ~ {
563 + let phase = 0;
564 + println!("DBG phase {}", phase);
565 + let witness = witness_calc.calc(phase, &challenges).unwrap();
566 + // println!("DBG witness: {:?}", witness);
567 + challenges = prover.commit_phase(phase, vec![witness]).unwrap();
568 + // println!("DBG challenges {:?}", challenges);
569 + }
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
halo2_proofs/tests/frontend_backend_split.rs#L513
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> halo2_proofs/tests/frontend_backend_split.rs:513:40
|
513 | let strategy = SingleStrategy::new(&verifier_params);
| ^^^^^^^^^^^^^^^^ help: change this to: `verifier_params`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `-W clippy::needless-borrow` implied by `-W clippy::all`
|
redundant clone:
halo2_proofs/tests/frontend_backend_split.rs#L498
warning: redundant clone
--> halo2_proofs/tests/frontend_backend_split.rs:498:18
|
498 | &[circuit.clone()],
| ^^^^^^^^ help: remove this
|
note: this value is dropped without further use
--> halo2_proofs/tests/frontend_backend_split.rs:498:11
|
498 | &[circuit.clone()],
| ^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone
= note: `-W clippy::redundant-clone` implied by `-W clippy::all`
|
using `clone` on type `halo2_proofs::plonk::Selector` which implements the `Copy` trait:
halo2_proofs/tests/frontend_backend_split.rs#L154
warning: using `clone` on type `halo2_proofs::plonk::Selector` which implements the `Copy` trait
--> halo2_proofs/tests/frontend_backend_split.rs:154:26
|
154 | let s_instance = s_gate.clone();
| ^^^^^^^^^^^^^^ help: try removing the `clone` call: `s_gate`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
|
using `clone` on type `halo2_proofs::plonk::Column<halo2_proofs::plonk::Advice>` which implements the `Copy` trait:
halo2_proofs/tests/frontend_backend_split.rs#L150
warning: using `clone` on type `halo2_proofs::plonk::Column<halo2_proofs::plonk::Advice>` which implements the `Copy` trait
--> halo2_proofs/tests/frontend_backend_split.rs:150:17
|
150 | let e = c.clone();
| ^^^^^^^^^ help: try removing the `clone` call: `c`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
|
using `clone` on type `halo2_proofs::plonk::Selector` which implements the `Copy` trait:
halo2_proofs/tests/frontend_backend_split.rs#L148
warning: using `clone` on type `halo2_proofs::plonk::Selector` which implements the `Copy` trait
--> halo2_proofs/tests/frontend_backend_split.rs:148:21
|
148 | let s_rlc = s_gate.clone();
| ^^^^^^^^^^^^^^ help: try removing the `clone` call: `s_gate`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
= note: `-W clippy::clone-on-copy` implied by `-W clippy::all`
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/tests/frontend_backend_split.rs#L65
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/tests/frontend_backend_split.rs:65:10
|
65 | ) -> Result<(AssignedCell<F, F>, [AssignedCell<F, F>; 4]), Error> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `-W clippy::type-complexity` implied by `-W clippy::all`
|
fields `s_rlc`, `e` and `instance` are never read:
halo2_proofs/tests/frontend_backend_split.rs#L49
warning: fields `s_rlc`, `e` and `instance` are never read
--> halo2_proofs/tests/frontend_backend_split.rs:49:5
|
27 | struct MyCircuitConfig {
| --------------- fields in this struct
...
49 | s_rlc: Selector,
| ^^^^^
50 | e: Column<Advice>,
| ^
...
55 | instance: Column<Instance>,
| ^^^^^^^^
|
= note: `MyCircuitConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
halo2_proofs/tests/frontend_backend_split.rs#L569
warning: variable does not need to be mutable
--> halo2_proofs/tests/frontend_backend_split.rs:569:9
|
569 | let mut transcript = prover.create_proof().unwrap();
| ----^^^^^^^^^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
halo2_proofs/tests/frontend_backend_split.rs#L550
warning: variable does not need to be mutable
--> halo2_proofs/tests/frontend_backend_split.rs:550:9
|
550 | let mut transcript = Blake2bWrite::<_, G1Affine, Challenge255<_>>::init(vec![]);
| ----^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `instance`:
halo2_proofs/tests/frontend_backend_split.rs#L428
warning: unused variable: `instance`
--> halo2_proofs/tests/frontend_backend_split.rs:428:29
|
428 | for (i, instance) in instance_copy.iter().enumerate() {
| ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instance`
|
unused variable: `i`:
halo2_proofs/tests/frontend_backend_split.rs#L428
warning: unused variable: `i`
--> halo2_proofs/tests/frontend_backend_split.rs:428:26
|
428 | for (i, instance) in instance_copy.iter().enumerate() {
| ^ help: if this is intentional, prefix it with an underscore: `_i`
|
unused variable: `abcd3`:
halo2_proofs/tests/frontend_backend_split.rs#L309
warning: unused variable: `abcd3`
--> halo2_proofs/tests/frontend_backend_split.rs:309:25
|
309 | let (_, abcd3) = config
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_abcd3`
|
unused variable: `abcd2`:
halo2_proofs/tests/frontend_backend_split.rs#L305
warning: unused variable: `abcd2`
--> halo2_proofs/tests/frontend_backend_split.rs:305:25
|
305 | let (_, abcd2) = config
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_abcd2`
|
unused variable: `abcd1`:
halo2_proofs/tests/frontend_backend_split.rs#L301
warning: unused variable: `abcd1`
--> halo2_proofs/tests/frontend_backend_split.rs:301:25
|
301 | let (_, abcd1) = config
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_abcd1`
|
unused variable: `abcd3`:
halo2_proofs/tests/frontend_backend_split.rs#L291
warning: unused variable: `abcd3`
--> halo2_proofs/tests/frontend_backend_split.rs:291:25
|
291 | let (_, abcd3) = config
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_abcd3`
|
unused variable: `one`:
halo2_proofs/tests/frontend_backend_split.rs#L158
warning: unused variable: `one`
--> halo2_proofs/tests/frontend_backend_split.rs:158:13
|
158 | let one = Expression::Constant(F::ONE);
| ^^^ help: if this is intentional, prefix it with an underscore: `_one`
|
= note: `#[warn(unused_variables)]` on by default
|
unused import: `EncodedChallenge`:
halo2_proofs/tests/frontend_backend_split.rs#L19
warning: unused import: `EncodedChallenge`
--> halo2_proofs/tests/frontend_backend_split.rs:19:46
|
19 | Blake2bRead, Blake2bWrite, Challenge255, EncodedChallenge, TranscriptReadBuffer,
| ^^^^^^^^^^^^^^^^
|
unused import: `halo2_proofs::poly::VerificationStrategy`:
halo2_proofs/tests/frontend_backend_split.rs#L17
warning: unused import: `halo2_proofs::poly::VerificationStrategy`
--> halo2_proofs/tests/frontend_backend_split.rs:17:5
|
17 | use halo2_proofs::poly::VerificationStrategy;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `Verifier`:
halo2_proofs/tests/frontend_backend_split.rs#L15
warning: unused import: `Verifier`
--> halo2_proofs/tests/frontend_backend_split.rs:15:78
|
15 | use halo2_proofs::poly::commitment::{CommitmentScheme, ParamsProver, Prover, Verifier};
| ^^^^^^^^
|
unused import: `Prover`:
halo2_proofs/tests/frontend_backend_split.rs#L15
warning: unused import: `Prover`
--> halo2_proofs/tests/frontend_backend_split.rs:15:70
|
15 | use halo2_proofs::poly::commitment::{CommitmentScheme, ParamsProver, Prover, Verifier};
| ^^^^^^
|
unused import: `ParamsVerifierKZG`:
halo2_proofs/tests/frontend_backend_split.rs#L443
warning: unused import: `ParamsVerifierKZG`
--> halo2_proofs/tests/frontend_backend_split.rs:443:75
|
443 | use halo2_proofs::poly::kzg::commitment::{KZGCommitmentScheme, ParamsKZG, ParamsVerifierKZG};
| ^^^^^^^^^^^^^^^^^
|
unused import: `std::marker::PhantomData`:
halo2_proofs/tests/frontend_backend_split.rs#L24
warning: unused import: `std::marker::PhantomData`
--> halo2_proofs/tests/frontend_backend_split.rs:24:5
|
24 | use std::marker::PhantomData;
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
unused imports: `OsRng`, `RngCore`:
halo2_proofs/tests/frontend_backend_split.rs#L22
warning: unused imports: `OsRng`, `RngCore`
--> halo2_proofs/tests/frontend_backend_split.rs:22:17
|
22 | use rand_core::{OsRng, RngCore};
| ^^^^^ ^^^^^^^
|
unused import: `CommitmentScheme`:
halo2_proofs/tests/frontend_backend_split.rs#L15
warning: unused import: `CommitmentScheme`
--> halo2_proofs/tests/frontend_backend_split.rs:15:38
|
15 | use halo2_proofs::poly::commitment::{CommitmentScheme, ParamsProver, Prover, Verifier};
| ^^^^^^^^^^^^^^^^
|
unused imports: `Assigned`, `Challenge`, `CompiledCircuitV2`, `ConstraintSystemV2Backend`, `FirstPhase`, `ProvingKey`, `SecondPhase`, `TableColumn`, `VerifyingKey`:
halo2_proofs/tests/frontend_backend_split.rs#L11
warning: unused imports: `Assigned`, `Challenge`, `CompiledCircuitV2`, `ConstraintSystemV2Backend`, `FirstPhase`, `ProvingKey`, `SecondPhase`, `TableColumn`, `VerifyingKey`
--> halo2_proofs/tests/frontend_backend_split.rs:11:30
|
11 | verify_proof_v2, Advice, Assigned, Challenge, Circuit, Column, CompiledCircuitV2,
| ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^
12 | ConstraintSystem, ConstraintSystemV2Backend, Error, Expression, FirstPhase, Fixed, Instance,
| ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
13 | ProverV2, ProvingKey, SecondPhase, Selector, TableColumn, VerifyingKey, WitnessCalculator,
| ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^
|
unused import: `Cell`:
halo2_proofs/tests/frontend_backend_split.rs#L7
warning: unused import: `Cell`
--> halo2_proofs/tests/frontend_backend_split.rs:7:43
|
7 | use halo2_proofs::circuit::{AssignedCell, Cell, Layouter, Region, SimpleFloorPlanner, Value};
| ^^^^
|
unused imports: `FromUniformBytes`, `WithSmallOrderMulGroup`:
halo2_proofs/tests/frontend_backend_split.rs#L5
warning: unused imports: `FromUniformBytes`, `WithSmallOrderMulGroup`
--> halo2_proofs/tests/frontend_backend_split.rs:5:10
|
5 | use ff::{FromUniformBytes, WithSmallOrderMulGroup};
| ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
|
unused import: `assert_matches::assert_matches`:
halo2_proofs/tests/frontend_backend_split.rs#L4
warning: unused import: `assert_matches::assert_matches`
--> halo2_proofs/tests/frontend_backend_split.rs:4:5
|
4 | use assert_matches::assert_matches;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
unused import: `ConstraintSystemV2Backend`:
halo2_proofs/src/plonk/evaluation.rs#L10
warning: unused import: `ConstraintSystemV2Backend`
--> halo2_proofs/src/plonk/evaluation.rs:10:40
|
10 | use super::{shuffle, ConstraintSystem, ConstraintSystemV2Backend, Expression};
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
halo2_proofs/src/plonk/prover.rs#L390
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> halo2_proofs/src/plonk/prover.rs:390:29
|
390 | ... &domain,
| ^^^^^^^ help: change this to: `domain`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `-W clippy::needless-borrow` implied by `-W clippy::all`
|
replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`:
halo2_proofs/src/plonk/prover.rs#L369
warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`
--> halo2_proofs/src/plonk/prover.rs:369:22
|
369 | let advice = std::mem::replace(&mut self.advice, Vec::new());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.advice)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
|
replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`:
halo2_proofs/src/plonk/prover.rs#L368
warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`
--> halo2_proofs/src/plonk/prover.rs:368:24
|
368 | let instance = std::mem::replace(&mut self.instance, Vec::new());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.instance)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
= note: `-W clippy::mem-replace-with-default` implied by `-W clippy::all`
|
this `if` has identical blocks:
halo2_proofs/src/plonk/prover.rs#L268
warning: this `if` has identical blocks
--> halo2_proofs/src/plonk/prover.rs:268:55
|
268 | if column_indices.contains(&column_index) {
| _______________________________________________________^
269 | | // TODO: Check that column_index in witness is Some
270 | | // TODO: Check that the column length is `params.n()`
271 | | } else {
| |_____________^
|
note: same as this
--> halo2_proofs/src/plonk/prover.rs:271:20
|
271 | } else {
| ____________________^
272 | | // TODO: Check that column_index in witness is None
273 | | };
| |_____________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else
= note: `-W clippy::if-same-then-else` implied by `-W clippy::all`
|
unnecessary `if let` since only the `Some` variant of the iterator element is used:
halo2_proofs/src/plonk/prover.rs#L253
warning: unnecessary `if let` since only the `Some` variant of the iterator element is used
--> halo2_proofs/src/plonk/prover.rs:253:13
|
253 | for witness_column in witness_circuit {
| ^ --------------- help: try: `witness_circuit.iter().flatten()`
| _____________|
| |
254 | | if let Some(witness_column) = witness_column {
255 | | if witness_column.len() != self.params.n() as usize {
256 | | return Err(Error::Other(format!(
... |
262 | | }
263 | | }
| |_____________^
|
help: ...and remove the `if let` statement in the for loop
--> halo2_proofs/src/plonk/prover.rs:254:17
|
254 | / if let Some(witness_column) = witness_column {
255 | | if witness_column.len() != self.params.n() as usize {
256 | | return Err(Error::Other(format!(
257 | | "unexpected length in witness_column. Got {}, expected {}",
... |
261 | | }
262 | | }
| |_________________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten
= note: `-W clippy::manual-flatten` implied by `-W clippy::all`
|
useless use of `format!`:
halo2_proofs/src/plonk/prover.rs#L243
warning: useless use of `format!`
--> halo2_proofs/src/plonk/prover.rs:243:37
|
243 | return Err(Error::Other(format!("witness.len() != advice.len()")));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"witness.len() != advice.len()".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
= note: `-W clippy::useless-format` implied by `-W clippy::all`
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/prover.rs#L203
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/prover.rs:203:18
|
203 | witness: Vec<Vec<Option<Polynomial<Assigned<Scheme::Scalar>, LagrangeCoeff>>>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
|
returning the result of a `let` binding from a block:
halo2_proofs/src/plonk/circuit.rs#L2197
warning: returning the result of a `let` binding from a block
--> halo2_proofs/src/plonk/circuit.rs:2197:9
|
2190 | / let queries = Queries {
2191 | | advice: queries.advice.into_iter().collect(),
2192 | | instance: queries.instance.into_iter().collect(),
2193 | | fixed: queries.fixed.into_iter().collect(),
2194 | | num_advice_queries,
2195 | | };
| |__________- unnecessary `let` binding
2196 | // println!("DBG collected queries\n{:#?}", queries);
2197 | queries
| ^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
= note: `-W clippy::let-and-return` implied by `-W clippy::all`
help: return the expression directly
|
2190 ~
2191 | // println!("DBG collected queries\n{:#?}", queries);
2192 ~ Queries {
2193 + advice: queries.advice.into_iter().collect(),
2194 + instance: queries.instance.into_iter().collect(),
2195 + fixed: queries.fixed.into_iter().collect(),
2196 + num_advice_queries,
2197 + }
|
|
casting to the same type is unnecessary (`usize` -> `usize`):
halo2_proofs/src/plonk/circuit.rs#L1984
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> halo2_proofs/src/plonk/circuit.rs:1984:25
|
1984 | usable_rows: 0..n as usize - (cs.blinding_factors() + 1),
| ^^^^^^^^^^ help: try: `n`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
|
casting to the same type is unnecessary (`usize` -> `usize`):
halo2_proofs/src/plonk/circuit.rs#L1983
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> halo2_proofs/src/plonk/circuit.rs:1983:37
|
1983 | selectors: vec![vec![false; n as usize]; cs.num_selectors],
| ^^^^^^^^^^ help: try: `n`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
= note: `-W clippy::unnecessary-cast` implied by `-W clippy::all`
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/circuit.rs#L1959
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/circuit.rs:1959:6
|
1959 | ) -> Result<
| ______^
1960 | | (
1961 | | CompiledCircuitV2<F>,
1962 | | ConcreteCircuit::Config,
... |
1965 | | Error,
1966 | | > {
| |_^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
|
very complex type used. Consider factoring parts into `type` definitions:
halo2_proofs/src/plonk/circuit.rs#L1887
warning: very complex type used. Consider factoring parts into `type` definitions
--> halo2_proofs/src/plonk/circuit.rs:1887:10
|
1887 | ) -> Result<Vec<Option<Polynomial<Assigned<F>, LagrangeCoeff>>>, Error> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `-W clippy::type-complexity` implied by `-W clippy::all`
|
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true:
halo2_proofs/src/plonk/circuit.rs#L892
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true
--> halo2_proofs/src/plonk/circuit.rs:892:1
|
892 | impl<F> Into<ExpressionMid<F>> for Expression<F> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: replace the `Into` implentation with `From<plonk::circuit::Expression<F>>`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into
= note: `-W clippy::from-over-into` implied by `-W clippy::all`
|
fields `name`, `input_expressions` and `shuffle_expressions` are never read:
halo2_proofs/src/plonk/shuffle.rs#L10
warning: fields `name`, `input_expressions` and `shuffle_expressions` are never read
--> halo2_proofs/src/plonk/shuffle.rs:10:16
|
9 | pub struct ArgumentV2<F: Field> {
| ---------- fields in this struct
10 | pub(crate) name: String,
| ^^^^
11 | pub(crate) input_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
12 | pub(crate) shuffle_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^^^
|
= note: `ArgumentV2` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
|
fields `name`, `input_expressions` and `table_expressions` are never read:
halo2_proofs/src/plonk/lookup.rs#L10
warning: fields `name`, `input_expressions` and `table_expressions` are never read
--> halo2_proofs/src/plonk/lookup.rs:10:16
|
9 | pub struct ArgumentV2<F: Field> {
| ---------- fields in this struct
10 | pub(crate) name: String,
| ^^^^
11 | pub(crate) input_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
12 | pub(crate) table_expressions: Vec<ExpressionMid<F>>,
| ^^^^^^^^^^^^^^^^^
|
= note: `ArgumentV2` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
|
associated function `collect_queries` is never used:
halo2_proofs/src/plonk/circuit.rs#L2141
warning: associated function `collect_queries` is never used
--> halo2_proofs/src/plonk/circuit.rs:2141:19
|
2141 | pub(crate) fn collect_queries(&self) -> Queries {
| ^^^^^^^^^^^^^^^
|
associated function `phases` is never used:
halo2_proofs/src/plonk/circuit.rs#L2131
warning: associated function `phases` is never used
--> halo2_proofs/src/plonk/circuit.rs:2131:19
|
2131 | pub(crate) fn phases(&self) -> Vec<u8> {
| ^^^^^^
|
associated function `new` is never used:
halo2_proofs/src/plonk/circuit.rs#L41
warning: associated function `new` is never used
--> halo2_proofs/src/plonk/circuit.rs:41:19
|
41 | pub(crate) fn new(index: usize, column_type: C) -> Self {
| ^^^
|
multiple fields are never read:
halo2_proofs/src/plonk/circuit.rs#L1803
warning: multiple fields are never read
--> halo2_proofs/src/plonk/circuit.rs:1803:16
|
1802 | pub struct ConstraintSystemV2Backend<F: Field> {
| ------------------------- fields in this struct
1803 | pub(crate) num_fixed_columns: usize,
| ^^^^^^^^^^^^^^^^^
1804 | pub(crate) num_advice_columns: usize,
| ^^^^^^^^^^^^^^^^^^
1805 | pub(crate) num_instance_columns: usize,
| ^^^^^^^^^^^^^^^^^^^^
1806 | // pub(crate) num_selectors: usize,
1807 | pub(crate) num_challenges: usize,
| ^^^^^^^^^^^^^^
...
1810 | pub(crate) unblinded_advice_columns: Vec<usize>,
| ^^^^^^^^^^^^^^^^^^^^^^^^
...
1813 | pub(crate) advice_column_phase: Vec<u8>,
| ^^^^^^^^^^^^^^^^^^^
1814 | /// Contains the phase for each challenge. Should have same length as num_challenges.
1815 | pub(crate) challenge_phase: Vec<u8>,
| ^^^^^^^^^^^^^^^
...
1821 | pub(crate) gates: Vec<GateV2Backend<F>>,
| ^^^^^
...
1831 | pub(crate) lookups: Vec<lookup::ArgumentV2<F>>,
| ^^^^^^^
...
1835 | pub(crate) shuffles: Vec<shuffle::ArgumentV2<F>>,
| ^^^^^^^^
...
1838 | pub(crate) general_column_annotations: HashMap<metadata::Column, String>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `ConstraintSystemV2Backend` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
|
function `collect_queries` is never used:
halo2_proofs/src/plonk/circuit.rs#L1713
warning: function `collect_queries` is never used
--> halo2_proofs/src/plonk/circuit.rs:1713:4
|
1713 | fn collect_queries<F: Field>(expr: &ExpressionMid<F>, queries: &mut QueriesSet) {
| ^^^^^^^^^^^^^^^
|
struct `QueriesSet` is never constructed:
halo2_proofs/src/plonk/circuit.rs#L1707
warning: struct `QueriesSet` is never constructed
--> halo2_proofs/src/plonk/circuit.rs:1707:8
|
1707 | struct QueriesSet {
| ^^^^^^^^^^
|
associated function `get_any_query_index` is never used:
halo2_proofs/src/plonk.rs#L133
warning: associated function `get_any_query_index` is never used
--> halo2_proofs/src/plonk.rs:133:19
|
133 | pub(crate) fn get_any_query_index(&self, column: Column<Any>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^
|
associated function `get_instance_query_index` is never used:
halo2_proofs/src/plonk.rs#L123
warning: associated function `get_instance_query_index` is never used
--> halo2_proofs/src/plonk.rs:123:19
|
123 | pub(crate) fn get_instance_query_index(&self, column: Column<Instance>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
associated function `get_fixed_query_index` is never used:
halo2_proofs/src/plonk.rs#L113
warning: associated function `get_fixed_query_index` is never used
--> halo2_proofs/src/plonk.rs:113:19
|
113 | pub(crate) fn get_fixed_query_index(&self, column: Column<Fixed>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^
|
associated function `get_advice_query_index` is never used:
halo2_proofs/src/plonk.rs#L103
warning: associated function `get_advice_query_index` is never used
--> halo2_proofs/src/plonk.rs:103:19
|
103 | pub(crate) fn get_advice_query_index(&self, column: Column<Advice>, at: Rotation) -> usize {
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
halo2_proofs/src/plonk.rs#L408
warning: variable does not need to be mutable
--> halo2_proofs/src/plonk.rs:408:13
|
408 | let mut vk = Self {
| ----^^
| |
| help: remove this `mut`
|
variable does not need to be mutable:
halo2_proofs/src/plonk.rs#L178
warning: variable does not need to be mutable
--> halo2_proofs/src/plonk.rs:178:13
|
178 | let mut vk = Self {
| ----^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `advice_column`:
halo2_proofs/src/plonk/prover.rs#L267
warning: unused variable: `advice_column`
--> halo2_proofs/src/plonk/prover.rs:267:28
|
267 | for (column_index, advice_column) in witness.iter().enumerate() {
| ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_advice_column`
|
unused variable: `circuit`:
halo2_proofs/src/plonk/circuit.rs#L2255
warning: unused variable: `circuit`
--> halo2_proofs/src/plonk/circuit.rs:2255:13
|
2255 | fn from(circuit: ConstraintSystemV2Backend<F>) -> Self {
| ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_circuit`
|
= note: `#[warn(unused_variables)]` on by default
|
unused import: `ConstraintSystemV2Backend`:
halo2_proofs/src/plonk/evaluation.rs#L10
warning: unused import: `ConstraintSystemV2Backend`
--> halo2_proofs/src/plonk/evaluation.rs:10:40
|
10 | use super::{shuffle, ConstraintSystem, ConstraintSystemV2Backend, Expression};
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
Clippy (beta)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1, actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Clippy (beta)
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/
|
Clippy (beta)
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/
|
Clippy (beta)
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/
|
Clippy (beta)
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/
|