getProvider() added to PackageFragmentDescriptor
This commit is contained in:
+2
-4
@@ -1,7 +1,6 @@
|
|||||||
package org.jetbrains.jet.lang.resolve;
|
package org.jetbrains.jet.lang.resolve;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Multimap;
|
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import com.intellij.util.containers.MultiMap;
|
import com.intellij.util.containers.MultiMap;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -12,7 +11,6 @@ import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -24,7 +22,7 @@ public class MutablePackageFragmentProvider implements PackageFragmentProvider {
|
|||||||
|
|
||||||
public MutablePackageFragmentProvider(@NotNull ModuleDescriptor module) {
|
public MutablePackageFragmentProvider(@NotNull ModuleDescriptor module) {
|
||||||
this.module = module;
|
this.module = module;
|
||||||
fqNameToPackage.put(FqName.ROOT, new MutablePackageFragmentDescriptor(module, FqName.ROOT));
|
fqNameToPackage.put(FqName.ROOT, new MutablePackageFragmentDescriptor(this, module, FqName.ROOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -45,7 +43,7 @@ public class MutablePackageFragmentProvider implements PackageFragmentProvider {
|
|||||||
FqName parent = fqName.parent();
|
FqName parent = fqName.parent();
|
||||||
getOrCreateFragment(parent); // assure that parent exists
|
getOrCreateFragment(parent); // assure that parent exists
|
||||||
|
|
||||||
fqNameToPackage.put(fqName, new MutablePackageFragmentDescriptor(module, fqName));
|
fqNameToPackage.put(fqName, new MutablePackageFragmentDescriptor(this, module, fqName));
|
||||||
subPackages.putValue(parent, fqName);
|
subPackages.putValue(parent, fqName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -151,6 +151,11 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
rootDescriptor.addFragmentProvider(packageFragmentProvider);
|
rootDescriptor.addFragmentProvider(packageFragmentProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public PackageFragmentProvider getPackageFragmentProvider() {
|
||||||
|
return packageFragmentProvider;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public LazyPackageDescriptor getPackageFragment(@NotNull FqName fqName) {
|
public LazyPackageDescriptor getPackageFragment(@NotNull FqName fqName) {
|
||||||
return packages.invoke(fqName);
|
return packages.invoke(fqName);
|
||||||
|
|||||||
+8
@@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
public class LazyPackageDescriptor extends DeclarationDescriptorImpl implements LazyDescriptor, PackageFragmentDescriptor {
|
public class LazyPackageDescriptor extends DeclarationDescriptorImpl implements LazyDescriptor, PackageFragmentDescriptor {
|
||||||
|
private final ResolveSession resolveSession;
|
||||||
private final ModuleDescriptor module;
|
private final ModuleDescriptor module;
|
||||||
private final JetScope memberScope;
|
private final JetScope memberScope;
|
||||||
private final FqName fqName;
|
private final FqName fqName;
|
||||||
@@ -44,6 +45,7 @@ public class LazyPackageDescriptor extends DeclarationDescriptorImpl implements
|
|||||||
@NotNull PackageMemberDeclarationProvider declarationProvider
|
@NotNull PackageMemberDeclarationProvider declarationProvider
|
||||||
) {
|
) {
|
||||||
super(Collections.<AnnotationDescriptor>emptyList(), fqName.shortNameOrSpecial());
|
super(Collections.<AnnotationDescriptor>emptyList(), fqName.shortNameOrSpecial());
|
||||||
|
this.resolveSession = resolveSession;
|
||||||
this.module = module;
|
this.module = module;
|
||||||
this.fqName = fqName;
|
this.fqName = fqName;
|
||||||
this.declarationProvider = declarationProvider;
|
this.declarationProvider = declarationProvider;
|
||||||
@@ -57,6 +59,12 @@ public class LazyPackageDescriptor extends DeclarationDescriptorImpl implements
|
|||||||
return memberScope;
|
return memberScope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public PackageFragmentProvider getProvider() {
|
||||||
|
return resolveSession.getPackageFragmentProvider();
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public ModuleDescriptor getContainingDeclaration() {
|
public ModuleDescriptor getContainingDeclaration() {
|
||||||
|
|||||||
+1
@@ -95,6 +95,7 @@ public class JavaPackageFragmentDescriptorImpl extends DeclarationDescriptorImpl
|
|||||||
return fqName;
|
return fqName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JavaPackageFragmentProvider getProvider() {
|
public JavaPackageFragmentProvider getProvider() {
|
||||||
return provider;
|
return provider;
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
|
|
||||||
public interface PackageFragmentDescriptor extends ClassOrNamespaceDescriptor {
|
public interface PackageFragmentDescriptor extends ClassOrNamespaceDescriptor {
|
||||||
|
@NotNull
|
||||||
|
PackageFragmentProvider getProvider();
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
ModuleDescriptor getContainingDeclaration();
|
ModuleDescriptor getContainingDeclaration();
|
||||||
|
|||||||
+10
-4
@@ -18,10 +18,7 @@ package org.jetbrains.jet.lang.descriptors.impl;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
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.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
@@ -34,16 +31,19 @@ import java.util.Collections;
|
|||||||
|
|
||||||
public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl implements PackageFragmentDescriptor {
|
public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl implements PackageFragmentDescriptor {
|
||||||
|
|
||||||
|
private final PackageFragmentProvider provider;
|
||||||
private final ModuleDescriptor module;
|
private final ModuleDescriptor module;
|
||||||
private final FqName fqName;
|
private final FqName fqName;
|
||||||
private final WritableScope scope;
|
private final WritableScope scope;
|
||||||
private final NamespaceLikeBuilder builder;
|
private final NamespaceLikeBuilder builder;
|
||||||
|
|
||||||
public MutablePackageFragmentDescriptor(
|
public MutablePackageFragmentDescriptor(
|
||||||
|
@NotNull PackageFragmentProvider provider,
|
||||||
@NotNull ModuleDescriptor module,
|
@NotNull ModuleDescriptor module,
|
||||||
@NotNull FqName fqName
|
@NotNull FqName fqName
|
||||||
) {
|
) {
|
||||||
super(Collections.<AnnotationDescriptor>emptyList(), fqName.shortNameOrSpecial());
|
super(Collections.<AnnotationDescriptor>emptyList(), fqName.shortNameOrSpecial());
|
||||||
|
this.provider = provider;
|
||||||
this.module = module;
|
this.module = module;
|
||||||
this.fqName = fqName;
|
this.fqName = fqName;
|
||||||
|
|
||||||
@@ -52,6 +52,12 @@ public class MutablePackageFragmentDescriptor extends DeclarationDescriptorImpl
|
|||||||
builder = new ScopeBasedNamespaceLikeBuilder(this, scope);
|
builder = new ScopeBasedNamespaceLikeBuilder(this, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public PackageFragmentProvider getProvider() {
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public ModuleDescriptor getContainingDeclaration() {
|
public ModuleDescriptor getContainingDeclaration() {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
|||||||
private final DeserializedPackageMemberScope members;
|
private final DeserializedPackageMemberScope members;
|
||||||
private final NameResolver nameResolver;
|
private final NameResolver nameResolver;
|
||||||
private final ModuleDescriptor module;
|
private final ModuleDescriptor module;
|
||||||
final PackageFragmentProvider packageFragmentProvider;
|
private final PackageFragmentProvider packageFragmentProvider;
|
||||||
|
|
||||||
public BuiltinsPackageFragment(@NotNull StorageManager storageManager, @NotNull ModuleDescriptor module) {
|
public BuiltinsPackageFragment(@NotNull StorageManager storageManager, @NotNull ModuleDescriptor module) {
|
||||||
super(Collections.<AnnotationDescriptor>emptyList(), KotlinBuiltIns.BUILT_INS_PACKAGE_NAME);
|
super(Collections.<AnnotationDescriptor>emptyList(), KotlinBuiltIns.BUILT_INS_PACKAGE_NAME);
|
||||||
@@ -61,6 +61,12 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
|||||||
return members;
|
return members;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public PackageFragmentProvider getProvider() {
|
||||||
|
return packageFragmentProvider;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public ModuleDescriptor getContainingDeclaration() {
|
public ModuleDescriptor getContainingDeclaration() {
|
||||||
@@ -99,7 +105,7 @@ class BuiltinsPackageFragment extends DeclarationDescriptorImpl implements Packa
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class BuiltinsPackageFragmentProvider implements PackageFragmentProvider {
|
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
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ public class KotlinBuiltIns {
|
|||||||
Collections.<ImportPath>emptyList(),
|
Collections.<ImportPath>emptyList(),
|
||||||
PlatformToKotlinClassMap.EMPTY);
|
PlatformToKotlinClassMap.EMPTY);
|
||||||
builtinsPackageFragment = new BuiltinsPackageFragment(new LockBasedStorageManager(), builtInsModule);
|
builtinsPackageFragment = new BuiltinsPackageFragment(new LockBasedStorageManager(), builtInsModule);
|
||||||
builtInsModule.addFragmentProvider(builtinsPackageFragment.packageFragmentProvider);
|
builtInsModule.addFragmentProvider(builtinsPackageFragment.getProvider());
|
||||||
|
|
||||||
this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT);
|
this.functionClassesSet = computeIndexedClasses("Function", FUNCTION_TRAIT_COUNT);
|
||||||
this.extensionFunctionClassesSet = computeIndexedClasses("ExtensionFunction", FUNCTION_TRAIT_COUNT);
|
this.extensionFunctionClassesSet = computeIndexedClasses("ExtensionFunction", FUNCTION_TRAIT_COUNT);
|
||||||
|
|||||||
Reference in New Issue
Block a user