AA: indicate whether a value parameter is an implicit lambda parameter

^KTIJ-18800 In progress
This commit is contained in:
Jinseong Jeon
2022-04-18 14:12:13 -07:00
committed by Ilya Kirillov
parent a74a51b2d9
commit 889db4cc5d
35 changed files with 208 additions and 33 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.analysis.api.fir.symbols
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
import org.jetbrains.kotlin.analysis.api.fir.findPsi
@@ -33,6 +34,11 @@ internal class KtFirValueParameterSymbol(
override val isVararg: Boolean get() = withValidityAssertion { firSymbol.isVararg }
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion {
firSymbol.source?.kind == KtFakeSourceElementKind.ItLambdaParameter
}
override val returnType by cached {
val returnType = firSymbol.resolvedReturnType
return@cached if (firSymbol.isVararg) {
@@ -58,6 +58,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
runTest("analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.kt");
}
@Test
@TestMetadata("explicitLambdaParameter.kt")
public void testExplicitLambdaParameter() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/explicitLambdaParameter.kt");
}
@Test
@TestMetadata("genericFromFunctionInLocalClass.kt")
public void testGenericFromFunctionInLocalClass() throws Exception {
@@ -70,6 +76,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
runTest("analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.kt");
}
@Test
@TestMetadata("implicitLambdaParameter.kt")
public void testImplicitLambdaParameter() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
}
@Test
@TestMetadata("samConstructor.kt")
public void testSamConstructor() throws Exception {