diff options
Diffstat (limited to 'org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java')
-rw-r--r-- | org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java b/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java index 61a53f8f7..5e97ea7b7 100644 --- a/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java +++ b/org.eclipse.emf.ecore.xcore/src/org/eclipse/emf/ecore/xcore/typing/XcoreTypeProvider.java @@ -1,5 +1,6 @@ package org.eclipse.emf.ecore.xcore.typing; +import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.xcore.XOperation; import org.eclipse.emf.ecore.xcore.XcorePackage; @@ -16,6 +17,16 @@ public class XcoreTypeProvider extends XbaseTypeProvider @Inject private XcoreMapper mapper; + @Override + protected JvmTypeReference expectedTypeDispatcherInvoke(EObject container, EReference reference, int index, + boolean rawType) + { + if (container instanceof XOperation) { + return _expectedType((XOperation)container, reference, index, rawType); + } + return super.expectedTypeDispatcherInvoke(container, reference, index, rawType); + } + protected JvmTypeReference _expectedType(XOperation expr, EReference reference, int index, boolean rawType) { if (reference == XcorePackage.Literals.XOPERATION__BODY) { |