Fix scoped path for list with tail cases only plus wild card fallback
This commit is contained in:
parent
18054eed1a
commit
eec08fcbd9
|
@ -428,10 +428,17 @@ impl<'a> DecisionTree<'a> {
|
|||
.enumerate()
|
||||
.rev()
|
||||
.for_each(|(index, (_, detree))| {
|
||||
prev.push(Marker::PopPush(
|
||||
ScopePath::Case(index + cases.len()),
|
||||
detree,
|
||||
));
|
||||
if index + cases.len() == 0 {
|
||||
prev.push(Marker::Push(
|
||||
ScopePath::Case(index + cases.len()),
|
||||
detree,
|
||||
));
|
||||
} else {
|
||||
prev.push(Marker::PopPush(
|
||||
ScopePath::Case(index + cases.len()),
|
||||
detree,
|
||||
));
|
||||
}
|
||||
});
|
||||
|
||||
cases
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
name = "aiken-lang/acceptance_test_006"
|
||||
version = "0.0.0"
|
|
@ -0,0 +1,20 @@
|
|||
test baz() {
|
||||
let assets =
|
||||
[
|
||||
("PolicyId1", [("AssetName", 20)]),
|
||||
("PolicyId2", [("AssetName1", 300), ("AssetName2", 4_000)]),
|
||||
("PolicyId3", []),
|
||||
]
|
||||
let is_empty_or_contains_policyid2 =
|
||||
when assets is {
|
||||
[] -> True
|
||||
[_head, (p, [_, (a, q), ..] as tokens), ..] -> and {
|
||||
tokens == [("AssetName1", 300), ("AssetName2", 4000)],
|
||||
p == "PolicyId2",
|
||||
a == "AssetName2",
|
||||
q >= 4_000,
|
||||
}
|
||||
_ -> False
|
||||
}
|
||||
is_empty_or_contains_policyid2
|
||||
}
|
Loading…
Reference in New Issue