diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/KtFakeLightClass.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/KtFakeLightClass.kt index 4f6a99aac03..916ab84948d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/KtFakeLightClass.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/lightClasses/KtFakeLightClass.kt @@ -39,12 +39,14 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils class KtFakeLightClass(override val kotlinOrigin: KtClassOrObject) : AbstractLightClass(kotlinOrigin.manager, KotlinLanguage.INSTANCE), KtLightClass { - private val _delegate by lazy { PsiElementFactory.SERVICE.getInstance(kotlinOrigin.project).createClass(kotlinOrigin.name ?: "") } + private val _delegate by lazy { PsiElementFactory.SERVICE.getInstance(kotlinOrigin.project).createClass("dummy") } private val _containingClass by lazy { kotlinOrigin.containingClassOrObject?.let { KtFakeLightClass(it) } } override val clsDelegate get() = _delegate override val originKind get() = LightClassOriginKind.SOURCE + override fun getName() = kotlinOrigin.name + override fun getDelegate() = _delegate override fun copy() = KtFakeLightClass(kotlinOrigin) @@ -70,13 +72,15 @@ class KtFakeLightMethod private constructor( ktClassOrObject : KtClassOrObject ) : LightMethod ( ktDeclaration.manager, - PsiElementFactory.SERVICE.getInstance(ktDeclaration.project).createMethod(ktDeclaration.name ?: "", PsiType.VOID), + PsiElementFactory.SERVICE.getInstance(ktDeclaration.project).createMethod("dummy", PsiType.VOID), KtFakeLightClass(ktClassOrObject), KotlinLanguage.INSTANCE ), KtLightElement { override val kotlinOrigin get() = ktDeclaration override val clsDelegate get() = myMethod + override fun getName() = ktDeclaration.name ?: "" + override fun getNavigationElement() = ktDeclaration override fun getIcon(flags: Int) = ktDeclaration.getIcon(flags) override fun getUseScope() = ktDeclaration.useScope diff --git a/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/common/common.kt b/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/common/common.kt new file mode 100644 index 00000000000..c5fb5905f01 --- /dev/null +++ b/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/common/common.kt @@ -0,0 +1,21 @@ +package test + +open class SimpleParent { + open fun `foo fun`(n: Int) {} + open val `bar fun`: Int get() = 1 +} + +expect open class ExpectedChild : SimpleParent { + override fun `foo fun`(n: Int) + override val `bar fun`: Int +} + +class ExpectedChildChild : ExpectedChild() { + override fun `foo fun`(n: Int) {} + override val `bar fun`: Int get() = 1 +} + +class SimpleChild : SimpleParent() { + override fun `foo fun`(n: Int) {} + override val `bar fun`: Int get() = 1 +} \ No newline at end of file diff --git a/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/jvm/jvm.kt b/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/jvm/jvm.kt new file mode 100644 index 00000000000..fb1063cdb28 --- /dev/null +++ b/idea/testData/multiModuleLineMarker/hierarchyWithExpectClassCommonSideNonJavaIds/jvm/jvm.kt @@ -0,0 +1,13 @@ +// !CHECK_HIGHLIGHTING + +package test + +actual open class ExpectedChild : SimpleParent() { + actual override fun `foo fun`(n: Int) {} + actual override val `bar fun`: Int get() = 1 +} + +class ExpectedChildChildJvm : ExpectedChild() { + override fun `foo fun`(n: Int) {} + override val `bar fun`: Int get() = 1 +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTest.kt index 0914a4ce019..97a1be7b3c2 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTest.kt @@ -90,6 +90,10 @@ class MultiModuleLineMarkerTest : AbstractMultiModuleHighlightingTest() { doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) } + fun testHierarchyWithExpectClassCommonSideNonJavaIds() { + doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) + } + fun testHierarchyWithExpectClassPlatformSide() { doMultiPlatformTest(TargetPlatformKind.Jvm[JvmTarget.JVM_1_6]) }