[AA K2] implement symbol pointers for classes and objects
^KT-54311
This commit is contained in:
committed by
Space Team
parent
85072b0c96
commit
0808f4e233
+12
-6
@@ -11,7 +11,9 @@ import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
|||||||
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
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirClassOrObjectInLibrarySymbolPointer
|
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirMemberClassOrObjectSymbolPointer
|
||||||
|
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KtFirTopLevelClassOrObjectSymbolPointer
|
||||||
|
import org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.requireOwnerPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.toKtClassKind
|
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.toKtClassKind
|
||||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||||
@@ -22,15 +24,14 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
|
|||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.UnsupportedSymbolKind
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.getContainingDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -105,10 +106,15 @@ internal class KtFirNamedClassOrObjectSymbol(
|
|||||||
|
|
||||||
override fun createPointer(): KtSymbolPointer<KtNamedClassOrObjectSymbol> = withValidityAssertion {
|
override fun createPointer(): KtSymbolPointer<KtNamedClassOrObjectSymbol> = withValidityAssertion {
|
||||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||||
if (symbolKind == KtSymbolKind.LOCAL) {
|
|
||||||
throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(classIdIfNonLocal?.asString().orEmpty())
|
when (val symbolKind = symbolKind) {
|
||||||
|
KtSymbolKind.LOCAL ->
|
||||||
|
throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(classIdIfNonLocal?.asString().orEmpty())
|
||||||
|
|
||||||
|
KtSymbolKind.CLASS_MEMBER -> KtFirMemberClassOrObjectSymbolPointer(requireOwnerPointer(), name)
|
||||||
|
KtSymbolKind.TOP_LEVEL -> KtFirTopLevelClassOrObjectSymbolPointer(classIdIfNonLocal!!)
|
||||||
|
else -> throw UnsupportedSymbolKind(this::class, symbolKind)
|
||||||
}
|
}
|
||||||
return KtFirClassOrObjectInLibrarySymbolPointer(classIdIfNonLocal!!)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean = symbolEquals(other)
|
override fun equals(other: Any?): Boolean = symbolEquals(other)
|
||||||
|
|||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.analysis.api.fir.symbols.pointers
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithMembers
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
|
internal class KtFirMemberClassOrObjectSymbolPointer(
|
||||||
|
ownerPointer: KtSymbolPointer<KtSymbolWithMembers>,
|
||||||
|
private val name: Name,
|
||||||
|
) : KtFirMemberSymbolPointer<KtNamedClassOrObjectSymbol>(ownerPointer) {
|
||||||
|
override fun KtFirAnalysisSession.chooseCandidateAndCreateSymbol(
|
||||||
|
candidates: FirScope,
|
||||||
|
firSession: FirSession
|
||||||
|
): KtNamedClassOrObjectSymbol? {
|
||||||
|
val result = candidates.findClassifier<FirRegularClassSymbol>(name) ?: return null
|
||||||
|
return firSymbolBuilder.classifierBuilder.buildNamedClassOrObjectSymbol(result)
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
|||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
class KtFirClassOrObjectInLibrarySymbolPointer(private val classId: ClassId) : KtSymbolPointer<KtNamedClassOrObjectSymbol>() {
|
class KtFirTopLevelClassOrObjectSymbolPointer(private val classId: ClassId) : KtSymbolPointer<KtNamedClassOrObjectSymbol>() {
|
||||||
@Deprecated("Consider using org.jetbrains.kotlin.analysis.api.KtAnalysisSession.restoreSymbol")
|
@Deprecated("Consider using org.jetbrains.kotlin.analysis.api.KtAnalysisSession.restoreSymbol")
|
||||||
override fun restoreSymbol(analysisSession: KtAnalysisSession): KtNamedClassOrObjectSymbol? {
|
override fun restoreSymbol(analysisSession: KtAnalysisSession): KtNamedClassOrObjectSymbol? {
|
||||||
require(analysisSession is KtFirAnalysisSession)
|
require(analysisSession is KtFirAnalysisSession)
|
||||||
+15
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -12,10 +12,13 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.renderWithType
|
import org.jetbrains.kotlin.fir.renderWithType
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.ir.util.IdSignature
|
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal inline fun <reified D : FirDeclaration> FirScope.findDeclarationWithSignature(
|
internal inline fun <reified D : FirDeclaration> FirScope.findDeclarationWithSignature(
|
||||||
signature: IdSignature,
|
signature: IdSignature,
|
||||||
@@ -33,6 +36,17 @@ internal inline fun <reified D : FirDeclaration> FirScope.findDeclarationWithSig
|
|||||||
return foundSymbol
|
return foundSymbol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal inline fun <reified D : FirClassifierSymbol<*>> FirScope.findClassifier(name: Name): D? {
|
||||||
|
var foundSymbol: D? = null
|
||||||
|
processClassifiersByName(name) {
|
||||||
|
if (it is D) {
|
||||||
|
foundSymbol = it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return foundSymbol
|
||||||
|
}
|
||||||
|
|
||||||
internal inline fun <reified D : FirDeclaration> Collection<FirCallableSymbol<*>>.findDeclarationWithSignatureBySymbols(
|
internal inline fun <reified D : FirDeclaration> Collection<FirCallableSymbol<*>>.findDeclarationWithSignatureBySymbols(
|
||||||
signature: IdSignature,
|
signature: IdSignature,
|
||||||
firSession: FirSession
|
firSession: FirSession
|
||||||
|
|||||||
+539
@@ -0,0 +1,539 @@
|
|||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T1
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: X.Y
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: Y
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T1)
|
||||||
|
]
|
||||||
|
visibility: Public
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T2
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: X.Z
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: Z
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T2)
|
||||||
|
]
|
||||||
|
visibility: Public
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T3
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T4
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T5
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: K
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T5)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T6
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: C
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T6)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T1
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: Y
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T1)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T2
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: Z
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T2)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T3
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T4
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T5
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: K
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T5)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T6
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: C
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T6)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: U
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: LOCAL
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T4)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtFunctionSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: null
|
||||||
|
contextReceivers: []
|
||||||
|
hasStableParameterNames: true
|
||||||
|
isBuiltinFunctionInvoke: false
|
||||||
|
isExtension: false
|
||||||
|
isExternal: false
|
||||||
|
isInfix: false
|
||||||
|
isInline: false
|
||||||
|
isOperator: false
|
||||||
|
isOverride: false
|
||||||
|
isStatic: false
|
||||||
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
|
name: foo
|
||||||
|
origin: SOURCE
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Unit
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T3)
|
||||||
|
]
|
||||||
|
valueParameters: []
|
||||||
|
visibility: Public
|
||||||
|
getDispatchReceiver(): X<T>
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: X
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: U
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: LOCAL
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T4)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtFunctionSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: /X.foo
|
||||||
|
contextReceivers: []
|
||||||
|
hasStableParameterNames: true
|
||||||
|
isBuiltinFunctionInvoke: false
|
||||||
|
isExtension: false
|
||||||
|
isExternal: false
|
||||||
|
isInfix: false
|
||||||
|
isInline: false
|
||||||
|
isOperator: false
|
||||||
|
isOverride: false
|
||||||
|
isStatic: false
|
||||||
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
|
name: foo
|
||||||
|
origin: SOURCE
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Unit
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T3)
|
||||||
|
]
|
||||||
|
valueParameters: []
|
||||||
|
visibility: Public
|
||||||
|
getDispatchReceiver(): X<T>
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: X
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: X
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: TOP_LEVEL
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T)
|
||||||
|
]
|
||||||
|
visibility: Public
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
@@ -7,6 +7,17 @@ class X<T> {
|
|||||||
class U<T4> {
|
class U<T4> {
|
||||||
inner class K<T5>
|
inner class K<T5>
|
||||||
class C<T6>
|
class C<T6>
|
||||||
|
class X<T> {
|
||||||
|
inner class Y<T1>
|
||||||
|
class Z<T2>
|
||||||
|
|
||||||
|
fun <T3> foo() {
|
||||||
|
class U<T4> {
|
||||||
|
inner class K<T5>
|
||||||
|
class C<T6>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,6 +189,276 @@ KtNamedClassOrObjectSymbol:
|
|||||||
getContainingModule: KtSourceModule "Sources of main"
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T1
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: Y
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T1)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T2
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: Z
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T2)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T3
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T4
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T5
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: true
|
||||||
|
modality: FINAL
|
||||||
|
name: K
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T5)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtTypeParameterSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
isReified: false
|
||||||
|
name: T6
|
||||||
|
origin: SOURCE
|
||||||
|
typeParameters: []
|
||||||
|
upperBounds: [
|
||||||
|
kotlin/Any?
|
||||||
|
]
|
||||||
|
variance: INVARIANT
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: C
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T6)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: U
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: LOCAL
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T4)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtFunctionSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
callableIdIfNonLocal: null
|
||||||
|
contextReceivers: []
|
||||||
|
hasStableParameterNames: true
|
||||||
|
isBuiltinFunctionInvoke: false
|
||||||
|
isExtension: false
|
||||||
|
isExternal: false
|
||||||
|
isInfix: false
|
||||||
|
isInline: false
|
||||||
|
isOperator: false
|
||||||
|
isOverride: false
|
||||||
|
isStatic: false
|
||||||
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
|
name: foo
|
||||||
|
origin: SOURCE
|
||||||
|
receiverType: null
|
||||||
|
returnType: kotlin/Unit
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T3)
|
||||||
|
]
|
||||||
|
valueParameters: []
|
||||||
|
visibility: Public
|
||||||
|
getDispatchReceiver(): X.U.X<T, T4, T3, T>
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
|
KtNamedClassOrObjectSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: null
|
||||||
|
classKind: CLASS
|
||||||
|
companionObject: null
|
||||||
|
contextReceivers: []
|
||||||
|
isData: false
|
||||||
|
isExternal: false
|
||||||
|
isFun: false
|
||||||
|
isInline: false
|
||||||
|
isInner: false
|
||||||
|
modality: FINAL
|
||||||
|
name: X
|
||||||
|
origin: SOURCE
|
||||||
|
superTypes: [
|
||||||
|
kotlin/Any
|
||||||
|
]
|
||||||
|
symbolKind: CLASS_MEMBER
|
||||||
|
typeParameters: [
|
||||||
|
KtTypeParameterSymbol(T)
|
||||||
|
]
|
||||||
|
visibility: Local
|
||||||
|
getContainingModule: KtSourceModule "Sources of main"
|
||||||
|
deprecationStatus: null
|
||||||
|
|
||||||
KtNamedClassOrObjectSymbol:
|
KtNamedClassOrObjectSymbol:
|
||||||
annotationsList: []
|
annotationsList: []
|
||||||
classIdIfNonLocal: null
|
classIdIfNonLocal: null
|
||||||
|
|||||||
Reference in New Issue
Block a user