Cargo fmt + clippy, with latest rust
This commit is contained in:
@@ -712,8 +712,12 @@ impl DefaultFunction {
|
||||
Ok(value)
|
||||
}
|
||||
DefaultFunction::HeadList => {
|
||||
let c @ Value::Con(inner) = &args[0] else {unreachable!()};
|
||||
let Constant::ProtoList(_, list) = inner.as_ref() else {unreachable!()};
|
||||
let c @ Value::Con(inner) = &args[0] else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ProtoList(_, list) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
if list.is_empty() {
|
||||
Err(Error::EmptyList(c.clone()))
|
||||
@@ -724,8 +728,12 @@ impl DefaultFunction {
|
||||
}
|
||||
}
|
||||
DefaultFunction::TailList => {
|
||||
let c @ Value::Con(inner) = &args[0] else {unreachable!()};
|
||||
let Constant::ProtoList(r#type, list) = inner.as_ref() else {unreachable!()};
|
||||
let c @ Value::Con(inner) = &args[0] else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ProtoList(r#type, list) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
if list.is_empty() {
|
||||
Err(Error::EmptyList(c.clone()))
|
||||
@@ -784,12 +792,9 @@ impl DefaultFunction {
|
||||
let mut map = Vec::new();
|
||||
|
||||
for item in list {
|
||||
let Constant::ProtoPair(
|
||||
Type::Data,
|
||||
Type::Data,
|
||||
left,
|
||||
right
|
||||
) = item else {unreachable!()};
|
||||
let Constant::ProtoPair(Type::Data, Type::Data, left, right) = item else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
match (left.as_ref(), right.as_ref()) {
|
||||
(Constant::Data(key), Constant::Data(value)) => {
|
||||
@@ -838,7 +843,7 @@ impl DefaultFunction {
|
||||
return Err(Error::DeserialisationError(
|
||||
"UnConstrData".to_string(),
|
||||
v.clone(),
|
||||
))
|
||||
));
|
||||
};
|
||||
|
||||
let constant = Constant::ProtoPair(
|
||||
@@ -876,7 +881,7 @@ impl DefaultFunction {
|
||||
return Err(Error::DeserialisationError(
|
||||
"UnMapData".to_string(),
|
||||
v.clone(),
|
||||
))
|
||||
));
|
||||
};
|
||||
|
||||
let constant = Constant::ProtoList(
|
||||
@@ -909,7 +914,7 @@ impl DefaultFunction {
|
||||
return Err(Error::DeserialisationError(
|
||||
"UnListData".to_string(),
|
||||
v.clone(),
|
||||
))
|
||||
));
|
||||
};
|
||||
|
||||
let value = Value::list(
|
||||
@@ -933,7 +938,7 @@ impl DefaultFunction {
|
||||
return Err(Error::DeserialisationError(
|
||||
"UnIData".to_string(),
|
||||
v.clone(),
|
||||
))
|
||||
));
|
||||
};
|
||||
|
||||
let value = Value::integer(from_pallas_bigint(b));
|
||||
@@ -951,7 +956,7 @@ impl DefaultFunction {
|
||||
return Err(Error::DeserialisationError(
|
||||
"UnBData".to_string(),
|
||||
v.clone(),
|
||||
))
|
||||
));
|
||||
};
|
||||
|
||||
let value = Value::byte_string(b.to_vec());
|
||||
@@ -964,18 +969,28 @@ impl DefaultFunction {
|
||||
)),
|
||||
},
|
||||
DefaultFunction::EqualsData => {
|
||||
let (Value::Con(inner1), Value::Con(inner2)) = (&args[0], &args[1]) else {unreachable!()};
|
||||
let (Value::Con(inner1), Value::Con(inner2)) = (&args[0], &args[1]) else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
let Constant::Data(d1) = inner1.as_ref() else {unreachable!()};
|
||||
let Constant::Data(d2) = inner2.as_ref() else {unreachable!()};
|
||||
let Constant::Data(d1) = inner1.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::Data(d2) = inner2.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
let value = Value::bool(d1.eq(d2));
|
||||
|
||||
Ok(value)
|
||||
}
|
||||
DefaultFunction::SerialiseData => {
|
||||
let Value::Con(inner) = &args[0] else {unreachable!()};
|
||||
let Constant::Data(d) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = &args[0] else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::Data(d) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
let serialized_data = plutus_data_to_bytes(d).unwrap();
|
||||
|
||||
@@ -984,10 +999,16 @@ impl DefaultFunction {
|
||||
Ok(value)
|
||||
}
|
||||
DefaultFunction::MkPairData => {
|
||||
let (Value::Con(inner1), Value::Con(inner2)) = (&args[0], &args[1]) else {unreachable!()};
|
||||
let (Value::Con(inner1), Value::Con(inner2)) = (&args[0], &args[1]) else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
let Constant::Data(d1) = inner1.as_ref() else {unreachable!()};
|
||||
let Constant::Data(d2) = inner2.as_ref() else {unreachable!()};
|
||||
let Constant::Data(d1) = inner1.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::Data(d2) = inner2.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
let constant = Constant::ProtoPair(
|
||||
Type::Data,
|
||||
|
||||
@@ -66,56 +66,86 @@ impl Value {
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_integer(&self) -> &BigInt {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::Integer(integer) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::Integer(integer) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
integer
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_byte_string(&self) -> &Vec<u8> {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::ByteString(byte_string) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ByteString(byte_string) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
byte_string
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_string(&self) -> &String {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::String(string) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::String(string) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
string
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_bool(&self) -> &bool {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::Bool(condition) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::Bool(condition) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
condition
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_pair(&self) -> (&Type, &Type, &Rc<Constant>, &Rc<Constant>) {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::ProtoPair(t1, t2, first, second) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ProtoPair(t1, t2, first, second) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
(t1, t2, first, second)
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_list(&self) -> (&Type, &Vec<Constant>) {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::ProtoList(t, list) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ProtoList(t, list) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
(t, list)
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_constant(&self) -> &Constant {
|
||||
let Value::Con(item) = self else {unreachable!()};
|
||||
let Value::Con(item) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
item.as_ref()
|
||||
}
|
||||
|
||||
pub(super) fn unwrap_data_list(&self) -> &Vec<Constant> {
|
||||
let Value::Con(inner) = self else {unreachable!()};
|
||||
let Constant::ProtoList(Type::Data, list) = inner.as_ref() else {unreachable!()};
|
||||
let Value::Con(inner) = self else {
|
||||
unreachable!()
|
||||
};
|
||||
let Constant::ProtoList(Type::Data, list) = inner.as_ref() else {
|
||||
unreachable!()
|
||||
};
|
||||
|
||||
list
|
||||
}
|
||||
|
||||
@@ -181,13 +181,15 @@ fn inline_direct_reduce(term: &mut Term<Name>) {
|
||||
inline_direct_reduce(func);
|
||||
inline_direct_reduce(arg);
|
||||
|
||||
let Term::Lambda { parameter_name, body } = func
|
||||
else{
|
||||
let Term::Lambda {
|
||||
parameter_name,
|
||||
body,
|
||||
} = func
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
let Term::Var(name) = body.as_ref()
|
||||
else {
|
||||
let Term::Var(name) = body.as_ref() else {
|
||||
return;
|
||||
};
|
||||
|
||||
@@ -220,18 +222,23 @@ fn inline_identity_reduce(term: &mut Term<Name>) {
|
||||
inline_identity_reduce(func);
|
||||
inline_identity_reduce(arg);
|
||||
|
||||
let Term::Lambda { parameter_name, body } = func
|
||||
let Term::Lambda {
|
||||
parameter_name,
|
||||
body,
|
||||
} = func
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
let Term::Lambda { parameter_name: identity_name, body: identity_body } = arg
|
||||
let Term::Lambda {
|
||||
parameter_name: identity_name,
|
||||
body: identity_body,
|
||||
} = arg
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
let Term::Var(identity_var) = Rc::make_mut(identity_body)
|
||||
else {
|
||||
let Term::Var(identity_var) = Rc::make_mut(identity_body) else {
|
||||
return;
|
||||
};
|
||||
|
||||
@@ -316,10 +323,7 @@ fn wrap_data_reduce(term: &mut Term<Name>) {
|
||||
wrap_data_reduce(Rc::make_mut(body));
|
||||
}
|
||||
Term::Apply { function, argument } => {
|
||||
let Term::Builtin(
|
||||
first_action
|
||||
) = function.as_ref()
|
||||
else {
|
||||
let Term::Builtin(first_action) = function.as_ref() else {
|
||||
wrap_data_reduce(Rc::make_mut(function));
|
||||
wrap_data_reduce(Rc::make_mut(argument));
|
||||
return;
|
||||
@@ -330,8 +334,7 @@ fn wrap_data_reduce(term: &mut Term<Name>) {
|
||||
argument: inner_arg,
|
||||
} = Rc::make_mut(argument)
|
||||
{
|
||||
let Term::Builtin(second_action) = inner_func.as_ref()
|
||||
else {
|
||||
let Term::Builtin(second_action) = inner_func.as_ref() else {
|
||||
wrap_data_reduce(Rc::make_mut(argument));
|
||||
return;
|
||||
};
|
||||
@@ -564,9 +567,11 @@ fn replace_identity_usage(term: &Term<Name>, original: Rc<Name>) -> Term<Name> {
|
||||
let func = replace_identity_usage(func, original.clone());
|
||||
let arg = replace_identity_usage(arg, original.clone());
|
||||
|
||||
let Term::Var(f) = function.as_ref()
|
||||
else {
|
||||
return Term::Apply { function: func.into(), argument: arg.into() }
|
||||
let Term::Var(f) = function.as_ref() else {
|
||||
return Term::Apply {
|
||||
function: func.into(),
|
||||
argument: arg.into(),
|
||||
};
|
||||
};
|
||||
|
||||
if f.as_ref() == original.as_ref() {
|
||||
|
||||
Reference in New Issue
Block a user