// Check that each expression type can promote to the argument type.
for (int i = 0; i < mArgExprs.size(); i++) {
Type exprType = mArgExprs.get(i).getType(symTab);
mExprTypes.add(exprType);
if (!exprType.promotesTo(abstractArgTypes.get(i))) {
throw new TypeCheckException("Invalid argument to function " + mFunctionName
+ ": argument " + i + " has type " + exprType + "; requires type "
+ abstractArgTypes.get(i));
}
}