Collect nested classes from all 4 builtin packages.
This commit is contained in:
@@ -61,8 +61,7 @@ private val DEFAULT_IMPORTS_FOR_JVM: List<ImportPath> = ArrayList<ImportPath>().
|
||||
}
|
||||
|
||||
val builtIns = JvmPlatform.builtIns
|
||||
addAllClassifiersFromScope(builtIns.builtInsPackageScope)
|
||||
addAllClassifiersFromScope(builtIns.collectionsPackageFragment.getMemberScope())
|
||||
addAllClassifiersFromScope(builtIns.rangesPackageFragment.getMemberScope())
|
||||
addAllClassifiersFromScope(builtIns.annotationPackageFragment.getMemberScope())
|
||||
for (builtinPackageFragment in builtIns.builtinsPackageFragments) {
|
||||
addAllClassifiersFromScope(builtinPackageFragment.getMemberScope())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,8 @@ public abstract class KotlinBuiltIns {
|
||||
private final BuiltinsPackageFragment rangesPackageFragment;
|
||||
private final BuiltinsPackageFragment annotationPackageFragment;
|
||||
|
||||
private final Set<BuiltinsPackageFragment> builtinsPackageFragments;
|
||||
|
||||
private final Map<PrimitiveType, KotlinType> primitiveTypeToArrayKotlinType;
|
||||
private final Map<KotlinType, KotlinType> primitiveKotlinTypeToKotlinArrayType;
|
||||
private final Map<KotlinType, KotlinType> kotlinArrayTypeToPrimitiveKotlinType;
|
||||
@@ -95,13 +97,15 @@ public abstract class KotlinBuiltIns {
|
||||
builtInsModule.initialize(packageFragmentProvider);
|
||||
builtInsModule.setDependencies(builtInsModule);
|
||||
|
||||
packageNameToPackageFragment = new HashMap<FqName, BuiltinsPackageFragment>();
|
||||
packageNameToPackageFragment = new LinkedHashMap<FqName, BuiltinsPackageFragment>();
|
||||
|
||||
builtinsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, BUILT_INS_PACKAGE_FQ_NAME);
|
||||
collectionsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, COLLECTIONS_PACKAGE_FQ_NAME);
|
||||
rangesPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, RANGES_PACKAGE_FQ_NAME);
|
||||
annotationPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, ANNOTATION_PACKAGE_FQ_NAME);
|
||||
|
||||
builtinsPackageFragments = new LinkedHashSet<BuiltinsPackageFragment>(packageNameToPackageFragment.values());
|
||||
|
||||
primitiveTypeToArrayKotlinType = new EnumMap<PrimitiveType, KotlinType>(PrimitiveType.class);
|
||||
primitiveKotlinTypeToKotlinArrayType = new HashMap<KotlinType, KotlinType>();
|
||||
kotlinArrayTypeToPrimitiveKotlinType = new HashMap<KotlinType, KotlinType>();
|
||||
@@ -246,6 +250,11 @@ public abstract class KotlinBuiltIns {
|
||||
return builtInsModule;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<BuiltinsPackageFragment> getBuiltinsPackageFragments() {
|
||||
return builtinsPackageFragments;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PackageFragmentDescriptor getBuiltInsPackageFragment() {
|
||||
return builtinsPackageFragment;
|
||||
|
||||
+5
-3
@@ -44,9 +44,11 @@ class AllClassesCompletion(private val parameters: CompletionParameters,
|
||||
|
||||
//TODO: this is a temporary solution until we have built-ins in indices
|
||||
// we need only nested classes because top-level built-ins are all added through default imports
|
||||
collectClassesFromScope(resolutionFacade.moduleDescriptor.builtIns.builtInsPackageScope) {
|
||||
if (it.containingDeclaration is ClassDescriptor) {
|
||||
classDescriptorCollector(it)
|
||||
for (builtinPackage in resolutionFacade.moduleDescriptor.builtIns.builtinsPackageFragments) {
|
||||
collectClassesFromScope(builtinPackage.getMemberScope()) {
|
||||
if (it.containingDeclaration is ClassDescriptor) {
|
||||
classDescriptorCollector(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user