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()
|
.enumerate()
|
||||||
.rev()
|
.rev()
|
||||||
.for_each(|(index, (_, detree))| {
|
.for_each(|(index, (_, detree))| {
|
||||||
|
if index + cases.len() == 0 {
|
||||||
|
prev.push(Marker::Push(
|
||||||
|
ScopePath::Case(index + cases.len()),
|
||||||
|
detree,
|
||||||
|
));
|
||||||
|
} else {
|
||||||
prev.push(Marker::PopPush(
|
prev.push(Marker::PopPush(
|
||||||
ScopePath::Case(index + cases.len()),
|
ScopePath::Case(index + cases.len()),
|
||||||
detree,
|
detree,
|
||||||
));
|
));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
cases
|
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