if (fc.getReturnTemp()!=null)
output.print(generateTemp(fm,fc.getReturnTemp())+"=");
+
+ /* Do we need to do virtual dispatch? */
if (md.isStatic()||md.getReturnType()==null||singleCall(fc.getThis().getType().getClassDesc(),md)) {
output.print(cn.getSafeSymbol()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor());
} else {
public String toString() {
String st="";
+ String type="";
+ if (cd!=null)
+ type=cd+".";
if (returntype!=null)
- st=modifier.toString()+returntype.toString()+" "+identifier+"(";
+ st=modifier.toString()+returntype.toString()+" "+type+identifier+"(";
else
- st=modifier.toString()+" "+identifier+"(";
+ st=modifier.toString()+" "+type+identifier+"(";
for(int i=0;i<params.size();i++) {
st+=getParamType(i)+" "+getParamName(i);
if ((i+1)!=params.size())
}
if (!typeutil.isSuperorType(md2.getReturnType(), md1.getReturnType()))
return false;
+
+ if (!typeutil.isSuperorType(md2.getClassDesc(), md1.getClassDesc()))
+ return false;
+
return true;
}
checkExpressionNode(md, nametable, min.getExpression(), null);
}
}
-
}
throw new Error();
}
-
- private boolean isSuperorType(ClassDescriptor possiblesuper, ClassDescriptor cd2) {
+
+ public boolean isSuperorType(ClassDescriptor possiblesuper, ClassDescriptor cd2) {
if (possiblesuper==cd2)
return true;
else