[Analysis API] Add more ContextCollector tests inspired by on-air tests

As the on-air analysis is obsolete, related tests are going to be
deleted. Here we add cases not yet covered by 'ContextCollector' tests.
This commit is contained in:
Yan Zhulanow
2024-01-10 23:26:56 +09:00
committed by Space Team
parent f9c7ca3bdc
commit a848a0233d
44 changed files with 930 additions and 25 deletions
@@ -0,0 +1,35 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final class Foo : R|kotlin/Any|
Type: Foo
Element 7
Scope: FirLocalScope
Properties:
FirValueParameterSymbol n: R|kotlin/Int|
FILE: [ResolvedTo(IMPORTS)] classFunction.kt
public final? [ResolvedTo(RAW_FIR)] class Foo : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| {
this@R|/Foo|.R|/Foo.bar|(R|<local>/n|)
}
public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] obj: Any?): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -0,0 +1,4 @@
class Foo {
<expr>fun foo(n: Int) { bar(n) }</expr>
fun bar(obj: Any?) {}
}
@@ -0,0 +1,36 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final class Foo : R|kotlin/Any|
Type: Foo
Element 7
Scope: FirLocalScope
Properties:
FirValueParameterSymbol n: R|kotlin/Int|
FILE: [ResolvedTo(IMPORTS)] classFunction.kt
public final [ResolvedTo(STATUS)] class Foo : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| {
this@R|/Foo|.R|/Foo.bar|(R|<local>/n|)
}
public final [ResolvedTo(CONTRACTS)] fun bar([ResolvedTo(CONTRACTS)] obj: R|kotlin/Any?|): R|kotlin/Unit| {
}
}
@@ -0,0 +1,31 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final class Foo : R|kotlin/Any|
Type: Foo
FILE: [ResolvedTo(IMPORTS)] classProperty.kt
public final? [ResolvedTo(RAW_FIR)] class Foo : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] val x: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = this@R|/Foo|.R|/Foo.x|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
}
@@ -0,0 +1,4 @@
class Foo {
val x = 5
<expr>val y = x</expr>
}
@@ -0,0 +1,31 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final class Foo : R|kotlin/Any|
Type: Foo
FILE: [ResolvedTo(IMPORTS)] classProperty.kt
public final [ResolvedTo(STATUS)] class Foo : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val x: R|kotlin/Int| = Int(5)
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int|
public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = this@R|/Foo|.R|/Foo.x|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
}
@@ -0,0 +1,65 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Type: kotlin.Enum.Companion
Element 7
Scope: FirNestedClassifierScopeWithSubstitution
Classifiers:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Static scope owner symbol: FirRegularClassSymbol public abstract class Enum<E : R|kotlin/Enum<E>|> : R|kotlin/Comparable<E>|, R|java/io/Serializable|
Element 8
Scope: FirNameAwareOnlyCallablesScope
Functions
FirNamedFunctionSymbol public final static fun valueOf(value: R|kotlin/String|): R|Foo|
FirNamedFunctionSymbol public final static fun values(): R|kotlin/Array<Foo>|
Properties:
FirEnumEntrySymbol public final static enum entry VALUE: R|Foo| = object : R|Foo|
FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries<Foo>|
public get(): R|kotlin/enums/EnumEntries<Foo>|
Element 9
Implicit receiver:
FirAnonymousObjectSymbol object : R|Foo|
Type: <anonymous>
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] enumValueFunction.kt
public final? [ResolvedTo(RAW_FIR)] enum class Foo : R|kotlin/Enum<Foo>| {
private [ResolvedTo(RAW_FIR)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Enum<Foo>|>
}
public final static [ResolvedTo(BODY_RESOLVE)] enum entry VALUE: R|Foo| = object : R|Foo| {
private [ResolvedTo(BODY_RESOLVE)] constructor(): R|<anonymous>| {
super<R|Foo|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun run(): R|kotlin/Int| {
^run Int(1)
}
}
public final static [ResolvedTo(RAW_FIR)] fun values(): R|kotlin/Array<Foo>| {
}
public final static [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|Foo| {
}
public final static [ResolvedTo(RAW_FIR)] val entries: R|kotlin/enums/EnumEntries<Foo>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<Foo>|
}
@@ -0,0 +1,5 @@
enum class Foo {
VALUE {
<expr>fun run() = 1</expr>
}
}
@@ -0,0 +1,65 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Type: kotlin.Enum.Companion
Element 7
Scope: FirNestedClassifierScopeWithSubstitution
Classifiers:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Static scope owner symbol: FirRegularClassSymbol public abstract class Enum<E : R|kotlin/Enum<E>|> : R|kotlin/Comparable<E>|, R|java/io/Serializable|
Element 8
Scope: FirNameAwareOnlyCallablesScope
Functions
FirNamedFunctionSymbol public final static fun valueOf(value: R|kotlin/String|): R|Foo|
FirNamedFunctionSymbol public final static fun values(): R|kotlin/Array<Foo>|
Properties:
FirEnumEntrySymbol public final static enum entry VALUE: R|Foo| = object : R|Foo|
FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries<Foo>|
public get(): R|kotlin/enums/EnumEntries<Foo>|
Element 9
Implicit receiver:
FirAnonymousObjectSymbol object : R|Foo|
Type: <anonymous>
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] enumValueFunction.kt
public final [ResolvedTo(STATUS)] enum class Foo : R|kotlin/Enum<Foo>| {
private [ResolvedTo(STATUS)] constructor(): R|Foo| {
LAZY_super<R|kotlin/Enum<Foo>|>
}
public final static [ResolvedTo(BODY_RESOLVE)] enum entry VALUE: R|Foo| = object : R|Foo| {
private [ResolvedTo(BODY_RESOLVE)] constructor(): R|<anonymous>| {
super<R|Foo|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun run(): R|kotlin/Int| {
^run Int(1)
}
}
public final static [ResolvedTo(STATUS)] fun values(): R|kotlin/Array<Foo>| {
}
public final static [ResolvedTo(STATUS)] fun valueOf([ResolvedTo(STATUS)] value: R|kotlin/String|): R|Foo| {
}
public final static [ResolvedTo(STATUS)] val entries: R|kotlin/enums/EnumEntries<Foo>|
public [ResolvedTo(STATUS)] get(): R|kotlin/enums/EnumEntries<Foo>|
}
@@ -0,0 +1,79 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Implicit receiver:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Type: kotlin.Enum.Companion
Element 7
Scope: FirNestedClassifierScopeWithSubstitution
Classifiers:
FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
Static scope owner symbol: FirRegularClassSymbol public abstract class Enum<E : R|kotlin/Enum<E>|> : R|kotlin/Comparable<E>|, R|java/io/Serializable|
Element 8
Scope: FirNameAwareOnlyCallablesScope
Functions
FirNamedFunctionSymbol public final static fun valueOf(value: R|kotlin/String|): R|Direction|
FirNamedFunctionSymbol public final static fun values(): R|kotlin/Array<Direction>|
Properties:
FirEnumEntrySymbol public final static enum entry EAST: R|Direction| = object : R|Direction|
FirEnumEntrySymbol public final static enum entry NORTH: R|Direction| = LAZY_EXPRESSION
FirEnumEntrySymbol public final static enum entry SOUTH: R|Direction| = LAZY_EXPRESSION
FirEnumEntrySymbol public final static enum entry WEST: R|Direction| = LAZY_EXPRESSION
FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries<Direction>|
public get(): R|kotlin/enums/EnumEntries<Direction>|
Element 9
Implicit receiver:
FirAnonymousObjectSymbol object : R|Direction|
Type: <anonymous>
Element 10
Scope: FirLocalScope
Properties:
FirBackingFieldSymbol private <explicit backing field>: R|kotlin/Int|
Element 11
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] enumValuePropertyAccessor.kt
public final? [ResolvedTo(RAW_FIR)] enum class Direction : R|kotlin/Enum<Direction>| {
private [ResolvedTo(RAW_FIR)] constructor(): R|Direction| {
LAZY_super<R|kotlin/Enum<Direction>|>
}
public final static [ResolvedTo(RAW_FIR)] enum entry NORTH: R|Direction| = LAZY_EXPRESSION
public final static [ResolvedTo(BODY_RESOLVE)] enum entry EAST: R|Direction| = object : R|Direction| {
private [ResolvedTo(BODY_RESOLVE)] constructor(): R|<anonymous>| {
super<R|Direction|>()
}
public open override [ResolvedTo(BODY_RESOLVE)] val code: R|kotlin/Int|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
^ Int(2)
}
}
public final static [ResolvedTo(RAW_FIR)] enum entry SOUTH: R|Direction| = LAZY_EXPRESSION
public final static [ResolvedTo(RAW_FIR)] enum entry WEST: R|Direction| = LAZY_EXPRESSION
public? abstract [ResolvedTo(RAW_FIR)] val code: Int
public? [ResolvedTo(RAW_FIR)] get(): Int
public final static [ResolvedTo(RAW_FIR)] fun values(): R|kotlin/Array<Direction>| {
}
public final static [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|Direction| {
}
public final static [ResolvedTo(RAW_FIR)] val entries: R|kotlin/enums/EnumEntries<Direction>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<Direction>|
}
@@ -43,7 +43,7 @@ Tower Data Context:
Element 11
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] enumValue.kt
FILE: [ResolvedTo(IMPORTS)] enumValuePropertyAccessor.kt
public final [ResolvedTo(STATUS)] enum class Direction : R|kotlin/Enum<Direction>| {
private [ResolvedTo(STATUS)] constructor(): R|Direction| {
LAZY_super<R|kotlin/Enum<Direction>|>
@@ -0,0 +1,6 @@
class A {
class B
}
val a: <expr>A.B.C</expr>
val b: A.B
@@ -0,0 +1,32 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] InvalidInitializer.kt
public final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|A| {
LAZY_super<R|kotlin/Any|>
}
public final? [ResolvedTo(RAW_FIR)] class B : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|A.B| {
LAZY_super<R|kotlin/Any|>
}
}
}
public final [ResolvedTo(BODY_RESOLVE)] val a: <ERROR TYPE REF: Symbol not found for A.B.C>
public [ResolvedTo(BODY_RESOLVE)] get(): <ERROR TYPE REF: Symbol not found for A.B.C>
public? final? [ResolvedTo(RAW_FIR)] val b: A.B
public? [ResolvedTo(RAW_FIR)] get(): A.B
@@ -0,0 +1,23 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] fileAnnotation.kt
@FILE:R|Anno|[Types]()
[ResolvedTo(STATUS)] annotations container
@R|kotlin/annotation/Target|[Types](FILE#) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
}
@@ -0,0 +1,4 @@
<expr>@file:Anno</expr>
@Target(FILE)
annotation class Anno
@@ -0,0 +1,23 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] fileAnnotation.kt
@FILE:R|Anno|[Types]()
[ResolvedTo(STATUS)] annotations container
@R|kotlin/annotation/Target|[Types](FILE#) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] constructor(): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
}
@@ -1,9 +1,4 @@
fun test() {
class Local {
fun foo(): String {
<expr>return "foo"</expr>
}
}
Local().foo()
<expr>class Local</expr>
Local()
}
@@ -21,10 +21,6 @@ Tower Data Context:
Implicit receiver:
FirRegularClassSymbol local final class Local : R|kotlin/Any|
Type: <local>.Local
Element 9
Scope: FirLocalScope
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] localClass.kt
public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| {
@@ -33,11 +29,7 @@ FILE: [ResolvedTo(IMPORTS)] localClass.kt
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/String| {
^foo String(foo)
}
}
R|<local>/Local.Local|().R|<local>/foo|()
R|<local>/Local.Local|()
}
@@ -0,0 +1,9 @@
fun test() {
class Local {
fun foo(): String {
<expr>return "foo"</expr>
}
}
Local().foo()
}
@@ -0,0 +1,43 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
Element 7
Scope: FirLocalScope
Classifiers:
FirRegularClassSymbol local final class Local : R|kotlin/Any|
Element 8
Implicit receiver:
FirRegularClassSymbol local final class Local : R|kotlin/Any|
Type: <local>.Local
Element 9
Scope: FirLocalScope
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] localClassFunction.kt
public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| {
local final [ResolvedTo(BODY_RESOLVE)] class Local : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|<local>/Local| {
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/String| {
^foo String(foo)
}
}
R|<local>/Local.Local|().R|<local>/foo|()
}
@@ -0,0 +1,4 @@
fun test() {
<expr>fun local() {}</expr>
local()
}
@@ -0,0 +1,29 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
Element 7
Scope: FirLocalScope
Functions
FirNamedFunctionSymbol local final fun local(): R|kotlin/Unit|
Element 8
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] localFunction.kt
public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| {
local final [ResolvedTo(BODY_RESOLVE)] fun local(): R|kotlin/Unit| {
}
R|<local>/local|()
}
@@ -0,0 +1,35 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
Element 7
Scope: FirLocalScope
Functions
FirNamedFunctionSymbol local final fun local(n: R|kotlin/Int|): R|kotlin/Unit|
Element 8
Scope: FirLocalScope
Properties:
FirValueParameterSymbol n: R|kotlin/Int|
Element 9
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] localFunctionExpression.kt
public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| {
local final [ResolvedTo(BODY_RESOLVE)] fun local([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| {
R|/call|(R|<local>/n|)
}
R|<local>/local|(Int(5))
}
public? final? [ResolvedTo(RAW_FIR)] fun call([ResolvedTo(RAW_FIR)] obj: Any?): R|kotlin/Unit| { LAZY_BLOCK }
@@ -0,0 +1,8 @@
fun test() {
fun local(n: Int) {
<expr>call(n)</expr>
}
local(5)
}
fun call(obj: Any?) {}
@@ -0,0 +1,36 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
Element 7
Scope: FirLocalScope
Functions
FirNamedFunctionSymbol local final fun local(n: R|kotlin/Int|): R|kotlin/Unit|
Element 8
Scope: FirLocalScope
Properties:
FirValueParameterSymbol n: R|kotlin/Int|
Element 9
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] localFunctionExpression.kt
public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| {
local final [ResolvedTo(BODY_RESOLVE)] fun local([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| {
R|/call|(R|<local>/n|)
}
R|<local>/local|(Int(5))
}
public final [ResolvedTo(CONTRACTS)] fun call([ResolvedTo(CONTRACTS)] obj: R|kotlin/Any?|): R|kotlin/Unit| {
}
@@ -0,0 +1,44 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirNestedClassifierScopeImpl
Classifiers:
FirRegularClassSymbol public final? class Bar<B> : R|kotlin/Any|
FirRegularClassSymbol public final class Baz : R|kotlin/Any|
Element 7
Implicit receiver:
FirRegularClassSymbol public final class Baz : R|kotlin/Any|
Type: Foo.Baz
FILE: [ResolvedTo(IMPORTS)] nestedClass.kt
public final? [ResolvedTo(SUPER_TYPES)] class Foo<[ResolvedTo(SUPER_TYPES)] A> : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor<[ResolvedTo(SUPER_TYPES)] A>(): R|Foo<A>| {
LAZY_super<R|kotlin/Any|>
}
public final? [ResolvedTo(RAW_FIR)] class Bar<[ResolvedTo(RAW_FIR)] B> : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor<[ResolvedTo(RAW_FIR)] B>(): R|Foo.Bar<B>| {
LAZY_super<R|kotlin/Any|>
}
}
public final [ResolvedTo(STATUS)] class Baz : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|Foo.Baz| {
LAZY_super<R|kotlin/Any|>
}
}
}
@@ -0,0 +1,4 @@
class Foo<A> {
class Bar<B>
<expr>class Baz</expr>
}
@@ -0,0 +1,44 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirNestedClassifierScopeImpl
Classifiers:
FirRegularClassSymbol public final? class Bar<B> : R|kotlin/Any|
FirRegularClassSymbol public final class Baz : R|kotlin/Any|
Element 7
Implicit receiver:
FirRegularClassSymbol public final class Baz : R|kotlin/Any|
Type: Foo.Baz
FILE: [ResolvedTo(IMPORTS)] nestedClass.kt
public final [ResolvedTo(STATUS)] class Foo<[ResolvedTo(STATUS)] A> : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor<[ResolvedTo(STATUS)] A>(): R|Foo<A>| {
LAZY_super<R|kotlin/Any|>
}
public final? [ResolvedTo(RAW_FIR)] class Bar<[ResolvedTo(RAW_FIR)] B> : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor<[ResolvedTo(RAW_FIR)] B>(): R|Foo.Bar<B>| {
LAZY_super<R|kotlin/Any|>
}
}
public final [ResolvedTo(STATUS)] class Baz : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|Foo.Baz| {
LAZY_super<R|kotlin/Any|>
}
}
}
@@ -30,7 +30,7 @@ Tower Data Context:
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] nestedClasses.kt
FILE: [ResolvedTo(IMPORTS)] nestedClassFunction.kt
public final? [ResolvedTo(RAW_FIR)] class Foo<[ResolvedTo(RAW_FIR)] F> : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor<[ResolvedTo(RAW_FIR)] F>(): R|test/Foo<F>| {
LAZY_super<R|kotlin/Any|>
@@ -30,7 +30,7 @@ Tower Data Context:
Element 10
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] nestedClasses.kt
FILE: [ResolvedTo(IMPORTS)] nestedClassFunction.kt
public final [ResolvedTo(STATUS)] class Foo<[ResolvedTo(STATUS)] F> : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor<[ResolvedTo(STATUS)] F>(): R|test/Foo<F>| {
LAZY_super<R|kotlin/Any|>
@@ -0,0 +1,21 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] topLevelFunction.kt
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
R|/bar|()
}
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
@@ -0,0 +1,3 @@
<expr>fun foo() { bar() }</expr>
fun bar() {}
@@ -0,0 +1,22 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
Element 6
Scope: FirLocalScope
FILE: [ResolvedTo(IMPORTS)] topLevelFunction.kt
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
R|/bar|()
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
@@ -0,0 +1,19 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] topLevelProperty.kt
public? final? [ResolvedTo(RAW_FIR)] val x: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = R|/x|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -0,0 +1,3 @@
val x = 5
<expr>val y = x</expr>
@@ -0,0 +1,19 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] topLevelProperty.kt
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val x: R|kotlin/Int| = Int(5)
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int|
public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = R|/x|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -0,0 +1 @@
<expr>typealias Foo = String</expr>
@@ -0,0 +1,16 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] typeAlias.kt
public final [ResolvedTo(RAW_FIR)] typealias Foo = String
@@ -0,0 +1 @@
typealias Foo = <expr>String</expr>
@@ -0,0 +1,16 @@
Tower Data Context:
Element 0
Scope: FirDefaultStarImportingScope
Element 1
Scope: FirExplicitStarImportingScope
Element 2
Scope: FirDefaultSimpleImportingScope
Element 3
Scope: FirDefaultSimpleImportingScope
Element 4
Scope: FirPackageMemberScope
Element 5
Scope: FirExplicitSimpleImportingScope
FILE: [ResolvedTo(IMPORTS)] typeAliasInitializer.kt
public final [ResolvedTo(RAW_FIR)] typealias Foo = String
@@ -34,6 +34,16 @@ public class ContextCollectorScriptTestGenerated extends AbstractContextCollecto
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testData/contextCollector/error")
@TestDataPath("$PROJECT_ROOT")
public class Error {
@Test
public void testAllFilesPresentInError() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/contextCollector/error"), Pattern.compile("^(.+)\\.(kts)$"), null, true);
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testData/contextCollector/scripts")
@TestDataPath("$PROJECT_ROOT")
@@ -24,6 +24,18 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/contextCollector"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
@TestMetadata("classFunction.kt")
public void testClassFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/classFunction.kt");
}
@Test
@TestMetadata("classProperty.kt")
public void testClassProperty() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/classProperty.kt");
}
@Test
@TestMetadata("contextReceivers.kt")
public void testContextReceivers() throws Exception {
@@ -37,9 +49,15 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
}
@Test
@TestMetadata("enumValue.kt")
public void testEnumValue() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/enumValue.kt");
@TestMetadata("enumValueFunction.kt")
public void testEnumValueFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.kt");
}
@Test
@TestMetadata("enumValuePropertyAccessor.kt")
public void testEnumValuePropertyAccessor() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.kt");
}
@Test
@@ -60,6 +78,12 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
runTest("analysis/low-level-api-fir/testData/contextCollector/file.kt");
}
@Test
@TestMetadata("fileAnnotation.kt")
public void testFileAnnotation() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.kt");
}
@Test
@TestMetadata("forLoopVariable.kt")
public void testForLoopVariable() throws Exception {
@@ -91,9 +115,33 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
}
@Test
@TestMetadata("nestedClasses.kt")
public void testNestedClasses() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/nestedClasses.kt");
@TestMetadata("localClassFunction.kt")
public void testLocalClassFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/localClassFunction.kt");
}
@Test
@TestMetadata("localFunction.kt")
public void testLocalFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/localFunction.kt");
}
@Test
@TestMetadata("localFunctionExpression.kt")
public void testLocalFunctionExpression() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.kt");
}
@Test
@TestMetadata("nestedClass.kt")
public void testNestedClass() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/nestedClass.kt");
}
@Test
@TestMetadata("nestedClassFunction.kt")
public void testNestedClassFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.kt");
}
@Test
@@ -138,6 +186,30 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
runTest("analysis/low-level-api-fir/testData/contextCollector/simple.kt");
}
@Test
@TestMetadata("topLevelFunction.kt")
public void testTopLevelFunction() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.kt");
}
@Test
@TestMetadata("topLevelProperty.kt")
public void testTopLevelProperty() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.kt");
}
@Test
@TestMetadata("typeAlias.kt")
public void testTypeAlias() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/typeAlias.kt");
}
@Test
@TestMetadata("typeAliasInitializer.kt")
public void testTypeAliasInitializer() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.kt");
}
@Test
@TestMetadata("typeParameter.kt")
public void testTypeParameter() throws Exception {
@@ -244,6 +316,22 @@ public class ContextCollectorSourceTestGenerated extends AbstractContextCollecto
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testData/contextCollector/error")
@TestDataPath("$PROJECT_ROOT")
public class Error {
@Test
public void testAllFilesPresentInError() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/contextCollector/error"), Pattern.compile("^(.+)\\.(kt)$"), null, true);
}
@Test
@TestMetadata("InvalidInitializer.kt")
public void testInvalidInitializer() throws Exception {
runTest("analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.kt");
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testData/contextCollector/scripts")
@TestDataPath("$PROJECT_ROOT")