Add getPackageFragment() to JavaDescriptorResolver

This commit is contained in:
Andrey Breslav
2013-12-25 16:36:55 +04:00
parent 45bd70daec
commit 48ac30a933
4 changed files with 12 additions and 3 deletions
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.resolve.ImportPath;
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
@@ -237,4 +238,12 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
}
return packageFragmentProvider;
}
@Nullable
public PackageFragmentDescriptor getPackageFragment(@NotNull FqName fqName) {
if (LAZY) {
return getLazyJavaPackageFragmentProvider().getPackageFragment(fqName);
}
return packageFragmentProvider.getPackageFragment(fqName);
}
}
@@ -187,7 +187,7 @@ public class KotlinSignatureAnnotationIntention extends BaseIntentionAction impl
@NotNull
private static JetScope getMemberScope(PsiModifierListOwner psiModifierListOwner, FqName classFqName, JavaDescriptorResolver javaDescriptorResolver) {
if (psiModifierListOwner.hasModifierProperty(PsiModifier.STATIC)) {
PackageFragmentDescriptor packageFragment = javaDescriptorResolver.getPackageFragmentProvider().getPackageFragment(classFqName);
PackageFragmentDescriptor packageFragment = javaDescriptorResolver.getPackageFragment(classFqName);
assert packageFragment != null: "Couldn't resolve package fragment for " + classFqName;
return packageFragment.getMemberScope();
}
@@ -167,7 +167,7 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider {
@NotNull PsiMember member
) {
if (member.hasModifierProperty(PsiModifier.STATIC)) {
PackageFragmentDescriptor packageFragment = javaDescriptorResolver.getPackageFragmentProvider().getPackageFragment(classFqName);
PackageFragmentDescriptor packageFragment = javaDescriptorResolver.getPackageFragment(classFqName);
if (packageFragment == null) {
return null;
}
@@ -85,7 +85,7 @@ public final class DecompiledDataFactory {
appendDecompiledTextAndPackageName(packageFqName);
KotlinClassHeader.Kind kind = classFileHeader.getKind();
if (kind == KotlinClassHeader.Kind.PACKAGE_FACADE) {
PackageFragmentDescriptor pf = javaDescriptorResolver.getPackageFragmentProvider().getPackageFragment(packageFqName);
PackageFragmentDescriptor pf = javaDescriptorResolver.getPackageFragment(packageFqName);
if (pf != null) {
for (DeclarationDescriptor member : sortDeclarations(pf.getMemberScope().getAllDescriptors())) {
if (!(member instanceof ClassDescriptor)) {