org.jetbrains.kotlin.resolve
Class OverrideResolver

java.lang.Object
  extended by org.jetbrains.kotlin.resolve.OverrideResolver

public class OverrideResolver
extends java.lang.Object


Constructor Summary
OverrideResolver(BindingTrace trace)
           
 
Method Summary
 void check(TopDownAnalysisContext c)
           
static kotlin.jvm.functions.Function1<CallableMemberDescriptor,kotlin.Unit> createCannotInferVisibilityReporter(BindingTrace trace)
           
static
<D extends CallableDescriptor>
java.util.Set<D>
filterOutOverridden(java.util.Set<D> candidateSet)
           
static
<D> java.util.Set<D>
filterOutOverridden(java.util.Set<D> candidateSet, com.intellij.util.Function<? super D,? extends CallableDescriptor> transform)
           
static
<D> java.util.Set<D>
filterOutOverriding(java.util.Set<D> candidateSet)
           
static void generateOverridesInAClass(ClassDescriptor classDescriptor, java.util.Collection<CallableMemberDescriptor> membersFromCurrent, OverridingStrategy strategy)
           
static
<D extends CallableMemberDescriptor>
java.util.Set<D>
getDeepestSuperDeclarations(D functionDescriptor)
           
static
<D extends CallableMemberDescriptor>
java.util.Collection<D>
getDirectlyOverriddenDeclarations(D descriptor)
           
static java.util.Set<CallableMemberDescriptor> getMissingImplementations(ClassDescriptor classDescriptor)
           
static java.util.Set<CallableMemberDescriptor> getOverriddenDeclarations(CallableMemberDescriptor descriptor)
           
static boolean isPropertyTypeOkForOverride(PropertyDescriptor superDescriptor, PropertyDescriptor subDescriptor)
           
static boolean isReturnTypeOkForOverride(CallableDescriptor superDescriptor, CallableDescriptor subDescriptor)
           
static
<D extends CallableDescriptor>
boolean
overrides(D f, D g)
           
static void resolveUnknownVisibilities(java.util.Collection<? extends CallableMemberDescriptor> descriptors, BindingTrace trace)
           
static boolean shouldReportParameterNameOverrideWarning(ValueParameterDescriptor parameterFromSubclass, ValueParameterDescriptor parameterFromSuperclass)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OverrideResolver

public OverrideResolver(@NotNull
                        BindingTrace trace)
Method Detail

check

public void check(@NotNull
                  TopDownAnalysisContext c)

generateOverridesInAClass

public static void generateOverridesInAClass(@NotNull
                                             ClassDescriptor classDescriptor,
                                             @NotNull
                                             java.util.Collection<CallableMemberDescriptor> membersFromCurrent,
                                             @NotNull
                                             OverridingStrategy strategy)

resolveUnknownVisibilities

public static void resolveUnknownVisibilities(@NotNull
                                              java.util.Collection<? extends CallableMemberDescriptor> descriptors,
                                              @NotNull
                                              BindingTrace trace)

createCannotInferVisibilityReporter

@NotNull
public static kotlin.jvm.functions.Function1<CallableMemberDescriptor,kotlin.Unit> createCannotInferVisibilityReporter(@NotNull
                                                                                                                               BindingTrace trace)

filterOutOverridden

@NotNull
public static <D extends CallableDescriptor> java.util.Set<D> filterOutOverridden(@NotNull
                                                                                          java.util.Set<D> candidateSet)

filterOutOverriding

@NotNull
public static <D> java.util.Set<D> filterOutOverriding(@NotNull
                                                               java.util.Set<D> candidateSet)

filterOutOverridden

@NotNull
public static <D> java.util.Set<D> filterOutOverridden(@NotNull
                                                               java.util.Set<D> candidateSet,
                                                               @NotNull
                                                               com.intellij.util.Function<? super D,? extends CallableDescriptor> transform)

overrides

public static <D extends CallableDescriptor> boolean overrides(@NotNull
                                                               D f,
                                                               @NotNull
                                                               D g)

getMissingImplementations

@NotNull
public static java.util.Set<CallableMemberDescriptor> getMissingImplementations(@NotNull
                                                                                        ClassDescriptor classDescriptor)

getOverriddenDeclarations

@NotNull
public static java.util.Set<CallableMemberDescriptor> getOverriddenDeclarations(@NotNull
                                                                                        CallableMemberDescriptor descriptor)
Returns:
overridden real descriptors (not fake overrides). Note that all usages of this method should be followed by calling filterOutOverridden(java.util.Set) or filterOutOverriding(java.util.Set), because some of the declarations can override the other TODO: merge this method with filterOutOverridden

isReturnTypeOkForOverride

public static boolean isReturnTypeOkForOverride(@NotNull
                                                CallableDescriptor superDescriptor,
                                                @NotNull
                                                CallableDescriptor subDescriptor)

isPropertyTypeOkForOverride

public static boolean isPropertyTypeOkForOverride(@NotNull
                                                  PropertyDescriptor superDescriptor,
                                                  @NotNull
                                                  PropertyDescriptor subDescriptor)

shouldReportParameterNameOverrideWarning

public static boolean shouldReportParameterNameOverrideWarning(@NotNull
                                                               ValueParameterDescriptor parameterFromSubclass,
                                                               @NotNull
                                                               ValueParameterDescriptor parameterFromSuperclass)

getDirectlyOverriddenDeclarations

@NotNull
public static <D extends CallableMemberDescriptor> java.util.Collection<D> getDirectlyOverriddenDeclarations(@NotNull
                                                                                                                     D descriptor)

getDeepestSuperDeclarations

@NotNull
@ReadOnly
public static <D extends CallableMemberDescriptor> java.util.Set<D> getDeepestSuperDeclarations(@NotNull
                                                                                                                 D functionDescriptor)