Remove kotlin.coroutine package from default imports.
This commit is contained in:
committed by
Stanislav Erokhin
parent
7d1b883171
commit
0132f3eea7
+3
-5
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -25,7 +24,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
val SUSPEND_WITH_CURRENT_CONTINUATION_NAME = Name.identifier("suspendWithCurrentContinuation")
|
||||
|
||||
fun FunctionDescriptor.getBuiltInSuspendWithCurrentContinuation() =
|
||||
builtIns.builtInsPackageFragments.singleOrNull { it.fqName == KotlinBuiltIns.COROUTINES_PACKAGE_FQ_NAME }
|
||||
?.getMemberScope()
|
||||
?.getContributedFunctions(SUSPEND_WITH_CURRENT_CONTINUATION_NAME, NoLookupLocation.FROM_BACKEND)
|
||||
?.singleOrNull()
|
||||
builtIns.builtInsCoroutinePackageFragment.getMemberScope()
|
||||
.getContributedFunctions(SUSPEND_WITH_CURRENT_CONTINUATION_NAME, NoLookupLocation.FROM_BACKEND)
|
||||
.singleOrNull()
|
||||
|
||||
@@ -42,7 +42,7 @@ object JvmPlatform : TargetPlatform("JVM") {
|
||||
}
|
||||
|
||||
val builtIns = JvmBuiltIns(LockBasedStorageManager.NO_LOCKS)
|
||||
for (builtinPackageFragment in builtIns.builtInsPackageFragments) {
|
||||
for (builtinPackageFragment in builtIns.builtInsPackageFragmentsImportedByDefault) {
|
||||
addAllClassifiersFromScope(builtinPackageFragment.getMemberScope())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ abstract class TargetPlatform(val platformName: String) {
|
||||
add(ImportPath("kotlin.*"))
|
||||
add(ImportPath("kotlin.annotation.*"))
|
||||
add(ImportPath("kotlin.collections.*"))
|
||||
add(ImportPath("kotlin.coroutines.*"))
|
||||
add(ImportPath("kotlin.ranges.*"))
|
||||
add(ImportPath("kotlin.sequences.*"))
|
||||
add(ImportPath("kotlin.text.*"))
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// FILE: 1.kt
|
||||
|
||||
fun test(<!UNUSED_PARAMETER!>c<!>: <!UNRESOLVED_REFERENCE!>Continuation<!><Unit>) {}
|
||||
|
||||
// FILE: 2.kt
|
||||
import kotlin.coroutines.*
|
||||
|
||||
fun test2(<!UNUSED_PARAMETER!>c<!>: Continuation<Unit>) {}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ c: [ERROR : Continuation<Unit>]<kotlin.Unit>): kotlin.Unit
|
||||
public fun test2(/*0*/ c: kotlin.coroutines.Continuation<kotlin.Unit>): kotlin.Unit
|
||||
@@ -4276,6 +4276,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("noDefaultCoroutineImports.kt")
|
||||
public void testNoDefaultCoroutineImports() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/coroutines/noDefaultCoroutineImports.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("nonLocalSuspension.kt")
|
||||
public void testNonLocalSuspension() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/coroutines/nonLocalSuspension.kt");
|
||||
|
||||
@@ -92,11 +92,11 @@ public abstract class KotlinBuiltIns {
|
||||
PackageFragmentDescriptor kotlinCollections = createPackage(provider, nameToFragment, COLLECTIONS_PACKAGE_FQ_NAME);
|
||||
createPackage(provider, nameToFragment, RANGES_PACKAGE_FQ_NAME);
|
||||
PackageFragmentDescriptor kotlinAnnotation = createPackage(provider, nameToFragment, ANNOTATION_PACKAGE_FQ_NAME);
|
||||
createPackage(provider, nameToFragment, COROUTINES_PACKAGE_FQ_NAME);
|
||||
PackageFragmentDescriptor coroutinePackage = createPackage(provider, null, COROUTINES_PACKAGE_FQ_NAME);
|
||||
|
||||
Set<PackageFragmentDescriptor> all = new LinkedHashSet<PackageFragmentDescriptor>(nameToFragment.values());
|
||||
Set<PackageFragmentDescriptor> allImportedByDefault = new LinkedHashSet<PackageFragmentDescriptor>(nameToFragment.values());
|
||||
|
||||
return new PackageFragments(kotlin, kotlinCollections, kotlinAnnotation, all);
|
||||
return new PackageFragments(kotlin, kotlinCollections, kotlinAnnotation, coroutinePackage, allImportedByDefault);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -174,7 +174,7 @@ public abstract class KotlinBuiltIns {
|
||||
@NotNull
|
||||
private PackageFragmentDescriptor createPackage(
|
||||
@NotNull PackageFragmentProvider fragmentProvider,
|
||||
@NotNull Map<FqName, PackageFragmentDescriptor> packageNameToPackageFragment,
|
||||
@Nullable Map<FqName, PackageFragmentDescriptor> packageNameToPackageFragment,
|
||||
@NotNull final FqName packageFqName
|
||||
) {
|
||||
final List<PackageFragmentDescriptor> packageFragments = fragmentProvider.getPackageFragments(packageFqName);
|
||||
@@ -203,7 +203,7 @@ public abstract class KotlinBuiltIns {
|
||||
}
|
||||
};
|
||||
|
||||
packageNameToPackageFragment.put(packageFqName, result);
|
||||
if (packageNameToPackageFragment != null) packageNameToPackageFragment.put(packageFqName, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -232,18 +232,21 @@ public abstract class KotlinBuiltIns {
|
||||
public final PackageFragmentDescriptor builtInsPackageFragment;
|
||||
public final PackageFragmentDescriptor collectionsPackageFragment;
|
||||
public final PackageFragmentDescriptor annotationPackageFragment;
|
||||
public final Set<PackageFragmentDescriptor> builtInsPackageFragments;
|
||||
public final PackageFragmentDescriptor coroutinePackageFragment;
|
||||
public final Set<PackageFragmentDescriptor> allImportedByDefaultBuiltInsPackageFragments;
|
||||
|
||||
private PackageFragments(
|
||||
@NotNull PackageFragmentDescriptor builtInsPackageFragment,
|
||||
@NotNull PackageFragmentDescriptor collectionsPackageFragment,
|
||||
@NotNull PackageFragmentDescriptor annotationPackageFragment,
|
||||
@NotNull Set<PackageFragmentDescriptor> builtInsPackageFragments
|
||||
@NotNull PackageFragmentDescriptor coroutinePackageFragment,
|
||||
@NotNull Set<PackageFragmentDescriptor> allImportedByDefaultBuiltInsPackageFragments
|
||||
) {
|
||||
this.builtInsPackageFragment = builtInsPackageFragment;
|
||||
this.collectionsPackageFragment = collectionsPackageFragment;
|
||||
this.annotationPackageFragment = annotationPackageFragment;
|
||||
this.builtInsPackageFragments = builtInsPackageFragments;
|
||||
this.coroutinePackageFragment = coroutinePackageFragment;
|
||||
this.allImportedByDefaultBuiltInsPackageFragments = allImportedByDefaultBuiltInsPackageFragments;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,8 +371,13 @@ public abstract class KotlinBuiltIns {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<PackageFragmentDescriptor> getBuiltInsPackageFragments() {
|
||||
return packageFragments.invoke().builtInsPackageFragments;
|
||||
public Set<PackageFragmentDescriptor> getBuiltInsPackageFragmentsImportedByDefault() {
|
||||
return packageFragments.invoke().allImportedByDefaultBuiltInsPackageFragments;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PackageFragmentDescriptor getBuiltInsCoroutinePackageFragment() {
|
||||
return packageFragments.invoke().coroutinePackageFragment;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package kotlin.jvm.internal
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
private const val INTERCEPT_BIT_SET = 1 shl 31
|
||||
private const val INTERCEPT_BIT_CLEAR = INTERCEPT_BIT_SET.inv()
|
||||
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ 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
|
||||
for (builtinPackage in resolutionFacade.moduleDescriptor.builtIns.builtInsPackageFragments) {
|
||||
for (builtinPackage in resolutionFacade.moduleDescriptor.builtIns.builtInsPackageFragmentsImportedByDefault) {
|
||||
collectClassesFromScope(builtinPackage.getMemberScope()) {
|
||||
if (it.containingDeclaration is ClassDescriptor) {
|
||||
classifierDescriptorCollector(it)
|
||||
|
||||
Reference in New Issue
Block a user