Type variable support.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
index d2fa682..8e136f1 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/symbol/internal/impl/Util.java
@@ -55,10 +55,9 @@
try
{
// resolve the method's return type; don't erase parameters
- String retTypeSignature =
- TypeUtil.resolveTypeSignature
- (type, callMethod.getReturnType(), false);
-
+ String retTypeSignature = callMethod.getReturnType();
+
+ // if we have a type variable, try to parameter match it
if (Signature.getTypeSignatureKind(retTypeSignature) == Signature.TYPE_VARIABLE_SIGNATURE)
{
retTypeSignature = TypeUtil.matchTypeParameterToArgument
@@ -70,6 +69,12 @@
retTypeSignature = TypeConstants.TYPE_JAVAOBJECT;
}
}
+ // otherwise, try and resolve it in type
+ else
+ {
+ retTypeSignature = TypeUtil.resolveTypeSignature
+ (type, callMethod.getReturnType(), false);
+ }
final IPropertySymbol propSymbol =
SymbolFactory.eINSTANCE.createIPropertySymbol();