[AA] Add KtResolveExtensionInfoProvider to AA.
This provider is responsible for answering queries related to resolve extensions. At the moment, this includes retrieving a KtScope with all REx top-level declarations (moved from KtSymbolFromResolveExtensionProvider), and retrieving information necessary to supply a GeneratedSourcesFilter for REx generated code. Future REx-related functions can be added to this interface. ^KT-59329
This commit is contained in:
committed by
Ilya Kirillov
parent
fa0209a322
commit
9f85739599
@@ -64,7 +64,7 @@ public abstract class KtAnalysisSession(final override val token: KtLifetimeToke
|
||||
KtSignatureSubstitutorMixIn,
|
||||
KtScopeSubstitutionMixIn,
|
||||
KtSymbolProviderByJavaPsiMixIn,
|
||||
KtSymbolFromResolveExtensionProviderMixIn {
|
||||
KtResolveExtensionInfoProviderMixIn {
|
||||
|
||||
public abstract val useSiteModule: KtModule
|
||||
|
||||
@@ -162,8 +162,8 @@ public abstract class KtAnalysisSession(final override val token: KtLifetimeToke
|
||||
internal val scopeSubstitution: KtScopeSubstitution get() = scopeSubstitutionImpl
|
||||
protected abstract val scopeSubstitutionImpl: KtScopeSubstitution
|
||||
|
||||
internal val resolveExtensionProvider: KtSymbolFromResolveExtensionProvider get() = resolveExtensionProviderImpl
|
||||
protected abstract val resolveExtensionProviderImpl: KtSymbolFromResolveExtensionProvider
|
||||
internal val resolveExtensionInfoProvider: KtResolveExtensionInfoProvider get() = resolveExtensionInfoProviderImpl
|
||||
protected abstract val resolveExtensionInfoProviderImpl: KtResolveExtensionInfoProvider
|
||||
|
||||
@KtAnalysisApiInternals
|
||||
public val substitutorFactory: KtSubstitutorFactory get() = substitutorFactoryImpl
|
||||
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright 2010-2020 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.components
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
public abstract class KtResolveExtensionInfoProvider : KtAnalysisSessionComponent() {
|
||||
public abstract fun getResolveExtensionScopeWithTopLevelDeclarations(): KtScope
|
||||
public abstract fun isResolveExtensionFile(file: VirtualFile): Boolean
|
||||
public abstract fun getResolveExtensionNavigationElements(originalPsi: KtElement): Collection<PsiElement>
|
||||
}
|
||||
|
||||
public interface KtResolveExtensionInfoProviderMixIn : KtAnalysisSessionMixIn {
|
||||
/**
|
||||
* Returns [KtScope] which contains all top-level callable declarations which are generated by [KtResolveExtension]
|
||||
*
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
*/
|
||||
public fun getResolveExtensionScopeWithTopLevelDeclarations(): KtScope = withValidityAssertion {
|
||||
analysisSession.resolveExtensionInfoProvider.getResolveExtensionScopeWithTopLevelDeclarations()
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this [VirtualFile] was provided by a [KtResolveExtension].
|
||||
*
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
*/
|
||||
public val VirtualFile.isResolveExtensionFile: Boolean
|
||||
get() = withValidityAssertion {
|
||||
analysisSession.resolveExtensionInfoProvider.isResolveExtensionFile(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this [KtElement] was provided by a [KtResolveExtension].
|
||||
*
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
*/
|
||||
public val KtElement.isFromResolveExtension: Boolean
|
||||
get() = withValidityAssertion {
|
||||
containingKtFile.virtualFile?.isResolveExtensionFile ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the [PsiElement]s which should be used as a navigation target in place of this [KtElement]
|
||||
* provided by a [KtResolveExtension].
|
||||
*
|
||||
* These [PsiElement]s will typically be the source item(s) that caused the given [KtElement] to be generated
|
||||
* by the [KtResolveExtension]. For example, for a [KtElement] generated by a resource compiler, this will
|
||||
* typically be a list of the [PsiElement]s of the resource items in the corresponding resource file.
|
||||
*
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
*/
|
||||
public fun KtElement.getResolveExtensionNavigationElements(): Collection<PsiElement> = withValidityAssertion {
|
||||
analysisSession.resolveExtensionInfoProvider.getResolveExtensionNavigationElements(this)
|
||||
}
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2020 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.components
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
|
||||
public abstract class KtSymbolFromResolveExtensionProvider : KtAnalysisSessionComponent() {
|
||||
public abstract fun getResolveExtensionScopeWithTopLevelDeclarations(): KtScope
|
||||
}
|
||||
|
||||
public interface KtSymbolFromResolveExtensionProviderMixIn : KtAnalysisSessionMixIn {
|
||||
/**
|
||||
* Returns [KtScope] which contains all top-level callable declarations which are generated by [org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension]
|
||||
*
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtension
|
||||
* @see org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
|
||||
*/
|
||||
public fun getResolveExtensionScopeWithTopLevelDeclarations(): KtScope = withValidityAssertion {
|
||||
analysisSession.resolveExtensionProvider.getResolveExtensionScopeWithTopLevelDeclarations()
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -77,10 +77,10 @@ public abstract class KtResolveExtensionFile {
|
||||
public abstract fun buildFileText(): String
|
||||
|
||||
/**
|
||||
* Creates a [KtResolveExtensionReferencePsiTargetsProvider] for this [KtResolveExtensionFile].
|
||||
* Creates a [KtResolveExtensionNavigationTargetsProvider] for this [KtResolveExtensionFile].
|
||||
*
|
||||
* @see KtResolveExtensionReferencePsiTargetsProvider
|
||||
* @see KtResolveExtensionNavigationTargetsProvider
|
||||
* @see KtResolveExtensionFile
|
||||
*/
|
||||
public abstract fun createPsiTargetsProvider(): KtResolveExtensionReferencePsiTargetsProvider
|
||||
public abstract fun createNavigationTargetsProvider(): KtResolveExtensionNavigationTargetsProvider
|
||||
}
|
||||
+5
-5
@@ -7,16 +7,16 @@ package org.jetbrains.kotlin.analysis.api.resolve.extensions
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
public abstract class KtResolveExtensionReferencePsiTargetsProvider {
|
||||
public abstract class KtResolveExtensionNavigationTargetsProvider {
|
||||
/**
|
||||
* Provides a [PsiElement] where `reference.resolveTo` will lead for a [symbol]
|
||||
* Provides a [PsiElement] which will be opened on a navigation request for [element].
|
||||
*
|
||||
* Usually returns a single result. Might return an empty collection if there is no navigation target.
|
||||
* Also, might multiple targets in a case of ambiguity or multiple targets for a [symbol]
|
||||
*
|
||||
* Returned [PsiElement] will be used as a navigation target for a reference inside the IDE.
|
||||
* Returned [PsiElement] will be used as a navigation target inside the IDE.
|
||||
*/
|
||||
public abstract fun KtAnalysisSession.getReferenceTargetsForSymbol(symbol: KtSymbol): Collection<PsiElement>
|
||||
public abstract fun KtAnalysisSession.getNavigationTargets(element: KtElement): Collection<PsiElement>
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
// MODULE: rex1
|
||||
// WITH_RESOLVE_EXTENSION
|
||||
// RESOLVE_EXTENSION_PACKAGE: rex1
|
||||
|
||||
// FILE: rex1.kt
|
||||
// RESOLVE_EXTENSION_FILE
|
||||
package rex1
|
||||
|
||||
// RESOLVE_EXTENSION_CLASSIFIER: RexClass1
|
||||
interface RexClass1
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: rexCallable1
|
||||
fun rexCallable1(): Any = TODO()
|
||||
|
||||
// MODULE: rex2
|
||||
// WITH_RESOLVE_EXTENSION
|
||||
// RESOLVE_EXTENSION_PACKAGE: rex2
|
||||
|
||||
// FILE: rex2.kt
|
||||
// RESOLVE_EXTENSION_FILE
|
||||
package rex2
|
||||
|
||||
// RESOLVE_EXTENSION_CLASSIFIER: RexClass2
|
||||
interface RexClass2
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: rexCallable2
|
||||
fun rexCallable2(): Any = TODO()
|
||||
|
||||
// MODULE: main(rex1, rex2)
|
||||
// FILE: main.kt
|
||||
package main
|
||||
|
||||
import rex1.*
|
||||
import rex2.*
|
||||
|
||||
object <caret_onAirContext>MainObject : RexClass1, RexClass2 {
|
||||
fun foo(): List<Any> = listOf(rexCallable1(), rexCallable2())
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
packages: 2
|
||||
rex1
|
||||
rex2
|
||||
classifiers: 2
|
||||
interface RexClass1
|
||||
PSI: KtClass RexClass1 [from rex1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass RexClass1]
|
||||
interface RexClass2
|
||||
PSI: KtClass RexClass2 [from rex2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass RexClass2]
|
||||
callables: 2
|
||||
fun rexCallable1(): kotlin.Any
|
||||
PSI: KtNamedFunction rexCallable1 [from rex1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction rexCallable1]
|
||||
fun rexCallable2(): kotlin.Any
|
||||
PSI: KtNamedFunction rexCallable2 [from rex2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction rexCallable2]
|
||||
constructors: 0
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
packages: 2
|
||||
KtPackageSymbol:
|
||||
fqName: rex1
|
||||
origin: SOURCE
|
||||
KtPackageSymbol:
|
||||
fqName: rex2
|
||||
origin: SOURCE
|
||||
classifiers: 2
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: rex1/RexClass1
|
||||
classKind: INTERFACE
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: ABSTRACT
|
||||
name: RexClass1
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtClass RexClass1 [from rex1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass RexClass1]
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: rex2/RexClass2
|
||||
classKind: INTERFACE
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: ABSTRACT
|
||||
name: RexClass2
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtClass RexClass2 [from rex2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass RexClass2]
|
||||
callables: 2
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: rex1/rexCallable1
|
||||
contextReceivers: []
|
||||
contractEffects: []
|
||||
hasStableParameterNames: true
|
||||
isBuiltinFunctionInvoke: false
|
||||
isExtension: false
|
||||
isExternal: false
|
||||
isInfix: false
|
||||
isInline: false
|
||||
isOperator: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isSuspend: false
|
||||
modality: FINAL
|
||||
name: rexCallable1
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
PSI: KtNamedFunction rexCallable1 [from rex1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction rexCallable1]
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: rex2/rexCallable2
|
||||
contextReceivers: []
|
||||
contractEffects: []
|
||||
hasStableParameterNames: true
|
||||
isBuiltinFunctionInvoke: false
|
||||
isExtension: false
|
||||
isExternal: false
|
||||
isInfix: false
|
||||
isInline: false
|
||||
isOperator: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isSuspend: false
|
||||
modality: FINAL
|
||||
name: rexCallable2
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
PSI: KtNamedFunction rexCallable2 [from rex2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction rexCallable2]
|
||||
constructors: 0
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
// WITH_RESOLVE_EXTENSION
|
||||
// RESOLVE_EXTENSION_PACKAGE: generated
|
||||
|
||||
// FILE: extension1.kt
|
||||
// RESOLVE_EXTENSION_FILE
|
||||
package generated
|
||||
|
||||
// RESOLVE_EXTENSION_CLASSIFIER: GenClass1
|
||||
class GenClass1 {
|
||||
fun genMemberFun1(foo: Any): String = TODO()
|
||||
fun GenClass2.genMemberExtension1(): Unit = TODO()
|
||||
|
||||
val genMemberVal1: String = "foo"
|
||||
|
||||
var genMemberVar1: String = "bar"
|
||||
private set
|
||||
}
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: genTopLevelFun1
|
||||
fun genTopLevelFun1(foo: GenClass2): String = TODO()
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: genTopLevelExtension1
|
||||
fun String.genTopLevelExtension1(): Int = TODO()
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: genTopLevelVal1
|
||||
val genTopLevelVal1: String = "baz"
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: genTopLevelVar1
|
||||
var genTopLevelVar1: String = "quux"
|
||||
internal set
|
||||
|
||||
// RESOLVE_EXTENSION_CALLABLE: genExtensionVal1
|
||||
val GenClass2.genExtensionVal1: Int
|
||||
get() = TODO
|
||||
|
||||
// FILE: extension2.kt
|
||||
// RESOLVE_EXTENSION_FILE
|
||||
package generated
|
||||
|
||||
// RESOLVE_EXTENSION_CLASSIFIER: GenClass2
|
||||
open class GenClass2
|
||||
|
||||
// FILE: main.kt
|
||||
fun <caret_onAirContext>main() {}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
packages: 1
|
||||
generated
|
||||
classifiers: 2
|
||||
class GenClass1
|
||||
PSI: KtClass GenClass1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass GenClass1]
|
||||
class GenClass2
|
||||
PSI: KtClass GenClass2 [from extension2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass GenClass2]
|
||||
callables: 5
|
||||
fun genTopLevelFun1(foo: generated.GenClass2): kotlin.String
|
||||
PSI: KtNamedFunction genTopLevelFun1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction genTopLevelFun1]
|
||||
fun kotlin.String.genTopLevelExtension1(): kotlin.Int
|
||||
PSI: KtNamedFunction genTopLevelExtension1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction genTopLevelExtension1]
|
||||
val genTopLevelVal1: kotlin.String
|
||||
PSI: KtProperty genTopLevelVal1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genTopLevelVal1]
|
||||
var genTopLevelVar1: kotlin.String
|
||||
PSI: KtProperty genTopLevelVar1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genTopLevelVar1]
|
||||
val generated.GenClass2.genExtensionVal1: kotlin.Int
|
||||
get()
|
||||
PSI: KtProperty genExtensionVal1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genExtensionVal1]
|
||||
constructors: 0
|
||||
+430
@@ -0,0 +1,430 @@
|
||||
packages: 1
|
||||
KtPackageSymbol:
|
||||
fqName: generated
|
||||
origin: SOURCE
|
||||
classifiers: 2
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: generated/GenClass1
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: FINAL
|
||||
name: GenClass1
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtClass GenClass1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass GenClass1]
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: []
|
||||
classIdIfNonLocal: generated/GenClass2
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: OPEN
|
||||
name: GenClass2
|
||||
origin: SOURCE
|
||||
superTypes: [
|
||||
KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtClass GenClass2 [from extension2.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtClass GenClass2]
|
||||
callables: 5
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: generated/genTopLevelFun1
|
||||
contextReceivers: []
|
||||
contractEffects: []
|
||||
hasStableParameterNames: true
|
||||
isBuiltinFunctionInvoke: false
|
||||
isExtension: false
|
||||
isExternal: false
|
||||
isInfix: false
|
||||
isInline: false
|
||||
isOperator: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isSuspend: false
|
||||
modality: FINAL
|
||||
name: genTopLevelFun1
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
valueParameters: [
|
||||
KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: false
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: foo
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: generated/GenClass2
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
]
|
||||
visibility: Public
|
||||
PSI: KtNamedFunction genTopLevelFun1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction genTopLevelFun1]
|
||||
KtFunctionSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: generated/genTopLevelExtension1
|
||||
contextReceivers: []
|
||||
contractEffects: []
|
||||
hasStableParameterNames: true
|
||||
isBuiltinFunctionInvoke: false
|
||||
isExtension: true
|
||||
isExternal: false
|
||||
isInfix: false
|
||||
isInline: false
|
||||
isOperator: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isSuspend: false
|
||||
modality: FINAL
|
||||
name: genTopLevelExtension1
|
||||
origin: SOURCE
|
||||
receiverParameter: KtReceiverParameterSymbol:
|
||||
annotationsList: []
|
||||
origin: SOURCE
|
||||
owningCallableSymbol: KtFunctionSymbol(generated/genTopLevelExtension1)
|
||||
type: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
PSI: KtNamedFunction genTopLevelExtension1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtNamedFunction genTopLevelExtension1]
|
||||
KtKotlinPropertySymbol:
|
||||
annotationsList: []
|
||||
backingFieldSymbol: KtBackingFieldSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
isExtension: false
|
||||
name: field
|
||||
origin: PROPERTY_BACKING_FIELD
|
||||
owningProperty: KtKotlinPropertySymbol(generated/genTopLevelVal1)
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
callableIdIfNonLocal: generated/genTopLevelVal1
|
||||
contextReceivers: []
|
||||
getter: KtPropertyGetterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
hasBody: false
|
||||
hasStableParameterNames: true
|
||||
isDefault: true
|
||||
isExtension: false
|
||||
isInline: false
|
||||
isOverride: false
|
||||
modality: FINAL
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: ACCESSOR
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
hasBackingField: true
|
||||
hasGetter: true
|
||||
hasSetter: false
|
||||
initializer: KtConstantInitializerValue("baz")
|
||||
isConst: false
|
||||
isDelegatedProperty: false
|
||||
isExtension: false
|
||||
isFromPrimaryConstructor: false
|
||||
isLateInit: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isVal: true
|
||||
modality: FINAL
|
||||
name: genTopLevelVal1
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
setter: null
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtProperty genTopLevelVal1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genTopLevelVal1]
|
||||
KtKotlinPropertySymbol:
|
||||
annotationsList: []
|
||||
backingFieldSymbol: KtBackingFieldSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
isExtension: false
|
||||
name: field
|
||||
origin: PROPERTY_BACKING_FIELD
|
||||
owningProperty: KtKotlinPropertySymbol(generated/genTopLevelVar1)
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
callableIdIfNonLocal: generated/genTopLevelVar1
|
||||
contextReceivers: []
|
||||
getter: KtPropertyGetterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
hasBody: false
|
||||
hasStableParameterNames: true
|
||||
isDefault: true
|
||||
isExtension: false
|
||||
isInline: false
|
||||
isOverride: false
|
||||
modality: FINAL
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: ACCESSOR
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
hasBackingField: true
|
||||
hasGetter: true
|
||||
hasSetter: true
|
||||
initializer: KtConstantInitializerValue("quux")
|
||||
isConst: false
|
||||
isDelegatedProperty: false
|
||||
isExtension: false
|
||||
isFromPrimaryConstructor: false
|
||||
isLateInit: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isVal: false
|
||||
modality: FINAL
|
||||
name: genTopLevelVar1
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
setter: KtPropertySetterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
hasBody: false
|
||||
hasStableParameterNames: true
|
||||
isDefault: true
|
||||
isExtension: false
|
||||
isInline: false
|
||||
isOverride: false
|
||||
modality: FINAL
|
||||
origin: SOURCE
|
||||
parameter: KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: false
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: value
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Unit
|
||||
symbolKind: ACCESSOR
|
||||
typeParameters: []
|
||||
valueParameters: [
|
||||
KtValueParameterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
generatedPrimaryConstructorProperty: null
|
||||
hasDefaultValue: false
|
||||
isCrossinline: false
|
||||
isExtension: false
|
||||
isImplicitLambdaParameter: false
|
||||
isNoinline: false
|
||||
isVararg: false
|
||||
name: value
|
||||
origin: SOURCE
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/String
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
]
|
||||
visibility: Internal
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtProperty genTopLevelVar1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genTopLevelVar1]
|
||||
KtKotlinPropertySymbol:
|
||||
annotationsList: []
|
||||
backingFieldSymbol: KtBackingFieldSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
isExtension: false
|
||||
name: field
|
||||
origin: PROPERTY_BACKING_FIELD
|
||||
owningProperty: KtKotlinPropertySymbol(generated/genExtensionVal1)
|
||||
receiverParameter: null
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
symbolKind: LOCAL
|
||||
typeParameters: []
|
||||
callableIdIfNonLocal: generated/genExtensionVal1
|
||||
contextReceivers: []
|
||||
getter: KtPropertyGetterSymbol:
|
||||
annotationsList: []
|
||||
callableIdIfNonLocal: null
|
||||
contextReceivers: []
|
||||
hasBody: true
|
||||
hasStableParameterNames: true
|
||||
isDefault: false
|
||||
isExtension: false
|
||||
isInline: false
|
||||
isOverride: false
|
||||
modality: FINAL
|
||||
origin: SOURCE
|
||||
receiverParameter: KtReceiverParameterSymbol:
|
||||
annotationsList: []
|
||||
origin: SOURCE
|
||||
owningCallableSymbol: KtKotlinPropertySymbol(generated/genExtensionVal1)
|
||||
type: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: generated/GenClass2
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
symbolKind: ACCESSOR
|
||||
typeParameters: []
|
||||
valueParameters: []
|
||||
visibility: Public
|
||||
hasBackingField: false
|
||||
hasGetter: true
|
||||
hasSetter: false
|
||||
initializer: null
|
||||
isConst: false
|
||||
isDelegatedProperty: false
|
||||
isExtension: true
|
||||
isFromPrimaryConstructor: false
|
||||
isLateInit: false
|
||||
isOverride: false
|
||||
isStatic: false
|
||||
isVal: true
|
||||
modality: FINAL
|
||||
name: genExtensionVal1
|
||||
origin: SOURCE
|
||||
receiverParameter: KtReceiverParameterSymbol:
|
||||
annotationsList: []
|
||||
origin: SOURCE
|
||||
owningCallableSymbol: KtKotlinPropertySymbol(generated/genExtensionVal1)
|
||||
type: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: generated/GenClass2
|
||||
returnType: KtUsualClassType:
|
||||
annotationsList: []
|
||||
ownTypeArguments: []
|
||||
type: kotlin/Int
|
||||
setter: null
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
PSI: KtProperty genExtensionVal1 [from extension1.kt]
|
||||
From resolve extension: true
|
||||
Resolve extension navigation targets: 1
|
||||
[Resolve extension navigation target for test for KtProperty genExtensionVal1]
|
||||
constructors: 0
|
||||
Reference in New Issue
Block a user