KTIJ-30709 [LL FIR] Enable missing `syntheticFunctionInterfaceProvider` in `LLFirCommonSessionFactory`
Now, synthetic functional types (like `ComposableFunctionN`)
are properly resolved in common modules
`syntheticFunctionInterfaceProvider` is already enabled in JVM, JS,
and Native platform session factories
Also, improve KDoc for `FirExtensionSyntheticFunctionInterfaceProvider`
^KTIJ-30709 Fixed
diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.pretty.txt
index 9b61656..66a099b 100644
--- a/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.pretty.txt
+++ b/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.pretty.txt
@@ -1,2 +1,2 @@
@org.jetbrains.kotlin.fir.plugin.MyComposable
-fun Foo(text: ERROR_TYPE(Symbol not found for some/MyComposableFunction0))
\ No newline at end of file
+fun Foo(text: @org.jetbrains.kotlin.fir.plugin.MyComposable (() -> kotlin.Unit))
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.txt b/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.txt
index 39e766be..b4ef2a9 100644
--- a/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.txt
+++ b/analysis/analysis-api/testData/symbols/symbolByReference/withTestCompilerPluginEnabled/composableFunctionInCommonModule.txt
@@ -51,12 +51,18 @@
name: text
origin: SOURCE
receiverParameter: null
- returnType: KaClassErrorType:
+ returnType: KaFunctionType:
annotations: [
org/jetbrains/kotlin/fir/plugin/MyComposable()
psi: KtAnnotationEntry
]
- type: ERROR_TYPE
+ typeArguments: [
+ KaUsualClassType:
+ annotations: []
+ typeArguments: []
+ type: kotlin/Unit
+ ]
+ type: @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction0<kotlin/Unit>
visibility: PUBLIC
getContainingFileSymbol: KaFileSymbol(Common.kt)
getContainingJvmClassName: test.CommonKt
diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt
index 6dbd59f..81fbe5b 100644
--- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt
+++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt
@@ -37,6 +37,7 @@
providers = listOfNotNull(
context.firProvider.symbolProvider,
context.switchableExtensionDeclarationsSymbolProvider,
+ context.syntheticFunctionInterfaceProvider,
),
context.dependencyProvider,
)
diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt
index 4741758..2bd0ea8 100644
--- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt
+++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt
@@ -41,8 +41,10 @@
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.util.OperatorNameConventions
-/*
+/**
* Provides function interfaces for function kinds from compiler plugins
+ *
+ * @see org.jetbrains.kotlin.fir.extensions.FirFunctionTypeKindExtension
*/
class FirExtensionSyntheticFunctionInterfaceProvider(
session: FirSession,