Minor, use another way to check that descriptor is from sources

This way this function can be moved to module 'resolution', where
DescriptorToSourceUtils is not available
This commit is contained in:
Alexander Udalov
2018-01-12 18:39:57 +01:00
parent ac5444ef7c
commit ea30388ae5
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtConstructor import org.jetbrains.kotlin.psi.KtConstructor
import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtNamedDeclaration import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
@@ -98,7 +97,7 @@ object ExpectedActualDeclarationChecker : DeclarationChecker {
compatibility is Compatible || (compatibility is Incompatible && compatibility.kind != Compatibility.IncompatibilityKind.STRONG) compatibility is Compatible || (compatibility is Incompatible && compatibility.kind != Compatibility.IncompatibilityKind.STRONG)
}.flatMap { it.value.asSequence() } }.flatMap { it.value.asSequence() }
expectActualTracker?.reportExpectActual(expected = descriptor, actualMembers = actualMembers) expectActualTracker.reportExpectActual(expected = descriptor, actualMembers = actualMembers)
} }
} }
@@ -129,19 +128,19 @@ object ExpectedActualDeclarationChecker : DeclarationChecker {
is CallableMemberDescriptor -> { is CallableMemberDescriptor -> {
expected.findNamesakesFromModule(platformModule).filter { actual -> expected.findNamesakesFromModule(platformModule).filter { actual ->
expected != actual && !actual.isExpect && expected != actual && !actual.isExpect &&
// TODO: support non-source definitions (e.g. from Java) // TODO: support non-source definitions (e.g. from Java)
DescriptorToSourceUtils.getSourceFromDescriptor(actual) is KtElement actual.source.containingFile != SourceFile.NO_SOURCE_FILE
}.groupBy { actual -> }.groupBy { actual ->
areCompatibleCallables(expected, actual) areCompatibleCallables(expected, actual)
} }
} }
is ClassDescriptor -> { is ClassDescriptor -> {
expected.findClassifiersFromModule(platformModule).filter { actual -> expected.findClassifiersFromModule(platformModule).filter { actual ->
expected != actual && !actual.isExpect && expected != actual && !actual.isExpect &&
DescriptorToSourceUtils.getSourceFromDescriptor(actual) is KtElement actual.source.containingFile != SourceFile.NO_SOURCE_FILE
}.groupBy { actual -> }.groupBy { actual ->
areCompatibleClassifiers(expected, actual) areCompatibleClassifiers(expected, actual)
} }
} }
else -> null else -> null
} }