From a848a0233d346ffbf91dd355c317ddcf1a61b3cc Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 10 Jan 2024 23:26:56 +0900 Subject: [PATCH] [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. --- .../contextCollector/classFunction.copy.txt | 35 ++++++ .../contextCollector/classFunction.kt | 4 + .../contextCollector/classFunction.txt | 36 +++++++ .../contextCollector/classProperty.copy.txt | 31 ++++++ .../contextCollector/classProperty.kt | 4 + .../contextCollector/classProperty.txt | 31 ++++++ .../enumValueFunction.copy.txt | 65 ++++++++++++ .../contextCollector/enumValueFunction.kt | 5 + .../contextCollector/enumValueFunction.txt | 65 ++++++++++++ .../enumValuePropertyAccessor.copy.txt | 79 ++++++++++++++ ...mValue.kt => enumValuePropertyAccessor.kt} | 0 ...alue.txt => enumValuePropertyAccessor.txt} | 2 +- .../error/InvalidInitializer.kt | 6 ++ .../error/InvalidInitializer.txt | 32 ++++++ .../contextCollector/fileAnnotation.copy.txt | 23 ++++ .../contextCollector/fileAnnotation.kt | 4 + .../contextCollector/fileAnnotation.txt | 23 ++++ .../testData/contextCollector/localClass.kt | 9 +- .../testData/contextCollector/localClass.txt | 10 +- .../contextCollector/localClassFunction.kt | 9 ++ .../contextCollector/localClassFunction.txt | 43 ++++++++ .../contextCollector/localFunction.kt | 4 + .../contextCollector/localFunction.txt | 29 +++++ .../localFunctionExpression.copy.txt | 35 ++++++ .../localFunctionExpression.kt | 8 ++ .../localFunctionExpression.txt | 36 +++++++ .../contextCollector/nestedClass.copy.txt | 44 ++++++++ .../testData/contextCollector/nestedClass.kt | 4 + .../testData/contextCollector/nestedClass.txt | 44 ++++++++ ....copy.txt => nestedClassFunction.copy.txt} | 2 +- ...estedClasses.kt => nestedClassFunction.kt} | 0 ...tedClasses.txt => nestedClassFunction.txt} | 2 +- .../topLevelFunction.copy.txt | 21 ++++ .../contextCollector/topLevelFunction.kt | 3 + .../contextCollector/topLevelFunction.txt | 22 ++++ .../topLevelProperty.copy.txt | 19 ++++ .../contextCollector/topLevelProperty.kt | 3 + .../contextCollector/topLevelProperty.txt | 19 ++++ .../testData/contextCollector/typeAlias.kt | 1 + .../testData/contextCollector/typeAlias.txt | 16 +++ .../contextCollector/typeAliasInitializer.kt | 1 + .../contextCollector/typeAliasInitializer.txt | 16 +++ .../ContextCollectorScriptTestGenerated.java | 10 ++ .../ContextCollectorSourceTestGenerated.java | 100 ++++++++++++++++-- 44 files changed, 930 insertions(+), 25 deletions(-) create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classFunction.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classFunction.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classFunction.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classProperty.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classProperty.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/classProperty.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.copy.txt rename analysis/low-level-api-fir/testData/contextCollector/{enumValue.kt => enumValuePropertyAccessor.kt} (100%) rename analysis/low-level-api-fir/testData/contextCollector/{enumValue.txt => enumValuePropertyAccessor.txt} (98%) create mode 100644 analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localClassFunction.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localClassFunction.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localFunction.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localFunction.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/nestedClass.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/nestedClass.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/nestedClass.txt rename analysis/low-level-api-fir/testData/contextCollector/{nestedClasses.copy.txt => nestedClassFunction.copy.txt} (97%) rename analysis/low-level-api-fir/testData/contextCollector/{nestedClasses.kt => nestedClassFunction.kt} (100%) rename analysis/low-level-api-fir/testData/contextCollector/{nestedClasses.txt => nestedClassFunction.txt} (97%) create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.copy.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/typeAlias.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/typeAlias.txt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.kt create mode 100644 analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.txt diff --git a/analysis/low-level-api-fir/testData/contextCollector/classFunction.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/classFunction.copy.txt new file mode 100644 index 00000000000..7d59f64da59 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classFunction.copy.txt @@ -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 + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| { + this@R|/Foo|.R|/Foo.bar|(R|/n|) + } + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] obj: Any?): R|kotlin/Unit| { LAZY_BLOCK } + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/classFunction.kt b/analysis/low-level-api-fir/testData/contextCollector/classFunction.kt new file mode 100644 index 00000000000..dda6522909f --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classFunction.kt @@ -0,0 +1,4 @@ +class Foo { + fun foo(n: Int) { bar(n) } + fun bar(obj: Any?) {} +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/classFunction.txt b/analysis/low-level-api-fir/testData/contextCollector/classFunction.txt new file mode 100644 index 00000000000..d5ede62293c --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classFunction.txt @@ -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 + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] n: R|kotlin/Int|): R|kotlin/Unit| { + this@R|/Foo|.R|/Foo.bar|(R|/n|) + } + + public final [ResolvedTo(CONTRACTS)] fun bar([ResolvedTo(CONTRACTS)] obj: R|kotlin/Any?|): R|kotlin/Unit| { + } + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/classProperty.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/classProperty.copy.txt new file mode 100644 index 00000000000..21f7fab48ce --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classProperty.copy.txt @@ -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 + } + + public? final? [ResolvedTo(RAW_FIR)] val x: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + + public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = this@R|/Foo|.R|/Foo.x| + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/classProperty.kt b/analysis/low-level-api-fir/testData/contextCollector/classProperty.kt new file mode 100644 index 00000000000..acc78698135 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classProperty.kt @@ -0,0 +1,4 @@ +class Foo { + val x = 5 + val y = x +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/classProperty.txt b/analysis/low-level-api-fir/testData/contextCollector/classProperty.txt new file mode 100644 index 00000000000..4dca099b938 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/classProperty.txt @@ -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 + } + + 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| + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.copy.txt new file mode 100644 index 00000000000..f7945044eea --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.copy.txt @@ -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|> : R|kotlin/Comparable|, 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| + Properties: + FirEnumEntrySymbol public final static enum entry VALUE: R|Foo| = object : R|Foo| + FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + Element 9 + Implicit receiver: + FirAnonymousObjectSymbol object : R|Foo| + Type: + Element 10 + Scope: FirLocalScope + +FILE: [ResolvedTo(IMPORTS)] enumValueFunction.kt + public final? [ResolvedTo(RAW_FIR)] enum class Foo : R|kotlin/Enum| { + private [ResolvedTo(RAW_FIR)] constructor(): R|Foo| { + LAZY_super|> + } + + public final static [ResolvedTo(BODY_RESOLVE)] enum entry VALUE: R|Foo| = object : R|Foo| { + private [ResolvedTo(BODY_RESOLVE)] constructor(): R|| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun run(): R|kotlin/Int| { + ^run Int(1) + } + + } + + public final static [ResolvedTo(RAW_FIR)] fun values(): R|kotlin/Array| { + } + + 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| + public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries| + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.kt b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.kt new file mode 100644 index 00000000000..a6b0c827862 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.kt @@ -0,0 +1,5 @@ +enum class Foo { + VALUE { + fun run() = 1 + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.txt b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.txt new file mode 100644 index 00000000000..2ce5e914bbb --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/enumValueFunction.txt @@ -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|> : R|kotlin/Comparable|, 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| + Properties: + FirEnumEntrySymbol public final static enum entry VALUE: R|Foo| = object : R|Foo| + FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + Element 9 + Implicit receiver: + FirAnonymousObjectSymbol object : R|Foo| + Type: + Element 10 + Scope: FirLocalScope + +FILE: [ResolvedTo(IMPORTS)] enumValueFunction.kt + public final [ResolvedTo(STATUS)] enum class Foo : R|kotlin/Enum| { + private [ResolvedTo(STATUS)] constructor(): R|Foo| { + LAZY_super|> + } + + public final static [ResolvedTo(BODY_RESOLVE)] enum entry VALUE: R|Foo| = object : R|Foo| { + private [ResolvedTo(BODY_RESOLVE)] constructor(): R|| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun run(): R|kotlin/Int| { + ^run Int(1) + } + + } + + public final static [ResolvedTo(STATUS)] fun values(): R|kotlin/Array| { + } + + 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| + public [ResolvedTo(STATUS)] get(): R|kotlin/enums/EnumEntries| + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.copy.txt new file mode 100644 index 00000000000..1a48dd0815f --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.copy.txt @@ -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|> : R|kotlin/Comparable|, 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| + 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| + public get(): R|kotlin/enums/EnumEntries| + Element 9 + Implicit receiver: + FirAnonymousObjectSymbol object : R|Direction| + Type: + Element 10 + Scope: FirLocalScope + Properties: + FirBackingFieldSymbol private : R|kotlin/Int| + Element 11 + Scope: FirLocalScope + +FILE: [ResolvedTo(IMPORTS)] enumValuePropertyAccessor.kt + public final? [ResolvedTo(RAW_FIR)] enum class Direction : R|kotlin/Enum| { + private [ResolvedTo(RAW_FIR)] constructor(): R|Direction| { + LAZY_super|> + } + + 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|| { + super() + } + + 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| { + } + + 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| + public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries| + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValue.kt b/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.kt similarity index 100% rename from analysis/low-level-api-fir/testData/contextCollector/enumValue.kt rename to analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.kt diff --git a/analysis/low-level-api-fir/testData/contextCollector/enumValue.txt b/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.txt similarity index 98% rename from analysis/low-level-api-fir/testData/contextCollector/enumValue.txt rename to analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.txt index e3e82598412..966e384484e 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/enumValue.txt +++ b/analysis/low-level-api-fir/testData/contextCollector/enumValuePropertyAccessor.txt @@ -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| { private [ResolvedTo(STATUS)] constructor(): R|Direction| { LAZY_super|> diff --git a/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.kt b/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.kt new file mode 100644 index 00000000000..2a5aef45a18 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.kt @@ -0,0 +1,6 @@ +class A { + class B +} + +val a: A.B.C +val b: A.B \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.txt b/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.txt new file mode 100644 index 00000000000..7764de979d9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/error/InvalidInitializer.txt @@ -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 + } + + public final? [ResolvedTo(RAW_FIR)] class B : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] constructor(): R|A.B| { + LAZY_super + } + + } + + } + public final [ResolvedTo(BODY_RESOLVE)] val a: + public [ResolvedTo(BODY_RESOLVE)] get(): + public? final? [ResolvedTo(RAW_FIR)] val b: A.B + public? [ResolvedTo(RAW_FIR)] get(): A.B \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.copy.txt new file mode 100644 index 00000000000..75ab16fd0a0 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.copy.txt @@ -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 + } + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.kt b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.kt new file mode 100644 index 00000000000..b46c9f54133 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.kt @@ -0,0 +1,4 @@ +@file:Anno + +@Target(FILE) +annotation class Anno \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt new file mode 100644 index 00000000000..da945e8114b --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt @@ -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 + } + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localClass.kt b/analysis/low-level-api-fir/testData/contextCollector/localClass.kt index 0bd03324758..2668fed9393 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/localClass.kt +++ b/analysis/low-level-api-fir/testData/contextCollector/localClass.kt @@ -1,9 +1,4 @@ fun test() { - class Local { - fun foo(): String { - return "foo" - } - } - - Local().foo() + class Local + Local() } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localClass.txt b/analysis/low-level-api-fir/testData/contextCollector/localClass.txt index 4e0f49d6ac2..e86a2425640 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/localClass.txt +++ b/analysis/low-level-api-fir/testData/contextCollector/localClass.txt @@ -21,10 +21,6 @@ Tower Data Context: Implicit receiver: FirRegularClassSymbol local final class Local : R|kotlin/Any| Type: .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() } - public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/String| { - ^foo String(foo) - } - } - R|/Local.Local|().R|/foo|() + R|/Local.Local|() } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.kt b/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.kt new file mode 100644 index 00000000000..0bd03324758 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.kt @@ -0,0 +1,9 @@ +fun test() { + class Local { + fun foo(): String { + return "foo" + } + } + + Local().foo() +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.txt b/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.txt new file mode 100644 index 00000000000..9d7191d757d --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localClassFunction.txt @@ -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 + 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| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/String| { + ^foo String(foo) + } + + } + + R|/Local.Local|().R|/foo|() + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localFunction.kt b/analysis/low-level-api-fir/testData/contextCollector/localFunction.kt new file mode 100644 index 00000000000..b05c1f92441 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localFunction.kt @@ -0,0 +1,4 @@ +fun test() { + fun local() {} + local() +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localFunction.txt b/analysis/low-level-api-fir/testData/contextCollector/localFunction.txt new file mode 100644 index 00000000000..d659e7f97e0 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localFunction.txt @@ -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|() + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.copy.txt new file mode 100644 index 00000000000..31285c0d96a --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.copy.txt @@ -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|/n|) + } + + R|/local|(Int(5)) + } + public? final? [ResolvedTo(RAW_FIR)] fun call([ResolvedTo(RAW_FIR)] obj: Any?): R|kotlin/Unit| { LAZY_BLOCK } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.kt b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.kt new file mode 100644 index 00000000000..17a92757606 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.kt @@ -0,0 +1,8 @@ +fun test() { + fun local(n: Int) { + call(n) + } + local(5) +} + +fun call(obj: Any?) {} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.txt b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.txt new file mode 100644 index 00000000000..fdb05de639d --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/localFunctionExpression.txt @@ -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|/n|) + } + + R|/local|(Int(5)) + } + public final [ResolvedTo(CONTRACTS)] fun call([ResolvedTo(CONTRACTS)] obj: R|kotlin/Any?|): R|kotlin/Unit| { + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClass.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.copy.txt new file mode 100644 index 00000000000..cfea41d039f --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.copy.txt @@ -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 : 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| { + LAZY_super + } + + 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| { + LAZY_super + } + + } + + public final [ResolvedTo(STATUS)] class Baz : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] constructor(): R|Foo.Baz| { + LAZY_super + } + + } + + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClass.kt b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.kt new file mode 100644 index 00000000000..e3ec205d0a5 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.kt @@ -0,0 +1,4 @@ +class Foo { + class Bar + class Baz +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClass.txt b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.txt new file mode 100644 index 00000000000..57c6aabb093 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/nestedClass.txt @@ -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 : 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| { + LAZY_super + } + + 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| { + LAZY_super + } + + } + + public final [ResolvedTo(STATUS)] class Baz : R|kotlin/Any| { + public [ResolvedTo(STATUS)] constructor(): R|Foo.Baz| { + LAZY_super + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClasses.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.copy.txt similarity index 97% rename from analysis/low-level-api-fir/testData/contextCollector/nestedClasses.copy.txt rename to analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.copy.txt index 484143306c1..66661900f7d 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/nestedClasses.copy.txt +++ b/analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.copy.txt @@ -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| { LAZY_super diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClasses.kt b/analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.kt similarity index 100% rename from analysis/low-level-api-fir/testData/contextCollector/nestedClasses.kt rename to analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.kt diff --git a/analysis/low-level-api-fir/testData/contextCollector/nestedClasses.txt b/analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.txt similarity index 97% rename from analysis/low-level-api-fir/testData/contextCollector/nestedClasses.txt rename to analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.txt index 2960f66f32c..a19b8752e97 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/nestedClasses.txt +++ b/analysis/low-level-api-fir/testData/contextCollector/nestedClassFunction.txt @@ -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| { LAZY_super diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.copy.txt new file mode 100644 index 00000000000..511b2fbed41 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.copy.txt @@ -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 } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.kt b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.kt new file mode 100644 index 00000000000..bc5661b97c0 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.kt @@ -0,0 +1,3 @@ +fun foo() { bar() } + +fun bar() {} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.txt b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.txt new file mode 100644 index 00000000000..b1b536b0622 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelFunction.txt @@ -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| { + } \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.copy.txt b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.copy.txt new file mode 100644 index 00000000000..dbeaa8c5d82 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.copy.txt @@ -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: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] get(): + public final [ResolvedTo(BODY_RESOLVE)] val y: R|kotlin/Int| = R|/x| + public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.kt b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.kt new file mode 100644 index 00000000000..6f51861f479 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.kt @@ -0,0 +1,3 @@ +val x = 5 + +val y = x \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.txt b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.txt new file mode 100644 index 00000000000..82cc4b1d5b7 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/topLevelProperty.txt @@ -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| \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/typeAlias.kt b/analysis/low-level-api-fir/testData/contextCollector/typeAlias.kt new file mode 100644 index 00000000000..ae1ff728210 --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/typeAlias.kt @@ -0,0 +1 @@ +typealias Foo = String \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/typeAlias.txt b/analysis/low-level-api-fir/testData/contextCollector/typeAlias.txt new file mode 100644 index 00000000000..591e28e787b --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/typeAlias.txt @@ -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 diff --git a/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.kt b/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.kt new file mode 100644 index 00000000000..52d9d14fe5b --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.kt @@ -0,0 +1 @@ +typealias Foo = String \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.txt b/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.txt new file mode 100644 index 00000000000..bdfd75d4daa --- /dev/null +++ b/analysis/low-level-api-fir/testData/contextCollector/typeAliasInitializer.txt @@ -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 diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorScriptTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorScriptTestGenerated.java index 5699aa55e42..e40564d8521 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorScriptTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorScriptTestGenerated.java @@ -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") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorSourceTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorSourceTestGenerated.java index e021715be44..d6fe025fd94 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorSourceTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorSourceTestGenerated.java @@ -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")