diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt index 0619a86ca60..48bad826217 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.scopes.KtScope import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol +import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossibleMultiplatformSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithVisibility import org.jetbrains.kotlin.analysis.api.symbols.pointers.symbolPointerOfType import org.jetbrains.kotlin.analysis.project.structure.KtModule @@ -90,6 +91,10 @@ internal class SymbolLightClassForFacade( if (callableSymbol !is KtFunctionSymbol && callableSymbol !is KtKotlinPropertySymbol) continue @Suppress("USELESS_IS_CHECK") // K2 warning suppression, TODO: KT-62472 if (callableSymbol !is KtSymbolWithVisibility) continue + + // We shouldn't materialize expect declarations + @Suppress("USELESS_IS_CHECK") // K2 warning suppression, TODO: KT-62472 + if (callableSymbol is KtPossibleMultiplatformSymbol && callableSymbol.isExpect) continue if ((callableSymbol as? KtAnnotatedSymbol)?.hasInlineOnlyAnnotation() == true) continue if (multiFileClass && callableSymbol.toPsiVisibilityForMember() == PsiModifier.PRIVATE) continue if (callableSymbol.hasTypeForValueClassInSignature(ignoreReturnType = true)) continue diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt index 494c3e820aa..77ab88b5fab 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt @@ -216,7 +216,6 @@ internal fun SymbolLightClassBase.createMethods( fun KtAnalysisSession.handleDeclaration(declaration: KtCallableSymbol) { when (declaration) { is KtFunctionSymbol -> { - // TODO: check if it has expect modifier if (declaration.hasReifiedParameters || declaration.isHiddenOrSynthetic()) return if (declaration.name.isSpecial) return diff --git a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.java b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.java index 2d553a5c530..97fa33694e6 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.java +++ b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.java @@ -5,18 +5,11 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { @org.jetbrains.annotations.NotNull() public static final mypack.MyCommonClassWithActualization getCommonVariable2();// getCommonVariable2() - @org.jetbrains.annotations.NotNull() - public static final mypack.MyCommonClassWithActualization getCommonVariableWithActualization();// getCommonVariableWithActualization() - public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyCommonClassWithActualization, mypack.MyCommonClass) public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyCommonClassWithActualization, mypack.MyCommonClass) - public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunctionWithActualization(mypack.MyCommonClassWithActualization, mypack.MyCommonClass) - public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariable1(mypack.MyCommonClassWithActualization) public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariable2(mypack.MyCommonClassWithActualization) - - public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariableWithActualization(mypack.MyCommonClassWithActualization) } diff --git a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.java b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.java index abe02730add..2299ec4f156 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.java +++ b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.java @@ -5,39 +5,25 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { @org.jetbrains.annotations.NotNull() public static final mypack.IntermediateClassWithActualization getCommonVariable2();// getCommonVariable2() - @org.jetbrains.annotations.NotNull() - public static final mypack.IntermediateClassWithActualization getCommonVariableWithActualization();// getCommonVariableWithActualization() - @org.jetbrains.annotations.NotNull() public static final mypack.IntermediateClassWithActualization getIntermediateVariable1();// getIntermediateVariable1() @org.jetbrains.annotations.NotNull() public static final mypack.IntermediateClassWithActualization getIntermediateVariable2();// getIntermediateVariable2() - @org.jetbrains.annotations.NotNull() - public static final mypack.IntermediateClassWithActualization getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization() - public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.IntermediateClassWithActualization, mypack.MyCommonClass) public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.IntermediateClassWithActualization, mypack.MyCommonClass) - public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunctionWithActualization(mypack.IntermediateClassWithActualization, mypack.MyCommonClass) - public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass) public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass) - public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass) - public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setCommonVariable1(mypack.IntermediateClassWithActualization) public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setCommonVariable2(mypack.IntermediateClassWithActualization) - public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setCommonVariableWithActualization(mypack.IntermediateClassWithActualization) - public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariable1(mypack.IntermediateClassWithActualization) public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariable2(mypack.IntermediateClassWithActualization) - - public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariableWithActualization(mypack.IntermediateClassWithActualization) } diff --git a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.descriptors.java b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.descriptors.java deleted file mode 100644 index 8a4e67a1460..00000000000 --- a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.descriptors.java +++ /dev/null @@ -1,57 +0,0 @@ -public final class MyFacadeKt /* mypack.MyFacadeKt*/ { - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getCommonVariable1();// getCommonVariable1() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getCommonVariable2();// getCommonVariable2() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getIntermediateVariable1();// getIntermediateVariable1() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getIntermediateVariable2();// getIntermediateVariable2() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1() - - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getJvmVariable2();// getJvmVariable2() - - public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyJvmClass, mypack.MyCommonClass) - - public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyJvmClass, mypack.MyCommonClass) - - public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - - public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - - public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - - public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - - public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass) - - public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass) - - public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable1(mypack.MyJvmClass) - - public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable2(mypack.MyJvmClass) - - public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass) - - public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable1(mypack.MyJvmClass) - - public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable2(mypack.MyJvmClass) - - public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass) - - public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass) - - public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass) -} diff --git a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.java b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.java index 98bc8811ee6..8a4e67a1460 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.java +++ b/compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.java @@ -8,9 +8,6 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { @org.jetbrains.annotations.NotNull() public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization() - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization() - @org.jetbrains.annotations.NotNull() public static final mypack.MyJvmClass getIntermediateVariable1();// getIntermediateVariable1() @@ -20,9 +17,6 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { @org.jetbrains.annotations.NotNull() public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization() - @org.jetbrains.annotations.NotNull() - public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization() - @org.jetbrains.annotations.NotNull() public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1() @@ -33,8 +27,6 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyJvmClass, mypack.MyCommonClass) - public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyCommonClass) - public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) @@ -43,8 +35,6 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass) - public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass) public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass) @@ -55,16 +45,12 @@ public final class MyFacadeKt /* mypack.MyFacadeKt*/ { public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass) - public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass) - public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable1(mypack.MyJvmClass) public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable2(mypack.MyJvmClass) public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass) - public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass) - public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass) public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass)