| modeltype Ecore uses "http://www.eclipse.org/emf/2002/Ecore"; |
| |
| transformation bug427348; |
| |
| main() { |
| var context = object EClass{}; |
| |
| do { |
| var l : List(Integer); |
| var c : Collection(EClass) := Sequence{1..10}->xcollect(i | context.map m1(i.addToList(l))); |
| assert fatal (c->asSet()->size() = 10); |
| }; |
| |
| do { |
| var c : Collection(EClass) := Sequence{11..20}->xcollect(i | context.map m1(List{i})); |
| assert fatal (c->asSet()->size() = 10); |
| }; |
| |
| do { |
| var c : Collection(EClass) := Sequence{21..30}->xcollect(i | context.map m1(List{99})); |
| assert fatal (c->asSet()->size() = 1); |
| }; |
| |
| do { |
| var c : Collection(EClass) := Sequence{1..10}->xcollect(i | context.map m1(Sequence{i})); |
| assert fatal (c->asSet()->size() = 10); |
| }; |
| |
| do { |
| var c : Collection(EClass) := Sequence{21..30}->xcollect(i | context.map m1(Sequence{99})); |
| assert fatal (c->asSet()->size() = 1); |
| }; |
| |
| } |
| |
| query Integer::addToList(inout list : List(Integer)) : List(Integer) { |
| list->add(self); |
| return list; |
| } |
| |
| mapping EClass::m1(i : List(Integer)) : EClass { |
| name := self.name + i->max().toString(); |
| } |