diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/JavaSourceElementFactoryImpl.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/JavaSourceElementFactoryImpl.kt index c3b69a0a994..3e95feb7ba7 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/JavaSourceElementFactoryImpl.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/JavaSourceElementFactoryImpl.kt @@ -24,6 +24,8 @@ import org.jetbrains.kotlin.load.java.sources.JavaSourceElementFactory import org.jetbrains.kotlin.load.java.sources.JavaSourceElement private class JavaSourceElementImpl(override val javaElement: JavaElement) : PsiSourceElement, JavaSourceElement { + override fun isKotlinSourceElement(): Boolean = false + override val psi: PsiElement? get() = (javaElement as JavaElementImpl<*>).getPsi() } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/KotlinSourceElement.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/KotlinSourceElement.kt index da37734c6cc..61384bcfca5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/KotlinSourceElement.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/source/KotlinSourceElement.kt @@ -20,7 +20,9 @@ import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.descriptors.SourceElement import com.intellij.psi.PsiElement -public class KotlinSourceElement(override val psi: JetElement) : PsiSourceElement +public class KotlinSourceElement(override val psi: JetElement) : PsiSourceElement { + override fun isKotlinSourceElement(): Boolean = true +} public fun JetElement?.toSourceElement(): SourceElement = if (this == null) SourceElement.NO_SOURCE else KotlinSourceElement(this) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmBinarySourceElement.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmBinarySourceElement.kt index 249f2501b59..0fd463bb92f 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmBinarySourceElement.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/KotlinJvmBinarySourceElement.kt @@ -19,5 +19,6 @@ package org.jetbrains.kotlin.load.kotlin import org.jetbrains.kotlin.descriptors.SourceElement public class KotlinJvmBinarySourceElement(public val binaryClass: KotlinJvmBinaryClass) : SourceElement { + override fun isKotlinSourceElement(): Boolean = false override fun toString() = javaClass.name + ": " + binaryClass.toString() } diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/components/RuntimeSourceElementFactory.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/components/RuntimeSourceElementFactory.kt index 4282a6e544e..05f35ec13fb 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/components/RuntimeSourceElementFactory.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/java/components/RuntimeSourceElementFactory.kt @@ -23,6 +23,8 @@ import org.jetbrains.kotlin.load.java.structure.reflect.ReflectJavaElement public object RuntimeSourceElementFactory : JavaSourceElementFactory { private class RuntimeSourceElement(override val javaElement: ReflectJavaElement) : JavaSourceElement { + + override fun isKotlinSourceElement(): Boolean = false override fun toString() = javaClass.name + ": " + javaElement.toString() } diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/ReflectAnnotationSource.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/ReflectAnnotationSource.kt index ad57626d904..984aa266b6d 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/ReflectAnnotationSource.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/ReflectAnnotationSource.kt @@ -18,4 +18,6 @@ package org.jetbrains.kotlin.load.kotlin.reflect import org.jetbrains.kotlin.descriptors.SourceElement -public class ReflectAnnotationSource(public val annotation: Annotation) : SourceElement +public class ReflectAnnotationSource(public val annotation: Annotation) : SourceElement { + override fun isKotlinSourceElement(): Boolean = false +} diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/SourceElement.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/SourceElement.java index 6fe7ba61f1c..c3c6fc6f06f 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/SourceElement.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/SourceElement.java @@ -16,8 +16,18 @@ package org.jetbrains.kotlin.descriptors; +import kotlin.Deprecated; + public interface SourceElement { + @Deprecated("This is a hack in order to preliminary support internal visibility in multi-module projects") + boolean isKotlinSourceElement(); + SourceElement NO_SOURCE = new SourceElement() { + @Override + public boolean isKotlinSourceElement() { + return false; + } + @Override public String toString() { return "NO_SOURCE";