Fix regression in testX12_resultLifting2 (incompatible return types of callin method after copy)
- now that methods may be copied before they have types adjusted we need to manually wrap the
  return type before storing it into the MethodModel
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
index 31583f8..bb557a6 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
@@ -1049,9 +1049,12 @@
 	    		newMethodDecl.isTSuper = true;
 	    	if (method.model != null && method.model.callinFlags != 0)
 	    		MethodModel.addCallinFlag(newMethodDecl, method.model.callinFlags);
-	    	if (method.isAnyCallin())
-	    		MethodModel.saveReturnType(newMethodDecl.binding, MethodModel.getReturnType(method));
-	    	else {
+	    	if (method.isAnyCallin()) {
+	    		TypeBinding inheritedSrcReturn = MethodModel.getReturnType(method);
+	    		if (inheritedSrcReturn.isRole())
+	    			inheritedSrcReturn = RoleTypeCreator.maybeWrapUnqualifiedRoleType(inheritedSrcReturn, targetRoleDecl.binding);
+				MethodModel.saveReturnType(newMethodDecl.binding, inheritedSrcReturn);
+	    	} else {
 			    if (   !method.isPublic()                  // non-public source-level class method?
 			    	&& !method.isConstructor()
 			    	&& !targetRoleDecl.isInterface()