customizable value calculation
[fedora-idea.git] / source / com / intellij / psi / impl / PsiConstantEvaluationHelperImpl.java
blob8aa7c87368188927a9aea3779eae43467c6187f2
1 package com.intellij.psi.impl;
3 import com.intellij.psi.*;
4 import com.intellij.psi.util.ConstantExpressionUtil;
6 import java.util.Set;
8 /**
9 * @author ven
11 public class PsiConstantEvaluationHelperImpl extends PsiConstantEvaluationHelper {
12 public Object computeConstantExpression(PsiExpression expression) {
13 return computeConstantExpression(expression, false);
16 public Object computeConstantExpression(PsiExpression expression, boolean throwExceptionOnOverflow) {
17 return ConstantExpressionEvaluator.computeConstantExpression(expression, throwExceptionOnOverflow);
20 @Override
21 public Object computeExpression(final PsiExpression expression,
22 final boolean throwExceptionOnOverflow,
23 final AuxEvaluator auxEvaluator) {
24 return ConstantExpressionEvaluator.computeConstantExpression(expression, null, throwExceptionOnOverflow, auxEvaluator);
27 public static Object computeCastTo(PsiExpression expression, PsiType castTo, Set<PsiVariable> visitedVars) {
28 Object value = ConstantExpressionEvaluator.computeConstantExpression(expression, visitedVars, false);
29 if(value == null) return null;
30 return ConstantExpressionUtil.computeCastTo(value, castTo);