mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-67963 Autoboxing not working for array initializers in debugger evaluation
This commit is contained in:
+5
-1
@@ -1194,11 +1194,15 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder {
|
||||
public void visitArrayInitializerExpression(PsiArrayInitializerExpression expression) {
|
||||
PsiExpression[] initializers = expression.getInitializers();
|
||||
Evaluator[] evaluators = new Evaluator[initializers.length];
|
||||
final PsiType type = expression.getType();
|
||||
boolean primitive = type instanceof PsiArrayType && ((PsiArrayType)type).getComponentType() instanceof PsiPrimitiveType;
|
||||
for (int idx = 0; idx < initializers.length; idx++) {
|
||||
PsiExpression initializer = initializers[idx];
|
||||
initializer.accept(this);
|
||||
if (myResult != null) {
|
||||
evaluators[idx] = new DisableGC(handleUnaryNumericPromotion(initializer.getType(), myResult));
|
||||
final Evaluator coerced =
|
||||
primitive ? handleUnaryNumericPromotion(initializer.getType(), myResult) : new BoxingEvaluator(myResult);
|
||||
evaluators[idx] = new DisableGC(coerced);
|
||||
}
|
||||
else {
|
||||
throwEvaluateException(DebuggerBundle.message("evaluation.error.invalid.expression", initializer.getText()));
|
||||
|
||||
Reference in New Issue
Block a user