fix: scope issue with expect and function calls
Add acceptance test 72
This commit is contained in:
parent
60bc2ab61d
commit
f230af436c
|
@ -1812,6 +1812,10 @@ impl<'a> CodeGenerator<'a> {
|
|||
&& !tipo.is_data()
|
||||
{
|
||||
let mut assert_vec = vec![];
|
||||
let mut scope = scope;
|
||||
|
||||
scope.push(self.id_gen.next());
|
||||
|
||||
self.recursive_assert_pattern(
|
||||
pattern,
|
||||
&mut assert_vec,
|
||||
|
|
|
@ -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"
|
|
@ -0,0 +1,7 @@
|
|||
name = "aiken-lang/acceptance_test_072"
|
||||
version = "0.0.0"
|
||||
|
||||
[[dependencies]]
|
||||
name = 'aiken-lang/stdlib'
|
||||
version = 'main'
|
||||
source = 'github'
|
|
@ -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()
|
||||
}
|
Loading…
Reference in New Issue