mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-131450 Debugger: Evaluate: multidimensional arrays creation expression can't be processed
This commit is contained in:
+1
-1
@@ -1249,7 +1249,7 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder {
|
||||
}
|
||||
}
|
||||
myResult = new ArrayInitializerEvaluator(evaluators);
|
||||
if (!(expression.getParent() instanceof PsiNewExpression)) {
|
||||
if (type != null && !(expression.getParent() instanceof PsiNewExpression)) {
|
||||
myResult = new NewArrayInstanceEvaluator(new TypeEvaluator(JVMNameUtil.getJVMQualifiedName(type)),
|
||||
null,
|
||||
myResult);
|
||||
|
||||
+11
-5
@@ -95,12 +95,18 @@ class NewArrayInstanceEvaluator implements Evaluator {
|
||||
int length = arrayReference.length();
|
||||
for (int idx = 0; idx < length; idx++) {
|
||||
ArrayReference componentArray = (ArrayReference)arrayReference.getValue(idx);
|
||||
Object[] componentArrayValues = (Object[])values[idx];
|
||||
if (componentArray == null) {
|
||||
componentArray = debugProcess.newInstance(componentType, componentArrayValues.length);
|
||||
arrayReference.setValue(idx, componentArray);
|
||||
Object value = values[idx];
|
||||
if (value instanceof Value) {
|
||||
arrayReference.setValue(idx, (Value)value);
|
||||
}
|
||||
else {
|
||||
Object[] componentArrayValues = (Object[])value;
|
||||
if (componentArray == null) {
|
||||
componentArray = debugProcess.newInstance(componentType, componentArrayValues.length);
|
||||
arrayReference.setValue(idx, componentArray);
|
||||
}
|
||||
setInitialValues(componentArray, componentArrayValues, context);
|
||||
}
|
||||
setInitialValues(componentArray, componentArrayValues, context);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user