getProvider() added to PackageFragmentDescriptor
This commit is contained in:
@@ -21,6 +21,9 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
|
||||
public interface PackageFragmentDescriptor extends ClassOrNamespaceDescriptor {
|
||||
@NotNull
|
||||
PackageFragmentProvider getProvider();
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
ModuleDescriptor getContainingDeclaration();
|
||||
|
||||
+10
-4
@@ -18,10 +18,7 @@ package org.jetbrains.jet.lang.descriptors.impl;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
@@ -34,16 +31,19 @@ import java.util.Collections;
|
||||
|
||||
public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl implements PackageFragmentDescriptor {
|
||||
|
||||
private final PackageFragmentProvider provider;
|
||||
private final ModuleDescriptor module;
|
||||
private final FqName fqName;
|
||||
private final WritableScope scope;
|
||||
private final NamespaceLikeBuilder builder;
|
||||
|
||||
public MutablePackageFragmentDescriptor(
|
||||
@NotNull PackageFragmentProvider provider,
|
||||
@NotNull ModuleDescriptor module,
|
||||
@NotNull FqName fqName
|
||||
) {
|
||||
super(Collections.<AnnotationDescriptor>emptyList(), fqName.shortNameOrSpecial());
|
||||
this.provider = provider;
|
||||
this.module = module;
|
||||
this.fqName = fqName;
|
||||
|
||||
@@ -52,6 +52,12 @@ public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl
|
||||
builder = new ScopeBasedNamespaceLikeBuilder(this, scope);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PackageFragmentProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModuleDescriptor getContainingDeclaration() {
|
||||
|
||||
@@ -30,7 +30,7 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
||||
private final DeserializedPackageMemberScope members;
|
||||
private final NameResolver nameResolver;
|
||||
private final ModuleDescriptor module;
|
||||
final PackageFragmentProvider packageFragmentProvider;
|
||||
private final PackageFragmentProvider packageFragmentProvider;
|
||||
|
||||
public BuiltinsPackageFragment(@NotNull StorageManager storageManager, @NotNull ModuleDescriptor module) {
|
||||
super(Collections.<AnnotationDescriptor>emptyList(), KotlinBuiltIns.BUILT_INS_PACKAGE_NAME);
|
||||
@@ -61,6 +61,12 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
||||
return members;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PackageFragmentProvider getProvider() {
|
||||
return packageFragmentProvider;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModuleDescriptor getContainingDeclaration() {
|
||||
@@ -99,7 +105,7 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
||||
}
|
||||
|
||||
private class BuiltinsPackageFragmentProvider implements PackageFragmentProvider {
|
||||
private final PackageFragmentDescriptor rootPackage = new MutablePackageFragmentDescriptor(module, FqName.ROOT);
|
||||
private final PackageFragmentDescriptor rootPackage = new MutablePackageFragmentDescriptor(this, module, FqName.ROOT);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
@@ -128,7 +128,7 @@ public class KotlinBuiltIns {
|
||||
Collections.<ImportPath>emptyList(),
|
||||
PlatformToKotlinClassMap.EMPTY);
|
||||
builtinsPackageFragment = new BuiltinsPackageFragment(new LockBasedStorageManager(), builtInsModule);
|
||||
builtInsModule.addFragmentProvider(builtinsPackageFragment.packageFragmentProvider);
|
||||
builtInsModule.addFragmentProvider(builtinsPackageFragment.getProvider());
|
||||
|
||||
this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT);
|
||||
this.extensionFunctionClassesSet = computeIndexedClasses("ExtensionFunction", FUNCTION_TRAIT_COUNT);
|
||||
|
||||
Reference in New Issue
Block a user