Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ required-features = ["smt", "zokc"]

[[example]]
name = "zxc"
required-features = ["smt", "zok"]
required-features = ["smt", "zok", "r1cs"]

[[example]]
name = "opa_bench"
Expand Down
8 changes: 4 additions & 4 deletions src/front/datalog/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ pub enum ErrorKind {
/// An error with an optional span
pub struct Error<'ast> {
/// The error
pub kind: ErrorKind,
pub kind: Box<ErrorKind>,
/// The span
pub span: Option<Span<'ast>>,
}
Expand All @@ -50,7 +50,7 @@ impl Display for Error<'_> {
impl From<ErrorKind> for Error<'_> {
fn from(error_kind: ErrorKind) -> Self {
Error {
kind: error_kind,
kind: Box::new(error_kind),
span: None,
}
}
Expand All @@ -59,7 +59,7 @@ impl From<ErrorKind> for Error<'_> {
impl From<crate::circify::CircError> for Error<'_> {
fn from(circ: crate::circify::CircError) -> Self {
Error {
kind: ErrorKind::Circify(circ),
kind: Box::new(ErrorKind::Circify(circ)),
span: None,
}
}
Expand All @@ -76,7 +76,7 @@ impl<'ast> Error<'ast> {
/// New error, with span
pub fn new(kind: ErrorKind, span: Span<'ast>) -> Self {
Error {
kind,
kind: Box::new(kind),
span: Some(span),
}
}
Expand Down
18 changes: 6 additions & 12 deletions src/front/zsharp/term.rs
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,10 @@ impl T {
}

pub fn pretty<W: std::io::Write>(&self, f: &mut W) -> Result<(), std::io::Error> {
use std::io::{Error, ErrorKind};
use std::io::Error;
let val = match &self.term.op() {
Op::Const(v) => Ok(v),
_ => Err(Error::new(ErrorKind::Other, "not a const val")),
_ => Err(Error::other("not a const val")),
}?;
match &**val {
Value::Bool(b) => write!(f, "{b}"),
Expand All @@ -289,10 +289,7 @@ impl T {
let (n, fl) = if let Ty::Struct(n, fl) = &self.ty {
Ok((n, fl))
} else {
Err(Error::new(
ErrorKind::Other,
"expected struct, got something else",
))
Err(Error::other("expected struct, got something else"))
}?;
write!(f, "{n} {{ ")?;
fl.fields().zip(vs.iter()).try_for_each(|((n, ty), v)| {
Expand All @@ -306,10 +303,7 @@ impl T {
let inner_ty = if let Ty::Array(_, ty) = &self.ty {
Ok(ty)
} else {
Err(Error::new(
ErrorKind::Other,
"expected array, got something else",
))
Err(Error::other("expected array, got something else"))
}?;
write!(f, "[")?;
arr.key_sort
Expand Down Expand Up @@ -1229,7 +1223,7 @@ impl Embeddable for ZSharp {
let ps: Vec<Option<T>> = match precompute.map(|p| p.unwrap_array()) {
Some(Ok(v)) => v.into_iter().map(Some).collect(),
Some(Err(e)) => panic!("{}", e),
None => std::iter::repeat(None).take(*n).collect(),
None => std::iter::repeat_n(None, *n).collect(),
};
debug_assert_eq!(*n, ps.len());
array(
Expand All @@ -1243,7 +1237,7 @@ impl Embeddable for ZSharp {
let ps: Vec<Option<T>> = match precompute.map(|p| p.unwrap_array()) {
Some(Ok(v)) => v.into_iter().map(Some).collect(),
Some(Err(e)) => panic!("{}", e),
None => std::iter::repeat(None).take(*n).collect(),
None => std::iter::repeat_n(None, *n).collect(),
};
debug_assert_eq!(*n, ps.len());
array(ps.into_iter().enumerate().map(|(i, p)| {
Expand Down
20 changes: 7 additions & 13 deletions src/front/zsharpcurly/term.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,10 +252,10 @@ impl T {
}

pub fn pretty<W: std::io::Write>(&self, f: &mut W) -> Result<(), std::io::Error> {
use std::io::{Error, ErrorKind};
use std::io::Error;
let val = match &self.term.op() {
Op::Const(v) => Ok(v),
_ => Err(Error::new(ErrorKind::Other, "not a const val")),
_ => Err(Error::other("not a const val")),
}?;
match &**val {
Value::Bool(b) => write!(f, "{b}"),
Expand Down Expand Up @@ -285,19 +285,13 @@ impl T {
})?;
write!(f, ")")
}
_ => Err(Error::new(
ErrorKind::Other,
"expected struct or tuple, got something else",
)),
_ => Err(Error::other("expected struct or tuple, got something else")),
},
Value::Array(arr) => {
let inner_ty = if let Ty::Array(_, ty) = &self.ty {
Ok(ty)
} else {
Err(Error::new(
ErrorKind::Other,
"expected array, got something else",
))
Err(Error::other("expected array, got something else"))
}?;
write!(f, "[")?;
arr.key_sort
Expand Down Expand Up @@ -1246,7 +1240,7 @@ impl Embeddable for ZSharp {
let ps: Vec<Option<T>> = match precompute.map(|p| p.unwrap_array()) {
Some(Ok(v)) => v.into_iter().map(Some).collect(),
Some(Err(e)) => panic!("{}", e),
None => std::iter::repeat(None).take(*n).collect(),
None => std::iter::repeat_n(None, *n).collect(),
};
debug_assert_eq!(*n, ps.len());
array(
Expand All @@ -1260,7 +1254,7 @@ impl Embeddable for ZSharp {
let ps: Vec<Option<T>> = match precompute.map(|p| p.unwrap_array()) {
Some(Ok(v)) => v.into_iter().map(Some).collect(),
Some(Err(e)) => panic!("{}", e),
None => std::iter::repeat(None).take(*n).collect(),
None => std::iter::repeat_n(None, *n).collect(),
};
debug_assert_eq!(*n, ps.len());
array(
Expand Down Expand Up @@ -1304,7 +1298,7 @@ impl Embeddable for ZSharp {
panic!("Precompute type doesn't match expected tuple type");
}
},
None => std::iter::repeat(None).take(tys.len()).collect(),
None => std::iter::repeat_n(None, tys.len()).collect(),
};
debug_assert_eq!(tys.len(), ps.len());
T::new(
Expand Down
8 changes: 4 additions & 4 deletions src/ir/term/dist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use super::*;

use circ_fields::{FieldT, FieldV};
use rand::{distributions::Distribution, prelude::SliceRandom, Rng};
use std::iter::repeat;
use std::iter::repeat_n;

// A distribution of boolean terms with some size.
// All subterms are booleans.
Expand Down Expand Up @@ -210,9 +210,9 @@ impl FixedSizeDist {
let s = Sort::BitVector(self.bv_width.unwrap());
vec![s.clone(), s]
}
o if o.arity().is_none() && o != &Op::BvConcat => repeat(sort.clone())
.take(rng.gen_range(1..self.size))
.collect(),
o if o.arity().is_none() && o != &Op::BvConcat => {
repeat_n(sort.clone(), rng.gen_range(1..self.size)).collect()
}
// perhaps allow concat?
Op::BvBinOp(_) => vec![sort.clone(), sort.clone()],
Op::BvUnOp(_) => vec![sort.clone()],
Expand Down
2 changes: 1 addition & 1 deletion src/target/aby/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::path::Path;

/// Given Path `path` and String denominator `lang`, return the filename of the path
pub fn get_path(path: &Path, lang: &str, t: &str, create: bool) -> String {
let filename = Path::new(&path.iter().last().unwrap())
let filename = Path::new(path.iter().next_back().unwrap())
.file_stem()
.unwrap()
.to_os_string()
Expand Down
7 changes: 3 additions & 4 deletions src/target/ilp/trans.rs
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ impl ToMilp {
Op::BvUext(extra_n) => {
if self.bv_has_bits(&bv.cs()[0]) {
let bits = self.get_bv_bits(&bv.cs()[0]);
let ext_bits = std::iter::repeat(Expression::from(0)).take(*extra_n);
let ext_bits = std::iter::repeat_n(Expression::from(0), *extra_n);
self.set_bv_bits(bv, bits.into_iter().chain(ext_bits).collect());
} else {
let x = self.get_bv_uint(&bv.cs()[0]);
Expand All @@ -300,9 +300,8 @@ impl ToMilp {
}
Op::BvSext(extra_n) => {
let mut bits = self.get_bv_bits(&bv.cs()[0]).into_iter().rev();
let ext_bits = std::iter::repeat(bits.next().expect("sign ext empty"))
.take(extra_n + 1);

let ext_bits =
std::iter::repeat_n(bits.next().expect("sign ext empty"), extra_n + 1);
self.set_bv_bits(bv, bits.rev().chain(ext_bits).collect());
}
Op::BoolToBv => {
Expand Down
7 changes: 3 additions & 4 deletions src/target/r1cs/trans.rs
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ impl<'cfg> ToR1cs<'cfg> {
Op::BvUext(extra_n) => {
if self.bv_has_bits(&bv.cs()[0]) {
let bits = self.get_bv_bits(&bv.cs()[0]);
let ext_bits = std::iter::repeat(self.zero.clone()).take(*extra_n);
let ext_bits = std::iter::repeat_n(self.zero.clone(), *extra_n);
self.set_bv_bits(bv, bits.into_iter().chain(ext_bits).collect());
} else {
let x = self.get_bv_uint(&bv.cs()[0]);
Expand All @@ -749,9 +749,8 @@ impl<'cfg> ToR1cs<'cfg> {
}
Op::BvSext(extra_n) => {
let mut bits = self.get_bv_bits(&bv.cs()[0]).into_iter().rev();
let ext_bits = std::iter::repeat(bits.next().expect("sign ext empty"))
.take(extra_n + 1);

let ext_bits =
std::iter::repeat_n(bits.next().expect("sign ext empty"), extra_n + 1);
self.set_bv_bits(bv, bits.rev().chain(ext_bits).collect());
}
Op::PfToBv(nbits) => {
Expand Down
2 changes: 1 addition & 1 deletion third_party/ZoKratesCurly/zokrates_pest_ast/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// disable a clippy lint as pest_ast generates improper code
#![allow(clippy::clone_on_copy)]
#![allow(clippy::clone_on_copy, deprecated)]

use from_pest::FromPest;
use pest::error::Error as PestError;
Expand Down
Loading