AA: indicate whether a value parameter is an implicit lambda parameter
^KTIJ-18800 In progress
This commit is contained in:
committed by
Ilya Kirillov
parent
a74a51b2d9
commit
889db4cc5d
+9
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.KtFe1
|
|||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtBackingFieldSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtBackingFieldSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtPackageSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtPackageSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithKind
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithKind
|
||||||
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
|
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
|
||||||
@@ -68,6 +69,13 @@ internal class KtFe10SymbolContainingDeclarationProvider(
|
|||||||
|
|
||||||
// TODO this is a dummy and incorrect implementation just to satisfy some tests
|
// TODO this is a dummy and incorrect implementation just to satisfy some tests
|
||||||
override fun getContainingModule(symbol: KtSymbol): KtModule {
|
override fun getContainingModule(symbol: KtSymbol): KtModule {
|
||||||
|
// Implicit lambda parameter doesn't have a source PSI.
|
||||||
|
if ((symbol as? KtValueParameterSymbol)?.isImplicitLambdaParameter == true) {
|
||||||
|
// Retrieve the module from its containing lambda instead.
|
||||||
|
getContainingDeclaration(symbol)?.let { parentLambdaSymbol ->
|
||||||
|
return getContainingModule(parentLambdaSymbol)
|
||||||
|
}
|
||||||
|
}
|
||||||
return symbol.psi?.getKtModule(analysisSession.analysisContext.resolveSession.project)
|
return symbol.psi?.getKtModule(analysisSession.analysisContext.resolveSession.project)
|
||||||
?: symbol.getDescriptor()?.getFakeContainingKtModule()
|
?: symbol.getDescriptor()?.getFakeContainingKtModule()
|
||||||
?: TODO(symbol.toString())
|
?: TODO(symbol.toString())
|
||||||
@@ -98,4 +106,4 @@ internal class KtFe10SymbolContainingDeclarationProvider(
|
|||||||
else -> TODO(this.toString())
|
else -> TODO(this.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
|
|||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySetterSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySetterSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication
|
|
||||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
|
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
@@ -24,7 +23,6 @@ import org.jetbrains.kotlin.descriptors.Modality
|
|||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class KtFe10DescDefaultPropertySetterSymbol(
|
class KtFe10DescDefaultPropertySetterSymbol(
|
||||||
@@ -93,6 +91,9 @@ class KtFe10DescDefaultPropertySetterSymbol(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = withValidityAssertion { false }
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
override val name: Name
|
override val name: Name
|
||||||
get() = withValidityAssertion { Name.identifier("value") }
|
get() = withValidityAssertion { Name.identifier("value") }
|
||||||
|
|
||||||
@@ -108,11 +109,10 @@ class KtFe10DescDefaultPropertySetterSymbol(
|
|||||||
override val annotationsList: KtAnnotationsList
|
override val annotationsList: KtAnnotationsList
|
||||||
get() = withValidityAssertion { KtEmptyAnnotationsList(token) }
|
get() = withValidityAssertion { KtEmptyAnnotationsList(token) }
|
||||||
|
|
||||||
|
|
||||||
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> {
|
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> {
|
||||||
withValidityAssertion {
|
withValidityAssertion {
|
||||||
return KtFe10NeverRestoringSymbolPointer()
|
return KtFe10NeverRestoringSymbolPointer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-2
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased
|
package org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.KtFe10DescSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.KtFe10DescSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||||
@@ -16,10 +15,14 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
|||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.name.SpecialNames
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
|
import org.jetbrains.kotlin.psi.KtFunctionLiteral
|
||||||
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.components.hasDefaultValue
|
import org.jetbrains.kotlin.resolve.calls.components.hasDefaultValue
|
||||||
import org.jetbrains.kotlin.resolve.calls.components.isVararg
|
import org.jetbrains.kotlin.resolve.calls.components.isVararg
|
||||||
|
import org.jetbrains.kotlin.resolve.source.getPsi
|
||||||
|
|
||||||
internal class KtFe10DescValueParameterSymbol(
|
internal class KtFe10DescValueParameterSymbol(
|
||||||
override val descriptor: ValueParameterDescriptor,
|
override val descriptor: ValueParameterDescriptor,
|
||||||
@@ -39,6 +42,18 @@ internal class KtFe10DescValueParameterSymbol(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = withValidityAssertion { descriptor.isVararg }
|
get() = withValidityAssertion { descriptor.isVararg }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion {
|
||||||
|
descriptor.containingDeclaration is AnonymousFunctionDescriptor &&
|
||||||
|
descriptor.name.identifierOrNullIfSpecial == "it" &&
|
||||||
|
// Implicit lambda parameter doesn't have a source PSI.
|
||||||
|
descriptor.source.getPsi() == null &&
|
||||||
|
// But, that could be the case for a declaration from Library. Double-check the slice in the binding context
|
||||||
|
(descriptor.containingDeclaration.source.getPsi() as? KtFunctionLiteral)?.let { parentLambda ->
|
||||||
|
analysisContext.analyze(parentLambda).get(BindingContext.AUTO_CREATED_IT, descriptor) != null
|
||||||
|
} == true
|
||||||
|
}
|
||||||
|
|
||||||
override val returnType: KtType
|
override val returnType: KtType
|
||||||
get() = withValidityAssertion {
|
get() = withValidityAssertion {
|
||||||
return (descriptor.varargElementType ?: descriptor.type).toKtType(analysisContext)
|
return (descriptor.varargElementType ?: descriptor.type).toKtType(analysisContext)
|
||||||
@@ -47,4 +62,4 @@ internal class KtFe10DescValueParameterSymbol(
|
|||||||
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
||||||
return KtPsiBasedSymbolPointer.createForSymbolFromSource(this) ?: KtFe10NeverRestoringSymbolPointer()
|
return KtPsiBasedSymbolPointer.createForSymbolFromSource(this) ?: KtFe10NeverRestoringSymbolPointer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-1
@@ -305,6 +305,11 @@ internal fun DeclarationDescriptor.getSymbolOrigin(analysisContext: Fe10Analysis
|
|||||||
|
|
||||||
val virtualFile = psi.containingFile.virtualFile
|
val virtualFile = psi.containingFile.virtualFile
|
||||||
return analysisContext.getOrigin(virtualFile)
|
return analysisContext.getOrigin(virtualFile)
|
||||||
|
} else { // psi == null
|
||||||
|
// Implicit lambda parameter
|
||||||
|
if (this is ValueParameterDescriptor && this.name.identifierOrNullIfSpecial == "it") {
|
||||||
|
return KtSymbolOrigin.SOURCE_MEMBER_GENERATED
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return KtSymbolOrigin.SOURCE
|
return KtSymbolOrigin.SOURCE
|
||||||
@@ -535,4 +540,4 @@ internal fun AnnotationDescriptor.toKtAnnotationApplication(): KtAnnotationAppli
|
|||||||
internal fun AnnotationDescriptor.getKtNamedAnnotationArguments() =
|
internal fun AnnotationDescriptor.getKtNamedAnnotationArguments() =
|
||||||
allValueArguments.map { (name, value) ->
|
allValueArguments.map { (name, value) ->
|
||||||
KtNamedAnnotationValue(name, value.toKtAnnotationValue())
|
KtNamedAnnotationValue(name, value.toKtAnnotationValue())
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.descriptors.Visibilities
|
|||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtProperty
|
import org.jetbrains.kotlin.psi.KtProperty
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
|
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
|
||||||
@@ -116,6 +115,9 @@ class KtFe10PsiDefaultPropertySetterSymbol(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = withValidityAssertion { false }
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
override val name: Name
|
override val name: Name
|
||||||
get() = withValidityAssertion { Name.identifier("value") }
|
get() = withValidityAssertion { Name.identifier("value") }
|
||||||
|
|
||||||
@@ -135,4 +137,4 @@ class KtFe10PsiDefaultPropertySetterSymbol(
|
|||||||
return KtFe10NeverRestoringSymbolPointer()
|
return KtFe10NeverRestoringSymbolPointer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||||
@@ -16,14 +15,12 @@ import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.creat
|
|||||||
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
|
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication
|
|
||||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
|
import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KtEmptyAnnotationsList
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
@@ -46,6 +43,9 @@ internal class KtFe10PsiDefaultSetterParameterSymbol(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = withValidityAssertion { false }
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
override val returnType: KtType
|
override val returnType: KtType
|
||||||
get() = withValidityAssertion { descriptor?.type?.toKtType(analysisContext) ?: createErrorType() }
|
get() = withValidityAssertion { descriptor?.type?.toKtType(analysisContext) ?: createErrorType() }
|
||||||
|
|
||||||
@@ -61,4 +61,4 @@ internal class KtFe10PsiDefaultSetterParameterSymbol(
|
|||||||
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
||||||
return KtFe10NeverRestoringSymbolPointer()
|
return KtFe10NeverRestoringSymbolPointer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtType
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.KtFe10PsiSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.KtFe10PsiSymbol
|
||||||
@@ -39,6 +38,9 @@ internal class KtFe10PsiValueParameterSymbol(
|
|||||||
override val isVararg: Boolean
|
override val isVararg: Boolean
|
||||||
get() = withValidityAssertion { psi.isVarArg }
|
get() = withValidityAssertion { psi.isVarArg }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion { false }
|
||||||
|
|
||||||
override val returnType: KtType
|
override val returnType: KtType
|
||||||
get() = withValidityAssertion {
|
get() = withValidityAssertion {
|
||||||
val type = (descriptor as? ValueParameterDescriptor)?.varargElementType ?: descriptor?.type
|
val type = (descriptor as? ValueParameterDescriptor)?.varargElementType ?: descriptor?.type
|
||||||
@@ -51,4 +53,4 @@ internal class KtFe10PsiValueParameterSymbol(
|
|||||||
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
||||||
return KtPsiBasedSymbolPointer.createForSymbolFromSource(this) ?: KtFe10NeverRestoringSymbolPointer()
|
return KtPsiBasedSymbolPointer.createForSymbolFromSource(this) ?: KtFe10NeverRestoringSymbolPointer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -58,6 +58,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.kt");
|
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
|
@Test
|
||||||
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
||||||
public void testGenericFromFunctionInLocalClass() throws Exception {
|
public void testGenericFromFunctionInLocalClass() throws Exception {
|
||||||
@@ -70,6 +76,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.kt");
|
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
|
@Test
|
||||||
@TestMetadata("samConstructor.kt")
|
@TestMetadata("samConstructor.kt")
|
||||||
public void testSamConstructor() throws Exception {
|
public void testSamConstructor() throws Exception {
|
||||||
|
|||||||
+6
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.analysis.api.fir.symbols
|
package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
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.KtSymbolByFirBuilder
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
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 isVararg: Boolean get() = withValidityAssertion { firSymbol.isVararg }
|
||||||
|
|
||||||
|
override val isImplicitLambdaParameter: Boolean
|
||||||
|
get() = withValidityAssertion {
|
||||||
|
firSymbol.source?.kind == KtFakeSourceElementKind.ItLambdaParameter
|
||||||
|
}
|
||||||
|
|
||||||
override val returnType by cached {
|
override val returnType by cached {
|
||||||
val returnType = firSymbol.resolvedReturnType
|
val returnType = firSymbol.resolvedReturnType
|
||||||
return@cached if (firSymbol.isVararg) {
|
return@cached if (firSymbol.isVararg) {
|
||||||
|
|||||||
+12
@@ -58,6 +58,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.kt");
|
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
|
@Test
|
||||||
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
||||||
public void testGenericFromFunctionInLocalClass() throws Exception {
|
public void testGenericFromFunctionInLocalClass() throws Exception {
|
||||||
@@ -70,6 +76,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.kt");
|
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
|
@Test
|
||||||
@TestMetadata("samConstructor.kt")
|
@TestMetadata("samConstructor.kt")
|
||||||
public void testSamConstructor() throws Exception {
|
public void testSamConstructor() throws Exception {
|
||||||
|
|||||||
+12
@@ -58,6 +58,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/constructorViaTypeAlias.kt");
|
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
|
@Test
|
||||||
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
@TestMetadata("genericFromFunctionInLocalClass.kt")
|
||||||
public void testGenericFromFunctionInLocalClass() throws Exception {
|
public void testGenericFromFunctionInLocalClass() throws Exception {
|
||||||
@@ -70,6 +76,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/genericFromOuterClassInInnerClass.kt");
|
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
|
@Test
|
||||||
@TestMetadata("samConstructor.kt")
|
@TestMetadata("samConstructor.kt")
|
||||||
public void testSamConstructor() throws Exception {
|
public void testSamConstructor() throws Exception {
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ public enum class KtSymbolOrigin {
|
|||||||
SOURCE,
|
SOURCE,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Declaration which do not have it's PSI source and was generated, they are:
|
* Declaration which do not have its PSI source and was generated, they are:
|
||||||
* For regular classes, implicit default constructor is generated
|
* For regular classes, implicit default constructor is generated
|
||||||
* For data classes the `copy`, `component{N}`, `toString`, `equals`, `hashCode` functions are generated
|
* For data classes the `copy`, `component{N}`, `toString`, `equals`, `hashCode` functions are generated
|
||||||
* For enum classes the `valueOf` & `values` functions are generated
|
* For enum classes the `valueOf` & `values` functions are generated
|
||||||
* For lambda the `it` property is generated
|
* For lambda the `it` implicit parameter is generated
|
||||||
*/
|
*/
|
||||||
SOURCE_MEMBER_GENERATED,
|
SOURCE_MEMBER_GENERATED,
|
||||||
|
|
||||||
|
|||||||
+12
@@ -151,9 +151,21 @@ public abstract class KtValueParameterSymbol : KtVariableLikeSymbol(), KtSymbolW
|
|||||||
final override val isExtension: Boolean get() = false
|
final override val isExtension: Boolean get() = false
|
||||||
final override val receiverType: KtType? get() = null
|
final override val receiverType: KtType? get() = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether this value parameter has a default value or not.
|
||||||
|
*/
|
||||||
public abstract val hasDefaultValue: Boolean
|
public abstract val hasDefaultValue: Boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether this value parameter represents a variable number of arguments (`vararg`) or not.
|
||||||
|
*/
|
||||||
public abstract val isVararg: Boolean
|
public abstract val isVararg: Boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether this value parameter is an implicitly generated lambda parameter `it` or not.
|
||||||
|
*/
|
||||||
|
public abstract val isImplicitLambdaParameter: Boolean
|
||||||
|
|
||||||
abstract override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol>
|
abstract override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: param1
|
name: param1
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -17,6 +18,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: param2
|
name: param2
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -120,4 +122,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: value
|
name: value
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -83,4 +84,4 @@ KtKotlinPropertySymbol:
|
|||||||
getterDeprecationStatus: null
|
getterDeprecationStatus: null
|
||||||
javaGetterName: getP
|
javaGetterName: getP
|
||||||
javaSetterName: setP
|
javaSetterName: setP
|
||||||
setterDeprecationStatus: null
|
setterDeprecationStatus: null
|
||||||
|
|||||||
+4
-1
@@ -20,6 +20,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: x
|
name: x
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -53,6 +54,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: y
|
name: y
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -67,6 +69,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: z
|
name: z
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -116,4 +119,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: x
|
name: x
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -17,6 +18,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: y
|
name: y
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -31,6 +33,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: z
|
name: z
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -226,4 +229,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
+2
-1
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: value
|
name: value
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -149,4 +150,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: value
|
name: value
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -148,4 +149,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: x
|
name: x
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -37,4 +38,4 @@ KtFunctionSymbol:
|
|||||||
]
|
]
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
+2
-1
@@ -14,6 +14,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: x
|
name: x
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -50,4 +51,4 @@ KtFunctionSymbol:
|
|||||||
]
|
]
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
+2
-1
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: i
|
name: i
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -51,4 +52,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
+4
-1
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: a
|
name: a
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -55,6 +56,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: a
|
name: a
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -158,6 +160,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: lmbd
|
name: lmbd
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -192,4 +195,4 @@ KtFunctionSymbol:
|
|||||||
]
|
]
|
||||||
visibility: Private
|
visibility: Private
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: value
|
name: value
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -147,4 +148,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: value
|
name: value
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -145,4 +146,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
+2
-1
@@ -125,6 +125,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: arg
|
name: arg
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -228,4 +229,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: false
|
isVararg: false
|
||||||
name: arg
|
name: arg
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -227,4 +228,4 @@ KtNamedClassOrObjectSymbol:
|
|||||||
typeParameters: []
|
typeParameters: []
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: true
|
isVararg: true
|
||||||
name: a
|
name: a
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -44,6 +45,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: true
|
isVararg: true
|
||||||
name: b
|
name: b
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -85,6 +87,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: true
|
isVararg: true
|
||||||
name: c
|
name: c
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -126,6 +129,7 @@ KtValueParameterSymbol:
|
|||||||
callableIdIfNonLocal: null
|
callableIdIfNonLocal: null
|
||||||
hasDefaultValue: false
|
hasDefaultValue: false
|
||||||
isExtension: false
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
isVararg: true
|
isVararg: true
|
||||||
name: d
|
name: d
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
@@ -160,4 +164,4 @@ KtFunctionSymbol:
|
|||||||
]
|
]
|
||||||
visibility: Public
|
visibility: Public
|
||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
KtValueParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: null
|
||||||
|
hasDefaultValue: false
|
||||||
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
|
isVararg: false
|
||||||
|
name: it
|
||||||
|
origin: LIBRARY
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Int
|
||||||
|
symbolKind: LOCAL
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
// DO_NOT_CHECK_SYMBOL_RESTORE
|
||||||
|
|
||||||
|
inline fun <T, R> T.use(block: (T) -> R): R {
|
||||||
|
return block(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo() {
|
||||||
|
42.use { it ->
|
||||||
|
i<caret>t.toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
it: kotlin.Int
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
KtValueParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: null
|
||||||
|
hasDefaultValue: false
|
||||||
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: false
|
||||||
|
isVararg: false
|
||||||
|
name: it
|
||||||
|
origin: SOURCE
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Int
|
||||||
|
symbolKind: LOCAL
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
// DO_NOT_CHECK_SYMBOL_RESTORE
|
||||||
|
|
||||||
|
inline fun <T, R> T.use(block: (T) -> R): R {
|
||||||
|
return block(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo() {
|
||||||
|
42.use { i<caret>t.toString() }
|
||||||
|
}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
it: kotlin.Int
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
KtValueParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: null
|
||||||
|
hasDefaultValue: false
|
||||||
|
isExtension: false
|
||||||
|
isImplicitLambdaParameter: true
|
||||||
|
isVararg: false
|
||||||
|
name: it
|
||||||
|
origin: SOURCE_MEMBER_GENERATED
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Int
|
||||||
|
symbolKind: LOCAL
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
Reference in New Issue
Block a user