Make JetSimpleNameExpression#getReceiverExpression extension function and move it to util class

This commit is contained in:
Pavel V. Talanov
2014-03-26 17:29:55 +04:00
parent e84eebec5b
commit 43e22ab5c1
7 changed files with 48 additions and 41 deletions
@@ -36,6 +36,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.asJava.JavaElementFinder;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.ImportPath;
@@ -289,7 +290,7 @@ public class JetShortNamesCache extends PsiShortNamesCache {
@NotNull GlobalSearchScope searchScope
) {
BindingContext context = resolveSession.resolveToElement(expression);
JetExpression receiverExpression = expression.getReceiverExpression();
JetExpression receiverExpression = PsiUtilPackage.getReceiverExpression(expression);
if (receiverExpression == null) {
return Collections.emptyList();
}
@@ -60,6 +60,9 @@ import org.jetbrains.jet.lang.psi.JetTypeReference
import com.intellij.util.containers.ContainerUtil
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils
import org.jetbrains.jet.plugin.imports.*
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor
import org.jetbrains.jet.lang.psi.psiUtil.getReceiverExpression
import org.jetbrains.jet.utils.*
//NOTE: this class is based on CopyPasteReferenceProcessor and JavaCopyPasteReferenceProcessor
public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor<ReferenceTransferableData?> {
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastUtils;
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
@@ -51,7 +52,7 @@ public final class TipsManager {
@NotNull JetSimpleNameExpression expression,
@NotNull BindingContext context
) {
JetExpression receiverExpression = expression.getReceiverExpression();
JetExpression receiverExpression = PsiUtilPackage.getReceiverExpression(expression);
PsiElement parent = expression.getParent();
boolean inPositionForCompletionWithReceiver = parent instanceof JetCallExpression || parent instanceof JetQualifiedExpression;
if (receiverExpression != null && inPositionForCompletionWithReceiver) {
@@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import org.jetbrains.jet.lang.descriptors.CallableDescriptor
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression
import org.jetbrains.jet.lang.psi.psiUtil.getReceiverExpression
import com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.types.JetType