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
|
val builtIns = JvmPlatform.builtIns
|
||||||
addAllClassifiersFromScope(builtIns.builtInsPackageScope)
|
for (builtinPackageFragment in builtIns.builtinsPackageFragments) {
|
||||||
addAllClassifiersFromScope(builtIns.collectionsPackageFragment.getMemberScope())
|
addAllClassifiersFromScope(builtinPackageFragment.getMemberScope())
|
||||||
addAllClassifiersFromScope(builtIns.rangesPackageFragment.getMemberScope())
|
}
|
||||||
addAllClassifiersFromScope(builtIns.annotationPackageFragment.getMemberScope())
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ public abstract class KotlinBuiltIns {
|
|||||||
private final BuiltinsPackageFragment rangesPackageFragment;
|
private final BuiltinsPackageFragment rangesPackageFragment;
|
||||||
private final BuiltinsPackageFragment annotationPackageFragment;
|
private final BuiltinsPackageFragment annotationPackageFragment;
|
||||||
|
|
||||||
|
private final Set<BuiltinsPackageFragment> builtinsPackageFragments;
|
||||||
|
|
||||||
private final Map<PrimitiveType, KotlinType> primitiveTypeToArrayKotlinType;
|
private final Map<PrimitiveType, KotlinType> primitiveTypeToArrayKotlinType;
|
||||||
private final Map<KotlinType, KotlinType> primitiveKotlinTypeToKotlinArrayType;
|
private final Map<KotlinType, KotlinType> primitiveKotlinTypeToKotlinArrayType;
|
||||||
private final Map<KotlinType, KotlinType> kotlinArrayTypeToPrimitiveKotlinType;
|
private final Map<KotlinType, KotlinType> kotlinArrayTypeToPrimitiveKotlinType;
|
||||||
@@ -95,13 +97,15 @@ public abstract class KotlinBuiltIns {
|
|||||||
builtInsModule.initialize(packageFragmentProvider);
|
builtInsModule.initialize(packageFragmentProvider);
|
||||||
builtInsModule.setDependencies(builtInsModule);
|
builtInsModule.setDependencies(builtInsModule);
|
||||||
|
|
||||||
packageNameToPackageFragment = new HashMap<FqName, BuiltinsPackageFragment>();
|
packageNameToPackageFragment = new LinkedHashMap<FqName, BuiltinsPackageFragment>();
|
||||||
|
|
||||||
builtinsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, BUILT_INS_PACKAGE_FQ_NAME);
|
builtinsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, BUILT_INS_PACKAGE_FQ_NAME);
|
||||||
collectionsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, COLLECTIONS_PACKAGE_FQ_NAME);
|
collectionsPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, COLLECTIONS_PACKAGE_FQ_NAME);
|
||||||
rangesPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, RANGES_PACKAGE_FQ_NAME);
|
rangesPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, RANGES_PACKAGE_FQ_NAME);
|
||||||
annotationPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, ANNOTATION_PACKAGE_FQ_NAME);
|
annotationPackageFragment = getBuiltinsPackageFragment(packageFragmentProvider, packageNameToPackageFragment, ANNOTATION_PACKAGE_FQ_NAME);
|
||||||
|
|
||||||
|
builtinsPackageFragments = new LinkedHashSet<BuiltinsPackageFragment>(packageNameToPackageFragment.values());
|
||||||
|
|
||||||
primitiveTypeToArrayKotlinType = new EnumMap<PrimitiveType, KotlinType>(PrimitiveType.class);
|
primitiveTypeToArrayKotlinType = new EnumMap<PrimitiveType, KotlinType>(PrimitiveType.class);
|
||||||
primitiveKotlinTypeToKotlinArrayType = new HashMap<KotlinType, KotlinType>();
|
primitiveKotlinTypeToKotlinArrayType = new HashMap<KotlinType, KotlinType>();
|
||||||
kotlinArrayTypeToPrimitiveKotlinType = new HashMap<KotlinType, KotlinType>();
|
kotlinArrayTypeToPrimitiveKotlinType = new HashMap<KotlinType, KotlinType>();
|
||||||
@@ -246,6 +250,11 @@ public abstract class KotlinBuiltIns {
|
|||||||
return builtInsModule;
|
return builtInsModule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Set<BuiltinsPackageFragment> getBuiltinsPackageFragments() {
|
||||||
|
return builtinsPackageFragments;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public PackageFragmentDescriptor getBuiltInsPackageFragment() {
|
public PackageFragmentDescriptor getBuiltInsPackageFragment() {
|
||||||
return builtinsPackageFragment;
|
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
|
//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
|
// we need only nested classes because top-level built-ins are all added through default imports
|
||||||
collectClassesFromScope(resolutionFacade.moduleDescriptor.builtIns.builtInsPackageScope) {
|
for (builtinPackage in resolutionFacade.moduleDescriptor.builtIns.builtinsPackageFragments) {
|
||||||
if (it.containingDeclaration is ClassDescriptor) {
|
collectClassesFromScope(builtinPackage.getMemberScope()) {
|
||||||
classDescriptorCollector(it)
|
if (it.containingDeclaration is ClassDescriptor) {
|
||||||
|
classDescriptorCollector(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user