[Analysis API] add isNoinline/isCrossinline to the KtValueParameterSymbol

This commit is contained in:
Ilya Kirillov
2022-06-30 20:02:06 +02:00
parent 6a145b52aa
commit 184478858c
13 changed files with 192 additions and 2 deletions
@@ -94,6 +94,12 @@ class KtFe10DescDefaultPropertySetterSymbol(
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion { false }
override val isCrossinline: Boolean
get() = withValidityAssertion { false }
override val isNoinline: Boolean
get() = withValidityAssertion { false }
override val name: Name
get() = withValidityAssertion { Name.identifier("value") }
@@ -42,6 +42,12 @@ internal class KtFe10DescValueParameterSymbol(
override val isVararg: Boolean
get() = withValidityAssertion { descriptor.isVararg }
override val isCrossinline: Boolean
get() = withValidityAssertion { descriptor.isCrossinline }
override val isNoinline: Boolean
get() = withValidityAssertion { descriptor.isNoinline }
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion {
descriptor.containingDeclaration is AnonymousFunctionDescriptor &&
@@ -118,6 +118,12 @@ class KtFe10PsiDefaultPropertySetterSymbol(
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion { false }
override val isCrossinline: Boolean
get() = withValidityAssertion { false }
override val isNoinline: Boolean
get() = withValidityAssertion { false }
override val name: Name
get() = withValidityAssertion { Name.identifier("value") }
@@ -43,6 +43,12 @@ internal class KtFe10PsiDefaultSetterParameterSymbol(
override val isVararg: Boolean
get() = withValidityAssertion { false }
override val isCrossinline: Boolean
get() = withValidityAssertion { false }
override val isNoinline: Boolean
get() = withValidityAssertion { false }
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion { false }
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtKotlinPropertySymbol
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
import org.jetbrains.kotlin.descriptors.impl.PropertyDescriptorImpl
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.resolve.BindingContext
@@ -48,6 +49,12 @@ internal class KtFe10PsiValueParameterSymbol(
override val isVararg: Boolean
get() = withValidityAssertion { psi.isVarArg }
override val isCrossinline: Boolean
get() = withValidityAssertion { psi.hasModifier(KtTokens.CROSSINLINE_KEYWORD) }
override val isNoinline: Boolean
get() = withValidityAssertion { psi.hasModifier(KtTokens.NOINLINE_KEYWORD) }
override val isImplicitLambdaParameter: Boolean
get() = withValidityAssertion { false }
@@ -271,4 +271,20 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated extends A
runTest("analysis/analysis-api/testData/symbols/symbolByPsi/contextReceivers/contextReceiversOnProperty.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByPsi/valueParameters")
@TestDataPath("$PROJECT_ROOT")
public class ValueParameters {
@Test
public void testAllFilesPresentInValueParameters() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/symbols/symbolByPsi/valueParameters"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("parameterInlining.kt")
public void testParameterInlining() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByPsi/valueParameters/parameterInlining.kt");
}
}
}