Made proper highlighting for variables invoked as functions.
This commit is contained in:
@@ -18,10 +18,7 @@ package org.jetbrains.jet.plugin.highlighter;
|
|||||||
|
|
||||||
import com.intellij.lang.annotation.AnnotationHolder;
|
import com.intellij.lang.annotation.AnnotationHolder;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||||
@@ -78,7 +75,7 @@ public class FunctionsHighlightingVisitor extends AfterAnalysisHighlightingVisit
|
|||||||
holder.createInfoAnnotation(callee, null).setTextAttributes(
|
holder.createInfoAnnotation(callee, null).setTextAttributes(
|
||||||
JetHighlightingColors.CONSTRUCTOR_CALL);
|
JetHighlightingColors.CONSTRUCTOR_CALL);
|
||||||
}
|
}
|
||||||
else if (calleeDescriptor instanceof FunctionDescriptor) {
|
else if (calleeDescriptor instanceof FunctionDescriptor && !(calleeDescriptor instanceof VariableAsFunctionDescriptor)) {
|
||||||
FunctionDescriptor fun = (FunctionDescriptor)calleeDescriptor;
|
FunctionDescriptor fun = (FunctionDescriptor)calleeDescriptor;
|
||||||
if (fun.getReceiverParameter() != ReceiverDescriptor.NO_RECEIVER) {
|
if (fun.getReceiverParameter() != ReceiverDescriptor.NO_RECEIVER) {
|
||||||
holder.createInfoAnnotation(callee, null).setTextAttributes(
|
holder.createInfoAnnotation(callee, null).setTextAttributes(
|
||||||
|
|||||||
@@ -19,10 +19,7 @@ package org.jetbrains.jet.plugin.highlighter;
|
|||||||
import com.intellij.lang.annotation.AnnotationHolder;
|
import com.intellij.lang.annotation.AnnotationHolder;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||||
@@ -36,6 +33,9 @@ class PropertiesHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
|||||||
@Override
|
@Override
|
||||||
public void visitSimpleNameExpression(JetSimpleNameExpression expression) {
|
public void visitSimpleNameExpression(JetSimpleNameExpression expression) {
|
||||||
DeclarationDescriptor target = bindingContext.get(BindingContext.REFERENCE_TARGET, expression);
|
DeclarationDescriptor target = bindingContext.get(BindingContext.REFERENCE_TARGET, expression);
|
||||||
|
if (target instanceof VariableAsFunctionDescriptor) {
|
||||||
|
target = ((VariableAsFunctionDescriptor)target).getVariableDescriptor();
|
||||||
|
}
|
||||||
if (!(target instanceof PropertyDescriptor)) {
|
if (!(target instanceof PropertyDescriptor)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,7 @@ package org.jetbrains.jet.plugin.highlighter;
|
|||||||
import com.intellij.lang.annotation.AnnotationHolder;
|
import com.intellij.lang.annotation.AnnotationHolder;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.LocalVariableDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
@@ -88,6 +85,11 @@ class VariablesHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void highlightVariable(@NotNull PsiElement elementToHighlight, @NotNull DeclarationDescriptor descriptor) {
|
private void highlightVariable(@NotNull PsiElement elementToHighlight, @NotNull DeclarationDescriptor descriptor) {
|
||||||
|
if (descriptor instanceof VariableAsFunctionDescriptor) {
|
||||||
|
descriptor = ((VariableAsFunctionDescriptor)descriptor).getVariableDescriptor();
|
||||||
|
//noinspection ConstantConditions
|
||||||
|
if (descriptor == null) return;
|
||||||
|
}
|
||||||
if (descriptor instanceof VariableDescriptor) {
|
if (descriptor instanceof VariableDescriptor) {
|
||||||
VariableDescriptor variableDescriptor = (VariableDescriptor) descriptor;
|
VariableDescriptor variableDescriptor = (VariableDescriptor) descriptor;
|
||||||
if (variableDescriptor.isVar()) {
|
if (variableDescriptor.isVar()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user