chore: add specific error for when the validator returns false
This commit is contained in:
parent
78ff6cf178
commit
8a1c824dd7
|
@ -2,6 +2,10 @@
|
|||
|
||||
## v1.0.20-alpha - unreleased
|
||||
|
||||
### Changed
|
||||
|
||||
- **aiken-lang**: Added validator specific error when validator returns false
|
||||
|
||||
### Fixed
|
||||
|
||||
- **aiken-lang**: improved error messages for `a |> b(x)`
|
||||
|
|
|
@ -120,7 +120,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
) -> Program<Name> {
|
||||
let mut air_tree_fun = self.build(&fun.body);
|
||||
|
||||
air_tree_fun = wrap_validator_condition(air_tree_fun);
|
||||
air_tree_fun = wrap_validator_condition(air_tree_fun, self.tracing);
|
||||
|
||||
let mut validator_args_tree = self.check_validator_args(&fun.arguments, true, air_tree_fun);
|
||||
|
||||
|
@ -139,7 +139,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
|
||||
let mut air_tree_fun_other = self.build(&other.body);
|
||||
|
||||
air_tree_fun_other = wrap_validator_condition(air_tree_fun_other);
|
||||
air_tree_fun_other = wrap_validator_condition(air_tree_fun_other, self.tracing);
|
||||
|
||||
let mut validator_args_tree_other =
|
||||
self.check_validator_args(&other.arguments, true, air_tree_fun_other);
|
||||
|
@ -684,7 +684,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
TypedExpr::ErrorTerm { tipo, .. } => AirTree::error(tipo.clone()),
|
||||
TypedExpr::ErrorTerm { tipo, .. } => AirTree::error(tipo.clone(), false),
|
||||
|
||||
TypedExpr::RecordUpdate {
|
||||
tipo, spread, args, ..
|
||||
|
@ -1468,12 +1468,12 @@ impl<'a> CodeGenerator<'a> {
|
|||
|
||||
let error_term = if self.tracing {
|
||||
AirTree::trace(
|
||||
AirTree::string("Constr index did not match any type variant"),
|
||||
AirTree::string("Constr index didn't match a type variant"),
|
||||
tipo.clone(),
|
||||
AirTree::error(tipo.clone()),
|
||||
AirTree::error(tipo.clone(), false),
|
||||
)
|
||||
} else {
|
||||
AirTree::error(tipo.clone())
|
||||
AirTree::error(tipo.clone(), false)
|
||||
};
|
||||
|
||||
if function.is_none() && defined_data_types.get(&data_type_name).is_none() {
|
||||
|
@ -4327,7 +4327,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
let mut term = arg_stack.pop().unwrap();
|
||||
|
||||
let trace_term = if self.tracing {
|
||||
Term::Error.trace(Term::string("Expected on incorrect constructor variant."))
|
||||
Term::Error.trace(Term::string("Expected on incorrect Constr variant"))
|
||||
} else {
|
||||
Term::Error
|
||||
};
|
||||
|
@ -4344,7 +4344,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
let mut term = arg_stack.pop().unwrap();
|
||||
|
||||
let trace_term = if self.tracing {
|
||||
Term::Error.trace(Term::string("Expected on incorrect boolean variant"))
|
||||
Term::Error.trace(Term::string("Expected on incorrect bool variant"))
|
||||
} else {
|
||||
Term::Error
|
||||
};
|
||||
|
@ -5045,7 +5045,14 @@ impl<'a> CodeGenerator<'a> {
|
|||
|
||||
arg_stack.push(term);
|
||||
}
|
||||
Air::ErrorTerm { .. } => arg_stack.push(Term::Error),
|
||||
Air::ErrorTerm { validator, .. } => {
|
||||
if validator {
|
||||
arg_stack.push(Term::Error.apply(Term::Error.force()))
|
||||
} else {
|
||||
arg_stack.push(Term::Error);
|
||||
}
|
||||
}
|
||||
|
||||
Air::NoOp => {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -172,6 +172,7 @@ pub enum Air {
|
|||
// Misc.
|
||||
ErrorTerm {
|
||||
tipo: Rc<Type>,
|
||||
validator: bool,
|
||||
},
|
||||
Trace {
|
||||
tipo: Rc<Type>,
|
||||
|
|
|
@ -1671,9 +1671,17 @@ pub fn cast_validator_args(term: Term<Name>, arguments: &[TypedArg]) -> Term<Nam
|
|||
term
|
||||
}
|
||||
|
||||
pub fn wrap_validator_condition(air_tree: AirTree) -> AirTree {
|
||||
pub fn wrap_validator_condition(air_tree: AirTree, trace: bool) -> AirTree {
|
||||
let success_branch = vec![(air_tree, AirTree::void())];
|
||||
let otherwise = AirTree::error(void());
|
||||
let otherwise = if trace {
|
||||
AirTree::trace(
|
||||
AirTree::string("Validator returned false"),
|
||||
void(),
|
||||
AirTree::error(void(), true),
|
||||
)
|
||||
} else {
|
||||
AirTree::error(void(), true)
|
||||
};
|
||||
|
||||
AirTree::if_branches(success_branch, void(), otherwise)
|
||||
}
|
||||
|
|
|
@ -318,6 +318,7 @@ pub enum AirExpression {
|
|||
// Misc.
|
||||
ErrorTerm {
|
||||
tipo: Rc<Type>,
|
||||
validator: bool,
|
||||
},
|
||||
Trace {
|
||||
tipo: Rc<Type>,
|
||||
|
@ -777,8 +778,8 @@ impl AirTree {
|
|||
tipo.clone(),
|
||||
)
|
||||
}
|
||||
pub fn error(tipo: Rc<Type>) -> AirTree {
|
||||
AirTree::Expression(AirExpression::ErrorTerm { tipo })
|
||||
pub fn error(tipo: Rc<Type>, validator: bool) -> AirTree {
|
||||
AirTree::Expression(AirExpression::ErrorTerm { tipo, validator })
|
||||
}
|
||||
pub fn trace(msg: AirTree, tipo: Rc<Type>, then: AirTree) -> AirTree {
|
||||
AirTree::Expression(AirExpression::Trace {
|
||||
|
@ -1257,9 +1258,10 @@ impl AirTree {
|
|||
arg.create_air_vec(air_vec);
|
||||
}
|
||||
}
|
||||
AirExpression::ErrorTerm { tipo } => {
|
||||
air_vec.push(Air::ErrorTerm { tipo: tipo.clone() })
|
||||
}
|
||||
AirExpression::ErrorTerm { tipo, validator } => air_vec.push(Air::ErrorTerm {
|
||||
tipo: tipo.clone(),
|
||||
validator: *validator,
|
||||
}),
|
||||
AirExpression::Trace { tipo, msg, then } => {
|
||||
air_vec.push(Air::Trace { tipo: tipo.clone() });
|
||||
msg.create_air_vec(air_vec);
|
||||
|
@ -1294,7 +1296,7 @@ impl AirTree {
|
|||
| AirExpression::If { tipo, .. }
|
||||
| AirExpression::Constr { tipo, .. }
|
||||
| AirExpression::RecordUpdate { tipo, .. }
|
||||
| AirExpression::ErrorTerm { tipo }
|
||||
| AirExpression::ErrorTerm { tipo, .. }
|
||||
| AirExpression::Trace { tipo, .. } => tipo.clone(),
|
||||
AirExpression::Void => void(),
|
||||
AirExpression::Var { constructor, .. } => constructor.tipo.clone(),
|
||||
|
@ -1344,7 +1346,7 @@ impl AirTree {
|
|||
| AirExpression::CastToData { tipo, .. }
|
||||
| AirExpression::If { tipo, .. }
|
||||
| AirExpression::Constr { tipo, .. }
|
||||
| AirExpression::ErrorTerm { tipo }
|
||||
| AirExpression::ErrorTerm { tipo, .. }
|
||||
| AirExpression::Trace { tipo, .. } => vec![tipo],
|
||||
AirExpression::Var { constructor, .. } => {
|
||||
vec![constructor.tipo.borrow_mut()]
|
||||
|
|
|
@ -348,8 +348,8 @@ mod tests {
|
|||
"$ref": "#/definitions/Data"
|
||||
}
|
||||
},
|
||||
"compiledCode": "4f010000322253330034a22930b2b9a1",
|
||||
"hash": "69eb6e27b7098c51cef74d8929553456e0ff6748c50a08c0daae7986",
|
||||
"compiledCode": "583301000032322253330034a22930a9980224811856616c696461746f722072657475726e65642066616c736500136565734ae701",
|
||||
"hash": "9fc33a6ffaa8d1f600c161aa383739d5af37807ed83347cc133521c9",
|
||||
"definitions": {
|
||||
"Data": {
|
||||
"title": "Data",
|
||||
|
@ -386,8 +386,8 @@ mod tests {
|
|||
}
|
||||
}
|
||||
],
|
||||
"compiledCode": "54010000322322253330054a22930b1bad00157341",
|
||||
"hash": "0e31a2048fe4751926c4a1e5fd93c9c2ecc8035777884c15db157d11",
|
||||
"compiledCode": "583701000032322322253330054a22930a998032491856616c696461746f722072657475726e65642066616c73650013656375a002ae695ce1",
|
||||
"hash": "2837caccfd96d636a07e0da584ebbef94069bd7bfa4447096ecd9b80",
|
||||
"definitions": {
|
||||
"Data": {
|
||||
"title": "Data",
|
||||
|
@ -455,8 +455,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1Input"
|
||||
}
|
||||
},
|
||||
"compiledCode": "590267010000323232323232323232222323253330084a22930b19299980419b874800000454ccc030c01801052615330094911d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90010008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90020008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e737472001615330094912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630060033253330073370e90000008991919191919299980898098010991924c646600200200a44a66602800229309919801801980b8011bae301500132533300e3370e900000089919299980a180b0010a4c2a66022921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a6028002601800c2a6601e9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300c005153300e4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602200260220046eb0c03c004c03c008c034004c01401054cc0212412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163005003230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "2494f3ebfebdc55bc5958fbeb77fba0c886446dae24a8858919357ec",
|
||||
"compiledCode": "59027f010000323232323232323232222323253330084a22930a99804a491856616c696461746f722072657475726e65642066616c736500136563253330083370e90000008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90010008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153330083370e90020008a99980618030020a4c2a6601292011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300949128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630060033253330073370e90000008991919191919299980898098010991924c646600200200a44a66602800229309919801801980b8011bae301500132533300e3370e900000089919299980a180b0010a4c2a66022921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a6028002601800c2a6601e92128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740016300c005153300e4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c602200260220046eb0c03c004c03c008c034004c01401054cc02124128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e7400163005003230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "ff5b503bbcd7ed5fca26e803d69c09413bef905e72575443557f5a91",
|
||||
"definitions": {
|
||||
"ByteArray": {
|
||||
"dataType": "bytes"
|
||||
|
@ -567,8 +567,8 @@ mod tests {
|
|||
"$ref": "#/definitions/Tuple$Int_Int_Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "58a5010000323232323232322223232323253330084a22930b1919191919299980818090010a4c2a6601a921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602000260200046eb4c038004c038008dd698060009bac00432375c60120046eb4c01c004c8cdd81805000980518058009bac0035734ae7155ceaab9e5573eae855d11",
|
||||
"hash": "d1994e466707dcb482fc9d303af1220cfffee94bcbc0fd8cc7ad194c",
|
||||
"compiledCode": "58c6010000323232323232322223232323253330084a22930a99804a491856616c696461746f722072657475726e65642066616c73650013656323232323253330103012002149854cc0352401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602000260200046eb4c038004c038008dd698060009bac00432375c60120046eb4c01c004c8cdd81805000980518058009bac0035734ae7155ceaab9e5573eae855d11",
|
||||
"hash": "4b4cf15504b916aff5ce2cad8cd93a57dd9d124fbdaa88837d255ed4",
|
||||
"definitions": {
|
||||
"ByteArray": {
|
||||
"dataType": "bytes"
|
||||
|
@ -636,8 +636,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "5901e3010000323232323232323232223253330064a22930b19299980319b87480000044c8c94ccc030c03800852615330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601800260080062a66600c66e1d200200113232533300c300e002132498c94ccc024cdc3a400000226464a66601e60220042930a99806249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300700115330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300c001300400315330074912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163004002230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "b32c4cd46fa64739cddbd05cc35fef9bfc702b4c8ad8ac332a4e699c",
|
||||
"compiledCode": "5901fe010000323232323232323232223253330064a22930a99803a4811856616c696461746f722072657475726e65642066616c736500136563253330063370e900000089919299980618070010a4c2a660129201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375c601800260080062a66600c66e1d200200113232533300c300e002132498c94ccc024cdc3a400000226464a66601e60220042930a99806249334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a49128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740016300700115330094901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300c0013004003153300749128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e7400163004002230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "f45ef7cb07467b7bd4cbad2e5feecfd30ed5194b50026aba04a6692a",
|
||||
"definitions": {
|
||||
"ByteArray": {
|
||||
"dataType": "bytes"
|
||||
|
@ -720,8 +720,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "58e001000032323232323232223253330044a22930b19299980219b87480000044c8c94ccc028c0300084c926323300100100222533300c00114984c8cc00c00cc03c008c8c8dd698068011bae300b001300d0011533007491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001637566014002600e6ea800c54cc0152412b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630053754004ae695ce2ab9d5573caae7d5d0aba201",
|
||||
"hash": "1caa2519f38c63dfc5e3a457d1a06e57848628f5a2495b04afb64cba",
|
||||
"compiledCode": "58fe01000032323232323232223253330044a22930a99802a4811856616c696461746f722072657475726e65642066616c736500136563253330043370e9000000899192999805180600109924c646600200200444a66601800229309919801801980780119191bad300d002375c6016002601a0022a6600e921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001637566014002600e6ea800c54cc01524128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630053754004ae695ce2ab9d5573caae7d5d0aba201",
|
||||
"hash": "216d9334e8daaa401663667302f26cfb53c63d88fe4b14cd8e2a9c1e",
|
||||
"definitions": {
|
||||
"ByteArray": {
|
||||
"dataType": "bytes"
|
||||
|
@ -783,8 +783,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "584c01000032323232323222323253330054a22930b19198008008011129998048008a4c26466006006601800464646eb4c028008dd7180400098050009bab0025734aae7555cf2ab9f5742ae881",
|
||||
"hash": "6ab85c61be6a417c860621155f9c9c91cbaff382efbe7d532173b7ea",
|
||||
"compiledCode": "58700100003232323232323222323253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656323300100100222533300a00114984c8cc00c00cc034008c8c8dd698058011bae3009001300b0013756004ae695ce2ab9d5573caae7d5d0aba201",
|
||||
"hash": "8a89baa6035d083e7d59575b8fa1e8bd3fe485df94d0af356557b224",
|
||||
"definitions": {
|
||||
"ByteArray": {
|
||||
"dataType": "bytes"
|
||||
|
@ -835,8 +835,8 @@ mod tests {
|
|||
"$ref": "#/definitions/Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "58bb01000032323232323232222323253330064a22930b1bad0033253330053370e900000089919299980598068010a4c2a660109201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300b001300837540082a6600c9212b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630063754006ae695ce2ab9d5573caae7d5d0aba201",
|
||||
"hash": "05403d61b79f0933dc3608c4ed3385f44c37cd2088b513265a2ce306",
|
||||
"compiledCode": "58d801000032323232323232222323253330064a22930a99803a491856616c696461746f722072657475726e65642066616c73650013656375a00664a66600a66e1d200000113232533300b300d002149854cc021241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300b001300837540082a6600c92128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630063754006ae695ce2ab9d5573caae7d5d0aba201",
|
||||
"hash": "d61d9c4c310ef538d7c4e49b44836251d0c9ac61dad25692ac9bb69a",
|
||||
"definitions": {
|
||||
"Data": {
|
||||
"title": "Data",
|
||||
|
@ -890,8 +890,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1Expr"
|
||||
}
|
||||
},
|
||||
"compiledCode": "5901a00100003232323232323232223253330054a22930b19918008009119299980399b87480000044c8c94ccc034c03c008526153300a4901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601a002600c0042a66600e66e1d2002001132323232533300f301100213232498cc020020008cc01c01c00c54cc0312401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d0013006002153330073370e9002000899191919299980798088010991924c660100100046600e00e0062a660189201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d001300600215330084912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300837540020044600a6ea80055cd2b9c5573aaae7955cfaba157441",
|
||||
"hash": "1a61e3a68ae6223fc9a78ce530942f29bfe6421a160edaa59ded5589",
|
||||
"compiledCode": "5901be0100003232323232323232223253330054a22930a9980324811856616c696461746f722072657475726e65642066616c736500136563323001001223253330073370e900000089919299980698078010a4c2a660149201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a601a002600c0042a66600e66e1d2002001132323232533300f301100213232498cc020020008cc01c01c00c54cc0312401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d0013006002153330073370e9002000899191919299980798088010991924c660100100046600e00e0062a660189201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300f001300f002300d0013006002153300849128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740016300837540020044600a6ea80055cd2b9c5573aaae7955cfaba157441",
|
||||
"hash": "dafa047eb117e2b4df02e3c3d500faf6164ffc10c6ef9405cfd77bbb",
|
||||
"definitions": {
|
||||
"Int": {
|
||||
"dataType": "integer"
|
||||
|
@ -981,8 +981,8 @@ mod tests {
|
|||
"$ref": "#/definitions/test_module~1LinkedList$Int"
|
||||
}
|
||||
},
|
||||
"compiledCode": "59032b01000032323232323232323222232323232533300a4a22930b180100299919119299980619b87480000044c8c94ccc048c0500084c9263005001153300f491334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163012001300a0021533300c3370e9001000899191919299980a180b00109924c6464646600200200444a66603000229309919801801980d8011806980c8009bac3014002375c60240022a66022921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163233760602a002602a602c0026eb0c050004c050008dd6980900098050010a99806a492b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e740016300a00130010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a660209201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301300130130023370e900118071baa301100130090021533300b3370e90010008a99980798048010a4c2a660189211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e74001630090010053001001223253330093370e90000008991919192999808980980109924c6600e00e0022a6601c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a4912b436f6e73747220696e64657820646964206e6f74206d6174636820616e7920747970652076617269616e7400163007001230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "fb020634803fa5aa701cdbb35de727314ef9f5fff8243f3f35efafb0",
|
||||
"compiledCode": "59034301000032323232323232323222232323232533300a4a22930a99805a491856616c696461746f722072657475726e65642066616c73650013656300200533232232533300c3370e9000000899192999809180a00109924c600a0022a6601e9201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163012001300a0021533300c3370e9001000899191919299980a180b00109924c6464646600200200444a66603000229309919801801980d8011806980c8009bac3014002375c60240022a66022921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400163233760602a002602a602c0026eb0c050004c050008dd6980900098050010a99806a4928436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740016300a00130010012232533300b3370e90000008991919192999809980a80109924c6600e00e0022a660209201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016301300130130023370e900118071baa301100130090021533300b3370e90010008a99980798048010a4c2a660189211d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c49128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630090010053001001223253330093370e90000008991919192999808980980109924c6600e00e0022a6601c921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001630110013011002375a601e002600e0042a66601266e1d20020011533300d3007002149854cc02924011d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300a49128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e7400163007001230063754002460086ea80055cd2b9c5573aaae7955cfaba15745",
|
||||
"hash": "be815f61a39a2cb454eb24986ee22a14e5802d08ab83ea8cd4382651",
|
||||
"definitions": {
|
||||
"Bool": {
|
||||
"title": "Bool",
|
||||
|
|
|
@ -2827,7 +2827,12 @@ fn when_tuple_deconstruction() {
|
|||
.apply(Term::var("dat"))
|
||||
.apply(Term::var("red")),
|
||||
)
|
||||
.delayed_if_else(Term::unit(), Term::Error)
|
||||
.delayed_if_else(
|
||||
Term::unit(),
|
||||
Term::Error
|
||||
.apply(Term::Error.force())
|
||||
.trace(Term::string("Validator returned false")),
|
||||
)
|
||||
.lambda("_")
|
||||
.apply(
|
||||
Term::var("expect_RedSpend")
|
||||
|
@ -2866,7 +2871,7 @@ fn when_tuple_deconstruction() {
|
|||
)),
|
||||
),
|
||||
Term::Error.trace(Term::string(
|
||||
"Constr index did not match any type variant",
|
||||
"Constr index didn't match a type variant",
|
||||
)),
|
||||
),
|
||||
)
|
||||
|
@ -2916,7 +2921,7 @@ fn when_tuple_deconstruction() {
|
|||
)),
|
||||
),
|
||||
Term::Error.trace(Term::string(
|
||||
"Constr index did not match any type variant",
|
||||
"Constr index didn't match a type variant",
|
||||
)),
|
||||
),
|
||||
)
|
||||
|
@ -2948,7 +2953,7 @@ fn when_tuple_deconstruction() {
|
|||
.apply(Term::var("field_1")),
|
||||
),
|
||||
Term::Error.trace(Term::string(
|
||||
"Constr index did not match any type variant",
|
||||
"Constr index didn't match a type variant",
|
||||
)),
|
||||
)
|
||||
.lambda("subject")
|
||||
|
@ -3111,7 +3116,7 @@ fn generic_validator_type_test() {
|
|||
)
|
||||
.lambda("subject")
|
||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("r")))
|
||||
.delayed_if_else(Term::unit(), Term::Error)
|
||||
.delayed_if_else(Term::unit(), Term::Error.apply(Term::Error.force()).trace(Term::string("Validator returned false")))
|
||||
.lambda("_").apply(
|
||||
Term::var("__expect_A")
|
||||
.lambda("__expect_A")
|
||||
|
@ -3169,7 +3174,7 @@ fn generic_validator_type_test() {
|
|||
.apply(Term::var("r")),
|
||||
),
|
||||
Term::Error.trace(Term::string(
|
||||
"Constr index did not match any type variant",
|
||||
"Constr index didn't match a type variant",
|
||||
)),
|
||||
),
|
||||
)
|
||||
|
@ -3209,7 +3214,7 @@ fn generic_validator_type_test() {
|
|||
.apply(Term::var("field_B")),
|
||||
),
|
||||
Term::Error.trace(Term::string(
|
||||
"Constr index did not match any type variant",
|
||||
"Constr index didn't match a type variant",
|
||||
)),
|
||||
)
|
||||
.lambda("subject")
|
||||
|
@ -4971,7 +4976,12 @@ fn opaque_value_in_datum() {
|
|||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))),
|
||||
),
|
||||
)
|
||||
.delayed_if_else(Term::unit(), Term::Error)
|
||||
.delayed_if_else(
|
||||
Term::unit(),
|
||||
Term::Error
|
||||
.apply(Term::Error.force())
|
||||
.trace(Term::string("Validator returned false")),
|
||||
)
|
||||
.lambda("_")
|
||||
.apply(
|
||||
Term::equals_integer()
|
||||
|
@ -5025,8 +5035,7 @@ fn opaque_value_in_datum() {
|
|||
)
|
||||
.lambda("dat_fields")
|
||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("param_0"))),
|
||||
Term::Error
|
||||
.trace(Term::string("Constr index did not match any type variant")),
|
||||
Term::Error.trace(Term::string("Constr index didn't match a type variant")),
|
||||
)
|
||||
.lambda("subject")
|
||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("param_0")))
|
||||
|
@ -5184,7 +5193,7 @@ fn expect_none() {
|
|||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("x")))
|
||||
.delayed_if_else(
|
||||
Term::bool(true),
|
||||
Term::Error.trace(Term::string("Expected on incorrect constructor variant.")),
|
||||
Term::Error.trace(Term::string("Expected on incorrect Constr variant")),
|
||||
)
|
||||
.lambda("x")
|
||||
.apply(Term::Constant(
|
||||
|
|
Loading…
Reference in New Issue