[SLC] do not create light classes for expect declarations

We shouldn't build expect declarations as they do not
exist. We can omit check on member declarations as we
won't request them as we skip expect classes

^KT-57536 Fixed
This commit is contained in:
Dmitrii Gridin
2024-01-05 00:09:54 +01:00
committed by Space Team
parent c14c12479c
commit 7c8aff963f
6 changed files with 6 additions and 94 deletions
@@ -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
@@ -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
@@ -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)
}
@@ -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)
}
@@ -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)
}
@@ -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)