[HL API] Fix FE10 implementation of KtExpressionTypeProvider

This commit is contained in:
Roman Golyshev
2022-09-01 14:47:37 +02:00
committed by Space
parent c047bc3647
commit bb2bee74cf
8 changed files with 48 additions and 3 deletions
@@ -35,7 +35,11 @@ public interface KtExpressionTypeProviderMixIn : KtAnalysisSessionMixIn {
withValidityAssertion { analysisSession.expressionTypeProvider.getKtExpressionType(this) }
/**
* Returns the return type of the given [KtDeclaration] as [KtType]
* Returns the return type of the given [KtDeclaration] as [KtType].
*
* IMPORTANT: For `vararg foo: T` parameter returns full `Array<out T>` type (unlike
* [KtValueParameterSymbol.returnType][org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol.returnType],
* which returns `T`).
*/
public fun KtDeclaration.getReturnKtType(): KtType =
withValidityAssertion { analysisSession.expressionTypeProvider.getReturnTypeForKtDeclaration(this) }
@@ -0,0 +1,5 @@
class Foo(vararg constructorValues: String)
fun test(vararg values: String) {}
fun test(vararg primitiveValues: Int) {}
@@ -0,0 +1,7 @@
Foo@(1,1)
Foo@(1,10) : Foo
constructorValues@(1,11) : kotlin.Array<out kotlin.String>
test@(3,1) : kotlin.Unit
values@(3,10) : kotlin.Array<out kotlin.String>
test@(5,1) : kotlin.Unit
primitiveValues@(5,10) : kotlin.IntArray