org.jetbrains.kotlin.resolve
Class OverridingUtil

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

public class OverridingUtil
extends java.lang.Object


Nested Class Summary
static class OverridingUtil.OverrideCompatibilityInfo
           
 
Field Summary
static OverridingUtil DEFAULT
           
 
Method Summary
static OverridingUtil createWithEqualityAxioms(KotlinTypeChecker.TypeConstructorEquality equalityAxioms)
           
static
<H> java.util.Collection<H>
extractMembersOverridableInBothWays(H overrider, java.util.Collection<H> extractFrom, kotlin.jvm.functions.Function1<H,CallableDescriptor> descriptorByHandle, kotlin.jvm.functions.Function1<H,kotlin.Unit> onConflict)
           
static Visibility findMaxVisibility(java.util.Collection<? extends CallableMemberDescriptor> descriptors)
           
static void generateOverridesInFunctionGroup(Name name, java.util.Collection<? extends CallableMemberDescriptor> membersFromSupertypes, java.util.Collection<? extends CallableMemberDescriptor> membersFromCurrent, ClassDescriptor current, OverridingStrategy strategy)
           
static OverridingUtil.OverrideCompatibilityInfo getBasicOverridabilityProblem(CallableDescriptor superDescriptor, CallableDescriptor subDescriptor)
           
static OverridingUtil.OverrideCompatibilityInfo.Result getBothWaysOverridability(CallableDescriptor overriderDescriptor, CallableDescriptor candidateDescriptor)
           
static boolean isMoreSpecific(CallableDescriptor a, CallableDescriptor b)
           
 OverridingUtil.OverrideCompatibilityInfo isOverridableBy(CallableDescriptor superDescriptor, CallableDescriptor subDescriptor, ClassDescriptor subClassDescriptor)
           
 OverridingUtil.OverrideCompatibilityInfo isOverridableByIncludingReturnType(CallableDescriptor superDescriptor, CallableDescriptor subDescriptor)
           
 OverridingUtil.OverrideCompatibilityInfo isOverridableByWithoutExternalConditions(CallableDescriptor superDescriptor, CallableDescriptor subDescriptor, boolean checkReturnType)
           
static void resolveUnknownVisibilityForMember(CallableMemberDescriptor memberDescriptor, kotlin.jvm.functions.Function1<CallableMemberDescriptor,kotlin.Unit> cannotInferVisibility)
           
static
<H> H
selectMostSpecificMember(java.util.Collection<H> overridables, kotlin.jvm.functions.Function1<H,CallableDescriptor> descriptorByHandle)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT

public static final OverridingUtil DEFAULT
Method Detail

createWithEqualityAxioms

@NotNull
public static OverridingUtil createWithEqualityAxioms(@NotNull
                                                              KotlinTypeChecker.TypeConstructorEquality equalityAxioms)

isOverridableBy

@NotNull
public OverridingUtil.OverrideCompatibilityInfo isOverridableBy(@NotNull
                                                                        CallableDescriptor superDescriptor,
                                                                        @NotNull
                                                                        CallableDescriptor subDescriptor,
                                                                        @Nullable
                                                                        ClassDescriptor subClassDescriptor)

isOverridableByIncludingReturnType

@NotNull
public OverridingUtil.OverrideCompatibilityInfo isOverridableByIncludingReturnType(@NotNull
                                                                                           CallableDescriptor superDescriptor,
                                                                                           @NotNull
                                                                                           CallableDescriptor subDescriptor)

isOverridableByWithoutExternalConditions

@NotNull
public OverridingUtil.OverrideCompatibilityInfo isOverridableByWithoutExternalConditions(@NotNull
                                                                                                 CallableDescriptor superDescriptor,
                                                                                                 @NotNull
                                                                                                 CallableDescriptor subDescriptor,
                                                                                                 boolean checkReturnType)

getBasicOverridabilityProblem

@Nullable
public static OverridingUtil.OverrideCompatibilityInfo getBasicOverridabilityProblem(@NotNull
                                                                                              CallableDescriptor superDescriptor,
                                                                                              @NotNull
                                                                                              CallableDescriptor subDescriptor)

generateOverridesInFunctionGroup

public static void generateOverridesInFunctionGroup(@NotNull
                                                    Name name,
                                                    @NotNull
                                                    java.util.Collection<? extends CallableMemberDescriptor> membersFromSupertypes,
                                                    @NotNull
                                                    java.util.Collection<? extends CallableMemberDescriptor> membersFromCurrent,
                                                    @NotNull
                                                    ClassDescriptor current,
                                                    @NotNull
                                                    OverridingStrategy strategy)

isMoreSpecific

public static boolean isMoreSpecific(@NotNull
                                     CallableDescriptor a,
                                     @NotNull
                                     CallableDescriptor b)

selectMostSpecificMember

@NotNull
public static <H> H selectMostSpecificMember(@NotNull
                                                     java.util.Collection<H> overridables,
                                                     @NotNull
                                                     kotlin.jvm.functions.Function1<H,CallableDescriptor> descriptorByHandle)

extractMembersOverridableInBothWays

@NotNull
public static <H> java.util.Collection<H> extractMembersOverridableInBothWays(@NotNull
                                                                                      H overrider,
                                                                                      @NotNull@Mutable
                                                                                      java.util.Collection<H> extractFrom,
                                                                                      @NotNull
                                                                                      kotlin.jvm.functions.Function1<H,CallableDescriptor> descriptorByHandle,
                                                                                      @NotNull
                                                                                      kotlin.jvm.functions.Function1<H,kotlin.Unit> onConflict)
Type Parameters:
H - is something that handles CallableDescriptor inside
Returns:

getBothWaysOverridability

@Nullable
public static OverridingUtil.OverrideCompatibilityInfo.Result getBothWaysOverridability(CallableDescriptor overriderDescriptor,
                                                                                                 CallableDescriptor candidateDescriptor)

resolveUnknownVisibilityForMember

public static void resolveUnknownVisibilityForMember(@NotNull
                                                     CallableMemberDescriptor memberDescriptor,
                                                     @Nullable
                                                     kotlin.jvm.functions.Function1<CallableMemberDescriptor,kotlin.Unit> cannotInferVisibility)

findMaxVisibility

@Nullable
public static Visibility findMaxVisibility(@NotNull
                                                    java.util.Collection<? extends CallableMemberDescriptor> descriptors)