epsilon icon indicating copy to clipboard operation
epsilon copied to clipboard

Variable leakage in EPL

Open kolovos opened this issue 2 years ago • 0 comments
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 
}

kolovos avatar Nov 26 '22 19:11 kolovos