fix: scope issue with expect and function calls

Add acceptance test 72
This commit is contained in:
Kasey White 2023-03-03 00:48:01 -05:00 committed by Lucas
parent 60bc2ab61d
commit f230af436c
4 changed files with 77 additions and 0 deletions

View File

@ -1812,6 +1812,10 @@ impl<'a> CodeGenerator<'a> {
&& !tipo.is_data() && !tipo.is_data()
{ {
let mut assert_vec = vec![]; let mut assert_vec = vec![];
let mut scope = scope;
scope.push(self.id_gen.next());
self.recursive_assert_pattern( self.recursive_assert_pattern(
pattern, pattern,
&mut assert_vec, &mut assert_vec,

View File

@ -0,0 +1,13 @@
# This file was generated by Aiken
# You typically do not need to edit this file
[[requirements]]
name = "aiken-lang/stdlib"
version = "main"
source = "github"
[[packages]]
name = "aiken-lang/stdlib"
version = "main"
requirements = []
source = "github"

View File

@ -0,0 +1,7 @@
name = "aiken-lang/acceptance_test_072"
version = "0.0.0"
[[dependencies]]
name = 'aiken-lang/stdlib'
version = 'main'
source = 'github'

View File

@ -0,0 +1,53 @@
use aiken/transaction.{Datum, InlineDatum}
type OwnerInfo {
pkh: ByteArray,
sc: ByteArray,
}
type TokenInfo {
pid: ByteArray,
tkn: ByteArray,
amt: Int,
}
type SwapInfo {
slip: Int,
}
type OtherDatum {
owner: OwnerInfo,
have: TokenInfo,
want: TokenInfo,
info: SwapInfo,
}
type Output {
datum: Datum,
}
fn find_outbound_datum(possible_output: Option<Output>) -> Data {
when possible_output is {
Some(possible_output) ->
when possible_output.datum is {
InlineDatum(outbound_datum) -> outbound_datum
_ -> error @"expected outbound inline datum"
}
None -> error @"no outbound datum found"
}
}
fn datum_a_cont() -> OtherDatum {
let owner: OwnerInfo = OwnerInfo { pkh: #"", sc: #"" }
let have: TokenInfo = TokenInfo { pid: #"", tkn: #"", amt: 100 }
let want: TokenInfo = TokenInfo { pid: #"acab", tkn: #"beef", amt: 50 }
let info: SwapInfo = SwapInfo { slip: 40 }
OtherDatum { owner, have, want, info }
}
test foo() {
let outbound_datum = InlineDatum(datum_a_cont())
let outbound_output = Some(Output { datum: outbound_datum })
expect outbound_datum: OtherDatum = find_outbound_datum(outbound_output)
outbound_datum == datum_a_cont()
}