public void typeMismatchError(TypeBinding actualType, TypeBinding expectedType, ASTNode location) {
	this.handle(
		IProblem.TypeMismatch,
		new String[] {new String(actualType.readableName()), new String(expectedType.readableName())},
		new String[] {new String(actualType.shortReadableName()), new String(expectedType.shortReadableName())},
		location.sourceStart,
		location.sourceEnd);
}
//private String typesAsString(boolean isVarargs, TypeBinding[] types, boolean makeShort) {
//	StringBuffer buffer = new StringBuffer(10);
//	for (int i = 0, length = types.length; i < length; i++) {
//		if (i != 0)
//			buffer.append(", "); //$NON-NLS-1$
//		TypeBinding type = types[i];
//		boolean isVarargType = isVarargs && i == length-1;
//		if (isVarargType) type = ((ArrayBinding)type).elementsType();
//		buffer.append(new String(makeShort ? type.shortReadableName() : type.readableName()));
//		if (isVarargType) buffer.append("..."); //$NON-NLS-1$
//	}
//	return buffer.toString();
//}