private List<Type> inferArgumentTypes() {
List arguments = invocation.arguments();
List<Type> types = new ArrayList<Type>();
for (int i = 0; i < arguments.size(); i++) {
Expression expression = (Expression) arguments.get(i);
ITypeInferer inferer = (ITypeInferer) Platform.getAdapterManager()
.getAdapter(expression, ITypeInferer.class);
types.add(inferer.inferType());
}
return types;
}