| modeltype ECORE "strict" uses ecore('http://www.eclipse.org/emf/2002/Ecore'); |
| |
| transformation overload_multipleParams(in eModel : ECORE, out outModel : ECORE); |
| |
| main() { |
| var c : EClass; |
| var dt : EDataType; |
| |
| var results := Sequence { |
| // resolving 'helper overloaded(cf : EClassifier, ne : ENamedElement, c: EClass) : String {' |
| overloaded(c.oclAsType(EClassifier), c.oclAsType(ENamedElement), c), |
| overloaded(dt, c.oclAsType(ENamedElement), c), |
| overloaded(dt, dt, c), |
| overloaded(dt, dt, null), |
| /*<warn>*/overloaded/*</warn>*/(c, c.oclAsType(ENamedElement), c), |
| /*<warn>*/overloaded/*</warn>*/(c.oclAsType(EClassifier), c, c), |
| /*<warn>*/overloaded/*</warn>*/(c, c, c), |
| /*<warn>*/overloaded/*</warn>*/(null, null, null), |
| /*<warn>*/overloaded/*</warn>*/(dt, null, null), |
| /*<warn>*/overloaded/*</warn>*/(null, null, dt), |
| /*<warn>*/overloaded/*</warn>*/(null, dt, null), |
| |
| // trying to resolve to 'overloaded(c: EClass, ne : ENamedElement, cf : EClassifier)' |
| overloaded(c, c.oclAsType(ENamedElement), c.oclAsType(EClassifier)), |
| overloaded(c, c.oclAsType(ENamedElement), dt), |
| overloaded(null, dt, dt), |
| /*<warn>*/overloaded/*</warn>*/(c, c.oclAsType(ENamedElement), null), |
| /*<warn>*/overloaded/*</warn>*/(c, null, c.oclAsType(EClassifier)), |
| /*<warn>*/overloaded/*</warn>*/(c, null, null), |
| /*<warn>*/overloaded/*</warn>*/(c, null, c), |
| /*<warn>*/overloaded/*</warn>*/(c, null, dt), |
| |
| // trying to resolve to 'overloaded(ne : ENamedElement, c: EClass, cf : EClassifier)' |
| overloaded(c.oclAsType(ENamedElement), c, c), |
| overloaded(c.oclAsType(ENamedElement), null, c), |
| overloaded(c.oclAsType(ENamedElement), null, null), |
| |
| /*<warn>*/overloaded/*</warn>*/(null, c, dt), |
| /*<warn>*/overloaded/*</warn>*/(null, dt, c), |
| /*<warn>*/overloaded/*</warn>*/(null, c, null), |
| /*<warn>*/overloaded/*</warn>*/(null, c, c), |
| /*<warn>*/overloaded/*</warn>*/(c, c.oclAsType(ENamedElement), c), |
| /*<warn>*/overloaded/*</warn>*/(c.oclAsType(EClassifier), c, c), |
| /*<warn>*/overloaded/*</warn>*/(c, c, c) |
| }; |
| |
| object EPackage { |
| name := "result"; |
| eClassifiers := results->collect(n | object EClass { name := n; }); |
| }; |
| } |
| |
| //1 |
| helper overloaded(cf : EClassifier, ne : ENamedElement, c: EClass) : String { |
| return "overloaded(cf : EClassifier, ne : ENamedElement ne, c: EClass) : String"; |
| } |
| //2 |
| helper overloaded(c: EClass, ne : ENamedElement, cf : EClassifier) : String { |
| return "overloaded(c: EClass, ne : ENamedElement, cf : EClassifier) : String"; |
| } |
| //3 |
| helper overloaded(ne : ENamedElement, c: EClass, cf : EClassifier) : String { |
| return "overloaded(ne : ENamedElement, c: EClass, cf : EClassifier)"; |
| } |