epsilon
epsilon copied to clipboard
Variable leakage in EPL
trafficstars
In this example, referring to p1 in the TaskLeader pattern should throw an exception but it doesn't because presumable the variable leaks from the Collaborators pattern.
// Find pairs of people that work
// on at least one common task
pattern Collaborators
p1, p2 : Person {
match: Task.all.exists(t|t.effort.person.
includesAll(Sequence{p1, p2}))
}
// Pair tasks with their leaders
pattern TaskLeader
t : Task,
p : Person from: t.effort.person {
match: t.effort.sortBy(e|-e.percentage).
first()?.person = p1
}