[Analysis API] add isNoinline/isCrossinline to the KtValueParameterSymbol
This commit is contained in:
+14
-2
@@ -6,13 +6,15 @@
|
||||
package org.jetbrains.kotlin.analysis.api.symbols
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.*
|
||||
import org.jetbrains.kotlin.analysis.api.KtConstantInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.KtInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.KtNonConstantInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -171,6 +173,16 @@ public abstract class KtValueParameterSymbol : KtVariableLikeSymbol(), KtSymbolW
|
||||
final override val receiverType: KtType? get() = withValidityAssertion { null }
|
||||
final override val contextReceivers: List<KtContextReceiver> get() = withValidityAssertion { emptyList() }
|
||||
|
||||
/**
|
||||
* Returns true if the function parameter is marked with `noinline` modifier
|
||||
*/
|
||||
public abstract val isNoinline: Boolean
|
||||
|
||||
/**
|
||||
* Returns true if the function parameter is marked with `crossinline` modifier
|
||||
*/
|
||||
public abstract val isCrossinline: Boolean
|
||||
|
||||
final override val typeParameters: List<KtTypeParameterSymbol>
|
||||
get() = withValidityAssertion { emptyList() }
|
||||
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
inline fun foo(
|
||||
inlineParameter: () -> Int,
|
||||
crossinline crossinlineParameter: () -> Int,
|
||||
noinline noinlineParameter: () -> Int,
|
||||
) {}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
inline fun foo(inlineParameter: () -> kotlin.Int, crossinline crossinlineParameter: () -> kotlin.Int, noinline noinlineParameter: () -> kotlin.Int)
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: false
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: inlineParameter
|
||||
origin: SOURCE
|
||||
receiverType: null
|
||||
returnType: kotlin/Function0<kotlin/Int>
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
|
||||
KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: true
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: crossinlineParameter
|
||||
origin: SOURCE
|
||||
receiverType: null
|
||||
returnType: kotlin/Function0<kotlin/Int>
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
|
||||
KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: false
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: true
|
||||
isVararg: false
|
||||
name: noinlineParameter
|
||||
origin: SOURCE
|
||||
receiverType: null
|
||||
returnType: kotlin/Function0<kotlin/Int>
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: /foo
|
||||
contextReceivers: []
|
||||
hasStableParameterNames: true
|
||||
isBuiltinFunctionInvoke: false
|
||||
isExtension: false
|
||||
isExternal: false
|
||||
isInfix: false
|
||||
isInline: true
|
||||
isOperator: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isSuspend: false
|
||||
modality: FINAL
|
||||
name: foo
|
||||
origin: SOURCE
|
||||
receiverType: null
|
||||
returnType: kotlin/Unit
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
valueParameters: [
|
||||
KtValueParameterSymbol(inlineParameter)
|
||||
KtValueParameterSymbol(crossinlineParameter)
|
||||
KtValueParameterSymbol(noinlineParameter)
|
||||
]
|
||||
visibility: Public
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
Reference in New Issue
Block a user