diff --git a/crates/aiken-lang/src/tipo.rs b/crates/aiken-lang/src/tipo.rs index fc3e2e0c..f8b1e6f7 100644 --- a/crates/aiken-lang/src/tipo.rs +++ b/crates/aiken-lang/src/tipo.rs @@ -719,7 +719,14 @@ pub fn get_arg_type_name(tipo: &Type) -> String { let inner_args = elems.iter().map(|arg| get_arg_type_name(arg)).collect_vec(); inner_args.join("_") } - _ => unreachable!(), + Type::Pair { fst, snd, .. } => { + let inner_args = [fst, snd] + .iter() + .map(|arg| get_arg_type_name(arg)) + .collect_vec(); + inner_args.join("_") + } + _ => unreachable!("WTF {:#?}", tipo), } } diff --git a/examples/acceptance_tests/119/aiken.toml b/examples/acceptance_tests/119/aiken.toml new file mode 100644 index 00000000..ccab61e4 --- /dev/null +++ b/examples/acceptance_tests/119/aiken.toml @@ -0,0 +1,19 @@ +name = "aiken-lang/104" +version = "0.0.0" +license = "Apache-2.0" +description = "Aiken contracts for project 'aiken-lang/104'" + +[repository] +user = "aiken-lang" +project = "104" +platform = "github" + +[[dependencies]] +name = "aiken-lang/stdlib" +version = "main" +source = "github" + +[[dependencies]] +name = "aiken-lang/fuzz" +version = "main" +source = "github" diff --git a/examples/acceptance_tests/119/validators/tests.ak b/examples/acceptance_tests/119/validators/tests.ak new file mode 100644 index 00000000..b19ddee9 --- /dev/null +++ b/examples/acceptance_tests/119/validators/tests.ak @@ -0,0 +1,12 @@ +pub type Thing = + Option>> + +validator foo_3 { + mint(redeemer: Thing, _policy_, _tx) { + redeemer == redeemer + } + + else(_) { + fail + } +}