diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java index 57f5c9e8ed3..22544bde493 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetLineMarkerProvider.java @@ -39,6 +39,7 @@ import org.jetbrains.jet.asJava.LightClassUtil; import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor; import org.jetbrains.jet.lang.descriptors.Modality; import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.psi.psiUtil.PsiUtilPackage; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.ProjectRootsUtil; import org.jetbrains.jet.plugin.highlighter.markers.MarkersPackage; @@ -222,20 +223,6 @@ public class JetLineMarkerProvider implements LineMarkerProvider { } } - private static boolean isOverridableHeuristic(JetNamedDeclaration declaration) { - PsiElement parent = declaration.getParent(); - if (parent instanceof JetFile) return false; - if (parent instanceof JetClassBody && parent.getParent() instanceof JetClass) { - // Not all open or abstract declarations are actually overridable, but this is heuristic - return declaration.hasModifier(JetTokens.ABSTRACT_KEYWORD) || - declaration.hasModifier(JetTokens.OPEN_KEYWORD) || - declaration.hasModifier(JetTokens.OVERRIDE_KEYWORD) || - ((JetClass) parent.getParent()).isTrait(); - } - - return false; - } - public static boolean isImplemented(JetNamedDeclaration declaration) { if (declaration.hasModifier(JetTokens.ABSTRACT_KEYWORD)) return true; @@ -250,7 +237,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider { private static void collectOverridingPropertiesAccessors(Collection properties, Collection result) { Map mappingToJava = Maps.newHashMap(); for (JetProperty property : properties) { - if (isOverridableHeuristic(property)) { + if (PsiUtilPackage.isOverridable(property)) { LightClassUtil.PropertyAccessorsPsiMethods accessorsPsiMethods = LightClassUtil.getLightClassPropertyMethods(property); for (PsiMethod psiMethod : accessorsPsiMethods) { mappingToJava.put(psiMethod, property); @@ -281,7 +268,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider { private static void collectOverridingAccessors(Collection functions, Collection result) { Map mappingToJava = Maps.newHashMap(); for (JetNamedFunction function : functions) { - if (isOverridableHeuristic(function)) { + if (PsiUtilPackage.isOverridable(function)) { PsiMethod method = LightClassUtil.getLightClassMethod(function); if (method != null) { mappingToJava.put(method, function);