return returnType;
}
// Resolves type variables by inspecting call parameters
private void resolveTypeVariables() {
MetaParameterizedType gSuperClass = inputType.getGenericSuperClass();
MetaClass superClass = inputType.getSuperClass();
if (superClass != null && superClass.getTypeParameters() != null & superClass.getTypeParameters().length > 0
&& gSuperClass != null && gSuperClass.getTypeParameters().length > 0) {
for (int i = 0; i < superClass.getTypeParameters().length; i++) {
String varName = superClass.getTypeParameters()[i].getName();
if (gSuperClass.getTypeParameters()[i] instanceof MetaClass) {
typeVariables.put(varName, (MetaClass) gSuperClass.getTypeParameters()[i]);
}
else if (gSuperClass.getTypeParameters()[i] instanceof MetaWildcardType) {
typeVariables.put(varName, MetaClassFactory.get(Object.class));
}
else {
MetaClass clazz = writer.getTypeParm(varName);
if (clazz != null) {