Move getExpressionType method to utils

This commit is contained in:
Natalia.Ukhorskaya
2013-02-14 15:27:12 +04:00
parent 814ca0385a
commit af0b6df2b4
2 changed files with 21 additions and 12 deletions
@@ -2,7 +2,15 @@ package org.jetbrains.jet.plugin.codeInsight.surroundWith;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetBlockExpression;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
public class KotlinSurrounderUtils {
@@ -13,4 +21,11 @@ public class KotlinSurrounderUtils {
PsiElement lBrace = block.getFirstChild();
block.addRangeAfter(statements[0], statements[statements.length - 1], lBrace);
}
@Nullable
public static JetType getExpressionType(JetExpression expression) {
ResolveSession resolveSession = WholeProjectAnalyzerFacade.getLazyResolveSessionForFile((JetFile) expression.getContainingFile());
BindingContext expressionBindingContext = ResolveSessionUtils.resolveToExpression(resolveSession, expression);
return expressionBindingContext.get(BindingContext.EXPRESSION_TYPE, expression);
}
}
@@ -2,22 +2,18 @@ package org.jetbrains.jet.plugin.codeInsight.surroundWith.expression;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.CodeInsightUtilBase;
import com.intellij.lang.surroundWith.Surrounder;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiElement;
import com.intellij.psi.codeStyle.CodeStyleManager;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetParenthesizedExpression;
import org.jetbrains.jet.lang.psi.JetPrefixExpression;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
import org.jetbrains.jet.plugin.codeInsight.surroundWith.KotlinSurrounderUtils;
public class KotlinNotSurrounder extends KotlinExpressionSurrounder {
@Override
@@ -27,9 +23,7 @@ public class KotlinNotSurrounder extends KotlinExpressionSurrounder {
@Override
public boolean isApplicable(@NotNull JetExpression expression) {
ResolveSession resolveSession = WholeProjectAnalyzerFacade.getLazyResolveSessionForFile((JetFile) expression.getContainingFile());
BindingContext expressionBindingContext = ResolveSessionUtils.resolveToExpression(resolveSession, expression);
JetType type = expressionBindingContext.get(BindingContext.EXPRESSION_TYPE, expression);
JetType type = KotlinSurrounderUtils.getExpressionType(expression);
return KotlinBuiltIns.getInstance().getBooleanType().equals(type);
}