[Analysis API] Collect designations only for autonomous declarations

Parameters, type parameters, and property accessors are not
self-sufficient declarations (their resolution depends on resolution
of their parent), so a proper designation path cannot be computed
for them.

Without a designation path, 'ContextCollector' performs analysis of the
whole file, which is inefficient.
This commit is contained in:
Yan Zhulanow
2023-12-20 00:39:05 +09:00
committed by Space Team
parent 4a2f11b2f5
commit bed73fd650
20 changed files with 282 additions and 53 deletions
@@ -14,7 +14,7 @@ Tower Data Context:
Element 6
Scope: FirNestedClassifierScopeWithSubstitution
Classifiers:
FirRegularClassSymbol public final class Nested : R|kotlin/Any|
FirRegularClassSymbol public? final? class Nested : R|kotlin/Any|
Static scope owner symbol: FirRegularClassSymbol public open class Base : R|kotlin/Any|
Element 7
Scope: FirLocalScope
@@ -22,20 +22,20 @@ Tower Data Context:
FirValueParameterSymbol name: R|kotlin/String| = String(name)
FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter_initializerExpression.kt
public open [ResolvedTo(ANNOTATION_ARGUMENTS)] class Base : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Base| {
super<R|kotlin/Any|>()
public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|test/Base| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Nested : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Base.Nested| {
super<R|kotlin/Any|>()
public? final? [ResolvedTo(RAW_FIR)] class Nested : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|test/Base.Nested| {
LAZY_super<R|kotlin/Any|>
}
}
public final [ResolvedTo(BODY_RESOLVE)] val fromBase: R|kotlin/String| = String()
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String|
public final [ResolvedTo(STATUS)] val fromBase: R|kotlin/String| = LAZY_EXPRESSION
public [ResolvedTo(STATUS)] get(): R|kotlin/String|
}
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Child : R|test/Base| {
@@ -14,7 +14,7 @@ Tower Data Context:
Element 6
Scope: FirNestedClassifierScopeWithSubstitution
Classifiers:
FirRegularClassSymbol public final class Nested : R|kotlin/Any|
FirRegularClassSymbol public? final? class Nested : R|kotlin/Any|
Static scope owner symbol: FirRegularClassSymbol public open class Base : R|kotlin/Any|
Element 7
Scope: FirLocalScope
@@ -22,14 +22,14 @@ Tower Data Context:
FirValueParameterSymbol name: R|kotlin/String|
FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter_typeRef.kt
public open [ResolvedTo(ANNOTATION_ARGUMENTS)] class Base : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Base| {
super<R|kotlin/Any|>()
public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|test/Base| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Nested : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Base.Nested| {
super<R|kotlin/Any|>()
public? final? [ResolvedTo(RAW_FIR)] class Nested : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|test/Base.Nested| {
LAZY_super<R|kotlin/Any|>
}
}