diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java index bd6c2d4f52d5..236aedce2581 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java @@ -1058,7 +1058,7 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder { } @Override - public void visitNewExpression(PsiNewExpression expression) { + public void visitNewExpression(final PsiNewExpression expression) { PsiType expressionPsiType = expression.getType(); if (expressionPsiType instanceof PsiArrayType) { Evaluator dimensionEvaluator = null; @@ -1115,8 +1115,7 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder { initializerEvaluator ); } - else { // must be a class ref - LOG.assertTrue(expressionPsiType instanceof PsiClassType); + else if (expressionPsiType instanceof PsiClassType){ // must be a class ref PsiClass aClass = ((PsiClassType)expressionPsiType).resolve(); if(aClass instanceof PsiAnonymousClass) { throwEvaluateException(DebuggerBundle.message("evaluation.error.anonymous.class.evaluation.not.supported")); @@ -1151,6 +1150,14 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder { argumentEvaluators ); } + else { + if (expressionPsiType != null) { + throwEvaluateException("Unsupported expression type: " + expressionPsiType.getPresentableText()); + } + else { + throwEvaluateException("Unknown type for expression: " + expression.getText()); + } + } } @Override