blob: 6e5436c0ac020a35e4cd215f9392d79ad1009af4 [file] [log] [blame]
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();
}