[LL API] Add some more 'ContextCollector' tests
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/enumValue.kt b/analysis/low-level-api-fir/testdata/contextCollector/enumValue.kt
new file mode 100644
index 0000000..b8e051e
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/enumValue.kt
@@ -0,0 +1,23 @@
+enum class Direction {
+    NORTH {
+        override val code: Int
+            get() = 1
+    },
+
+    EAST {
+        override val code: Int
+            get() = <expr>2</expr>
+    },
+
+    SOUTH {
+        override val code: Int
+            get() = 3
+    },
+
+    WEST {
+        override val code: Int
+            get() = 4
+    };
+
+    abstract val code: Int
+}
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/enumValue.txt b/analysis/low-level-api-fir/testdata/contextCollector/enumValue.txt
new file mode 100644
index 0000000..20d8600
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/enumValue.txt
@@ -0,0 +1,81 @@
+Tower Data Context:
+    Element 0
+        Scope: FirDefaultStarImportingScope
+    Element 1
+        Scope: FirDefaultSimpleImportingScope
+    Element 2
+        Scope: FirExplicitStarImportingScope
+    Element 3
+        Scope: FirDefaultSimpleImportingScope
+    Element 4
+        Scope: FirDefaultSimpleImportingScope
+    Element 5
+        Scope: FirPackageMemberScope
+    Element 6
+        Scope: FirExplicitSimpleImportingScope
+    Element 7
+        Implicit receiver:
+            FirRegularClassSymbol public final companion object Companion : R|kotlin/Any|
+                Type: kotlin/Enum.Companion
+    Element 8
+        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 9
+        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 10
+        Implicit receiver:
+            FirAnonymousObjectSymbol object : R|Direction|
+                Type: <anonymous>
+    Element 11
+        Scope: FirLocalScope
+            Properties:
+                FirBackingFieldSymbol private <explicit backing field>: R|kotlin/Int|
+    Element 12
+        Scope: FirLocalScope
+
+FILE: [ResolvedTo(IMPORTS)] enumValue.kt
+    public final [ResolvedTo(STATUS)] enum class Direction : R|kotlin/Enum<Direction>| {
+        private [ResolvedTo(STATUS)] constructor(): R|Direction| {
+            LAZY_super<R|kotlin/Enum<Direction>|>
+        }
+
+        public final static [ResolvedTo(STATUS)] 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(STATUS)] enum entry SOUTH: R|Direction| = LAZY_EXPRESSION
+        public final static [ResolvedTo(STATUS)] enum entry WEST: R|Direction| = LAZY_EXPRESSION
+        public abstract [ResolvedTo(STATUS)] val code: R|kotlin/Int|
+            public [ResolvedTo(STATUS)] get(): R|kotlin/Int|
+
+        public final static [ResolvedTo(STATUS)] fun values(): R|kotlin/Array<Direction>| {
+        }
+
+        public final static [ResolvedTo(STATUS)] fun valueOf([ResolvedTo(STATUS)] value: R|kotlin/String|): R|Direction| {
+        }
+
+        public final static [ResolvedTo(STATUS)] val entries: R|kotlin/enums/EnumEntries<Direction>|
+            public [ResolvedTo(STATUS)] get(): R|kotlin/enums/EnumEntries<Direction>|
+
+    }
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/file.kt b/analysis/low-level-api-fir/testdata/contextCollector/file.kt
new file mode 100644
index 0000000..6c59d4b
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/file.kt
@@ -0,0 +1,15 @@
+package <expr>test</expr>
+
+import java.util.List
+
+fun test() = List::class
+
+fun other(): Int {
+    return "foo".length
+}
+
+class Foo {
+    fun foo() {
+        require(other() == 3)
+    }
+}
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/file.txt b/analysis/low-level-api-fir/testdata/contextCollector/file.txt
new file mode 100644
index 0000000..fdaa5dc
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/file.txt
@@ -0,0 +1,36 @@
+Tower Data Context:
+    Element 0
+        Scope: FirDefaultStarImportingScope
+    Element 1
+        Scope: FirDefaultSimpleImportingScope
+    Element 2
+        Scope: FirExplicitStarImportingScope
+    Element 3
+        Scope: FirDefaultSimpleImportingScope
+    Element 4
+        Scope: FirDefaultSimpleImportingScope
+    Element 5
+        Scope: FirPackageMemberScope
+    Element 6
+        Scope: FirExplicitSimpleImportingScope
+            Import name:List
+                Qualified name: java.util.List
+                Is all under: false
+
+FILE: [ResolvedTo(IMPORTS)] file.kt
+    public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/reflect/KClass<java/util/List<*>>| {
+        ^test <getClass>(Q|java/util/List|)
+    }
+    public final [ResolvedTo(BODY_RESOLVE)] fun other(): R|kotlin/Int| {
+        ^other String(foo).R|kotlin/String.length|
+    }
+    public final [ResolvedTo(STATUS)] class Foo : R|kotlin/Any| {
+        public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Foo| {
+            super<R|kotlin/Any|>()
+        }
+
+        public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
+            <Unresolved name: require>#(==(R|test/other|(), Int(3)))
+        }
+
+    }
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.kt b/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.kt
new file mode 100644
index 0000000..13c153a
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.kt
@@ -0,0 +1,5 @@
+class Foo(
+    val a: String = "foo"
+    val b: Int = <expr>a.length</expr>,
+    val c: Long = (a.length - 1).toLong()
+)
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.txt b/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.txt
new file mode 100644
index 0000000..df64f09
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.txt
@@ -0,0 +1,36 @@
+Tower Data Context:
+    Element 0
+        Scope: FirDefaultStarImportingScope
+    Element 1
+        Scope: FirDefaultSimpleImportingScope
+    Element 2
+        Scope: FirExplicitStarImportingScope
+    Element 3
+        Scope: FirDefaultSimpleImportingScope
+    Element 4
+        Scope: FirDefaultSimpleImportingScope
+    Element 5
+        Scope: FirPackageMemberScope
+    Element 6
+        Scope: FirExplicitSimpleImportingScope
+    Element 7
+        Implicit receiver:
+            FirRegularClassSymbol public final class Foo : R|kotlin/Any|
+                Type: Foo
+
+FILE: [ResolvedTo(IMPORTS)] primaryConstructorParameter.kt
+    public final [ResolvedTo(STATUS)] class Foo : R|kotlin/Any| {
+        public [ResolvedTo(STATUS)] constructor([ResolvedTo(STATUS)] a: R|kotlin/String| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] b: R|kotlin/Int| = LAZY_EXPRESSION, [ResolvedTo(STATUS)] c: R|kotlin/Long| = LAZY_EXPRESSION): R|Foo| {
+            LAZY_super<R|kotlin/Any|>
+        }
+
+        public final [ResolvedTo(STATUS)] val a: R|kotlin/String| = R|<local>/a|
+            public [ResolvedTo(STATUS)] get(): R|kotlin/String|
+
+        public final [ResolvedTo(BODY_RESOLVE)] val b: R|kotlin/Int| = R|<local>/b|
+            public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
+
+        public final [ResolvedTo(STATUS)] val c: R|kotlin/Long| = R|<local>/c|
+            public [ResolvedTo(STATUS)] get(): R|kotlin/Long|
+
+    }
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorTestGenerated.java
index 4bf2c2a..2d1e8ba 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ContextCollectorTestGenerated.java
@@ -37,6 +37,12 @@
     }
 
     @Test
+    @TestMetadata("enumValue.kt")
+    public void testEnumValue() throws Exception {
+        runTest("analysis/low-level-api-fir/testdata/contextCollector/enumValue.kt");
+    }
+
+    @Test
     @TestMetadata("extensionFunction.kt")
     public void testExtensionFunction() throws Exception {
         runTest("analysis/low-level-api-fir/testdata/contextCollector/extensionFunction.kt");
@@ -49,6 +55,12 @@
     }
 
     @Test
+    @TestMetadata("file.kt")
+    public void testFile() throws Exception {
+        runTest("analysis/low-level-api-fir/testdata/contextCollector/file.kt");
+    }
+
+    @Test
     @TestMetadata("innerClasses.kt")
     public void testInnerClasses() throws Exception {
         runTest("analysis/low-level-api-fir/testdata/contextCollector/innerClasses.kt");
@@ -67,6 +79,12 @@
     }
 
     @Test
+    @TestMetadata("primaryConstructorParameter.kt")
+    public void testPrimaryConstructorParameter() throws Exception {
+        runTest("analysis/low-level-api-fir/testdata/contextCollector/primaryConstructorParameter.kt");
+    }
+
+    @Test
     @TestMetadata("simple.kt")
     public void testSimple() throws Exception {
         runTest("analysis/low-level-api-fir/testdata/contextCollector/simple.kt");