}
if (stmt.containsInvokeExpr()) {
InvokeExpr invoke = stmt.getInvokeExpr();
for (int i=0; i<invoke.getArgCount(); i++) {
if (box == invoke.getArgBox(i)) {
stmt.addTag(new StringTag("Type mismatch: cannot convert argument number " + (i+1) + " from " + from + " to " + analyzer.getDescription(a)));
}
}
}
else if (stmt instanceof IdentityStmt) {
IdentityStmt iStmt = (IdentityStmt)stmt;
Value rvalue = iStmt.getRightOp();
if (rvalue instanceof ParameterRef) {
ParameterRef parameter = (ParameterRef)rvalue;
int index = parameter.getIndex();
stmt.addTag(new StringTag("Type mismatch: cannot convert parameter number " + (index + 1) + " from " + from + " to " + analyzer.getDescription(a)));
}
}
else {
stmt.addTag(new StringTag("Type mismatch: cannot convert from " + from + " to " + analyzer.getDescription(a)));
}
}
}
}