Unify WhenMissingCase from FIR and FE1.0
This commit is contained in:
@@ -12,12 +12,10 @@ import org.jetbrains.kotlin.builtins.UnsignedTypes;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotated;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl;
|
||||
import org.jetbrains.kotlin.incremental.components.LookupLocation;
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.name.FqNameUnsafe;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.name.SpecialNames;
|
||||
import org.jetbrains.kotlin.name.*;
|
||||
import org.jetbrains.kotlin.resolve.constants.ConstantValue;
|
||||
import org.jetbrains.kotlin.resolve.constants.StringValue;
|
||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||
@@ -114,6 +112,20 @@ public class DescriptorUtils {
|
||||
return getFqNameFromTopLevelClass(containingDeclaration).child(name);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ClassId getClassIdForNonLocalClass(@NotNull DeclarationDescriptor descriptor) {
|
||||
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
|
||||
Name name = descriptor.getName();
|
||||
if (containingDeclaration instanceof PackageFragmentDescriptorImpl) {
|
||||
FqName packageFqName = ((PackageFragmentDescriptorImpl) containingDeclaration).getFqName();
|
||||
return new ClassId(packageFqName, name);
|
||||
}
|
||||
if (!(containingDeclaration instanceof ClassDescriptor)) {
|
||||
return new ClassId(FqName.ROOT, name);
|
||||
}
|
||||
return getClassIdForNonLocalClass(containingDeclaration).createNestedClassId(name);
|
||||
}
|
||||
|
||||
public static boolean isTopLevelDeclaration(@Nullable DeclarationDescriptor descriptor) {
|
||||
return descriptor != null && descriptor.getContainingDeclaration() instanceof PackageFragmentDescriptor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user