Closed joey-coleman closed 11 years ago
There is nothing (not easily) we can do about this because Eclipse treats them as the same internally. It is probably something they added for future versions:
See org.eclipse.debug.internal.ui.model.elements.ExpressionLabelProvider
/**
* Returns text for a specific columns for the expression/value.
*
* @param expression expression to retrieve text for
* @param value the value associated with the variable
* @param context presentation context specifying how to display the text
* @param columnId the column to get the text for
* @return the label text
* @throws CoreException Error while retrieving data from model.
*
* @since 3.6
*/
private String getColumnText(IExpression expression, IValue value, IPresentationContext context, String columnId) throws CoreException {
if (IDebugUIConstants.COLUMN_ID_VARIABLE_NAME.equals(columnId)) {
return getExpressionName(expression, context);
} else if (IDebugUIConstants.COLUMN_ID_VARIABLE_VALUE.equals(columnId)) {
return getExpressionValueText(expression, value, context);
} else if (IDebugUIConstants.COLUMN_ID_VARIABLE_TYPE.equals(columnId) ||
IDebugUIConstants.COLUMN_ID_VARIABLE_VALUE_TYPE.equals(columnId))
{
if (value != null) {
return getValueTypeName(null, value, context);
}
}
return null;
}
If you stop at a breakpoint and evaluate an expression in the Expressions view, you can also opt to show the actual and declared types (Layout/Select Columns). The actual type is reasonably the most specific type that includes the value - eg. 123 is a nat1. But the declared type is harder to work out, and seems to be showing the same value as the actual type anyway (eg. if it is a single variable, the 123 may be a real or real|bool; if it is an expression, I'm not sure what the declared type should be!).
It might be easiest if we disable the declared type column and just allow actual type to be shown?