[LL FIR] render type parameters resolve phase in tests

This commit is contained in:
Ilya Kirillov
2022-08-06 15:52:19 +02:00
parent cd063d0cd0
commit 0f6f901179
15 changed files with 401 additions and 29 deletions
@@ -0,0 +1 @@
class ResolveMe<T : Int, K>()
@@ -0,0 +1,117 @@
RAW_FIR:
FILE: classWithTypeParameters.kt
public? final? [RAW_FIR] class ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> : R|kotlin/Any| {
public? [RAW_FIR] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : Int, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
IMPORTS:
FILE: classWithTypeParameters.kt
public? final? [RAW_FIR] class ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> : R|kotlin/Any| {
public? [RAW_FIR] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : Int, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: classWithTypeParameters.kt
public? final? [COMPILER_REQUIRED_ANNOTATIONS] class ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> : R|kotlin/Any| {
public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : Int, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
COMPANION_GENERATION:
FILE: classWithTypeParameters.kt
public? final? [COMPANION_GENERATION] class ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> : R|kotlin/Any| {
public? [COMPANION_GENERATION] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : Int, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
SUPER_TYPES:
FILE: classWithTypeParameters.kt
public? final? [SUPER_TYPES] class ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> : R|kotlin/Any| {
public? [SUPER_TYPES] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : Int, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
TYPES:
FILE: classWithTypeParameters.kt
public? final? [TYPES] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public? [TYPES] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
STATUS:
FILE: classWithTypeParameters.kt
public final [STATUS] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public [STATUS] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
ARGUMENTS_OF_ANNOTATIONS:
FILE: classWithTypeParameters.kt
public final [ARGUMENTS_OF_ANNOTATIONS] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public [ARGUMENTS_OF_ANNOTATIONS] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
CONTRACTS:
FILE: classWithTypeParameters.kt
public final [CONTRACTS] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public [CONTRACTS] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: classWithTypeParameters.kt
public final [IMPLICIT_TYPES_BODY_RESOLVE] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public [IMPLICIT_TYPES_BODY_RESOLVE] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
EXPECT_ACTUAL_MATCHING:
FILE: classWithTypeParameters.kt
public final [EXPECT_ACTUAL_MATCHING] class ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> : R|kotlin/Any| {
public [EXPECT_ACTUAL_MATCHING] [ContainingClassKey=ResolveMe] constructor<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
BODY_RESOLVE:
FILE: classWithTypeParameters.kt
public final [BODY_RESOLVE] class ResolveMe<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> : R|kotlin/Any| {
public [BODY_RESOLVE] [ContainingClassKey=ResolveMe] constructor<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
FILE RAW TO BODY:
FILE: classWithTypeParameters.kt
public final [BODY_RESOLVE] class ResolveMe<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> : R|kotlin/Any| {
public [BODY_RESOLVE] [ContainingClassKey=ResolveMe] constructor<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K>(): R|ResolveMe<T, K>| {
super<R|kotlin/Any|>()
}
}
@@ -0,0 +1 @@
fun <T : Int, K> resolveMe() {}
@@ -0,0 +1,57 @@
RAW_FIR:
FILE: functionWithTypeParameters.kt
public? final? [RAW_FIR] fun <[RAW_FIR] T : Int, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
IMPORTS:
FILE: functionWithTypeParameters.kt
public? final? [RAW_FIR] fun <[RAW_FIR] T : Int, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: functionWithTypeParameters.kt
public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun <[RAW_FIR] T : Int, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: functionWithTypeParameters.kt
public? final? [COMPANION_GENERATION] fun <[RAW_FIR] T : Int, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
SUPER_TYPES:
FILE: functionWithTypeParameters.kt
public? final? [SUPER_TYPES] fun <[RAW_FIR] T : Int, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
TYPES:
FILE: functionWithTypeParameters.kt
public? final? [TYPES] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
STATUS:
FILE: functionWithTypeParameters.kt
public final [STATUS] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
ARGUMENTS_OF_ANNOTATIONS:
FILE: functionWithTypeParameters.kt
public final [ARGUMENTS_OF_ANNOTATIONS] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
CONTRACTS:
FILE: functionWithTypeParameters.kt
public final [CONTRACTS] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| {
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: functionWithTypeParameters.kt
public final [IMPLICIT_TYPES_BODY_RESOLVE] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| {
}
EXPECT_ACTUAL_MATCHING:
FILE: functionWithTypeParameters.kt
public final [EXPECT_ACTUAL_MATCHING] fun <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> resolveMe(): R|kotlin/Unit| {
}
BODY_RESOLVE:
FILE: functionWithTypeParameters.kt
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> resolveMe(): R|kotlin/Unit| {
}
FILE RAW TO BODY:
FILE: functionWithTypeParameters.kt
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> resolveMe(): R|kotlin/Unit| {
}
@@ -0,0 +1,2 @@
val <T : Int, K> T.resolveMe: K
get() = TODO()
@@ -0,0 +1,75 @@
RAW_FIR:
FILE: propertyWithTypeParameters.kt
public? final? [RAW_FIR] val <[RAW_FIR] T : Int, [RAW_FIR] K> T.resolveMe: K
public? [RAW_FIR] get(): K { LAZY_BLOCK }
IMPORTS:
FILE: propertyWithTypeParameters.kt
public? final? [RAW_FIR] val <[RAW_FIR] T : Int, [RAW_FIR] K> T.resolveMe: K
public? [RAW_FIR] get(): K { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: propertyWithTypeParameters.kt
public? final? [COMPILER_REQUIRED_ANNOTATIONS] val <[RAW_FIR] T : Int, [RAW_FIR] K> T.resolveMe: K
public? [COMPILER_REQUIRED_ANNOTATIONS] get(): K { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: propertyWithTypeParameters.kt
public? final? [COMPANION_GENERATION] val <[RAW_FIR] T : Int, [RAW_FIR] K> T.resolveMe: K
public? [COMPANION_GENERATION] get(): K { LAZY_BLOCK }
SUPER_TYPES:
FILE: propertyWithTypeParameters.kt
public? final? [SUPER_TYPES] val <[RAW_FIR] T : Int, [RAW_FIR] K> T.resolveMe: K
public? [SUPER_TYPES] get(): K { LAZY_BLOCK }
TYPES:
FILE: propertyWithTypeParameters.kt
public? final? [TYPES] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public? [TYPES] get(): R|K| { LAZY_BLOCK }
STATUS:
FILE: propertyWithTypeParameters.kt
public final [STATUS] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public [STATUS] get(): R|K| { LAZY_BLOCK }
ARGUMENTS_OF_ANNOTATIONS:
FILE: propertyWithTypeParameters.kt
public final [ARGUMENTS_OF_ANNOTATIONS] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public [ARGUMENTS_OF_ANNOTATIONS] get(): R|K| { LAZY_BLOCK }
CONTRACTS:
FILE: propertyWithTypeParameters.kt
public final [CONTRACTS] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public [CONTRACTS] get(): R|K| {
^ TODO#()
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: propertyWithTypeParameters.kt
public final [IMPLICIT_TYPES_BODY_RESOLVE] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public [IMPLICIT_TYPES_BODY_RESOLVE] get(): R|K| {
^ TODO#()
}
EXPECT_ACTUAL_MATCHING:
FILE: propertyWithTypeParameters.kt
public final [EXPECT_ACTUAL_MATCHING] val <[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> R|T|.resolveMe: R|K|
public [EXPECT_ACTUAL_MATCHING] get(): R|K| {
^ TODO#()
}
BODY_RESOLVE:
FILE: propertyWithTypeParameters.kt
public final [BODY_RESOLVE] val <[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> R|T|.resolveMe: R|K|
public [BODY_RESOLVE] get(): R|K| {
^ R|kotlin/TODO|()
}
FILE RAW TO BODY:
FILE: propertyWithTypeParameters.kt
public final [BODY_RESOLVE] val <[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> R|T|.resolveMe: R|K|
public [BODY_RESOLVE] get(): R|K| {
^ R|kotlin/TODO|()
}
@@ -0,0 +1 @@
typealias ResolveMe<T : Int, K> = Map<T, K>
@@ -0,0 +1,52 @@
RAW_FIR:
FILE: typeAliasWithTypeParameters.kt
public? final [RAW_FIR] typealias ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> = Map<T, K>
IMPORTS:
FILE: typeAliasWithTypeParameters.kt
public? final [RAW_FIR] typealias ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> = Map<T, K>
COMPILER_REQUIRED_ANNOTATIONS:
FILE: typeAliasWithTypeParameters.kt
public? final [COMPILER_REQUIRED_ANNOTATIONS] typealias ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> = Map<T, K>
COMPANION_GENERATION:
FILE: typeAliasWithTypeParameters.kt
public? final [COMPANION_GENERATION] typealias ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> = Map<T, K>
SUPER_TYPES:
FILE: typeAliasWithTypeParameters.kt
public? final [SUPER_TYPES] typealias ResolveMe<[RAW_FIR] T : Int, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
TYPES:
FILE: typeAliasWithTypeParameters.kt
public? final [TYPES] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
STATUS:
FILE: typeAliasWithTypeParameters.kt
public final [STATUS] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
ARGUMENTS_OF_ANNOTATIONS:
FILE: typeAliasWithTypeParameters.kt
public final [ARGUMENTS_OF_ANNOTATIONS] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
CONTRACTS:
FILE: typeAliasWithTypeParameters.kt
public final [CONTRACTS] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: typeAliasWithTypeParameters.kt
public final [IMPLICIT_TYPES_BODY_RESOLVE] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
EXPECT_ACTUAL_MATCHING:
FILE: typeAliasWithTypeParameters.kt
public final [EXPECT_ACTUAL_MATCHING] typealias ResolveMe<[RAW_FIR] T : R|kotlin/Int|, [RAW_FIR] K> = R|kotlin/collections/Map<T, K>|
BODY_RESOLVE:
FILE: typeAliasWithTypeParameters.kt
public final [BODY_RESOLVE] typealias ResolveMe<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> = R|kotlin/collections/Map<T, K>|
FILE RAW TO BODY:
FILE: typeAliasWithTypeParameters.kt
public final [BODY_RESOLVE] typealias ResolveMe<[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> = R|kotlin/collections/Map<T, K>|
@@ -6,7 +6,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [RAW_FIR] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [RAW_FIR] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -17,7 +17,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [RAW_FIR] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [RAW_FIR] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -28,7 +28,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -39,7 +39,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [COMPANION_GENERATION] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [COMPANION_GENERATION] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -50,7 +50,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [SUPER_TYPES] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [SUPER_TYPES] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -61,7 +61,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public? final? [TYPES] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [TYPES] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -72,7 +72,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [STATUS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public final [STATUS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -83,7 +83,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [ARGUMENTS_OF_ANNOTATIONS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public final [ARGUMENTS_OF_ANNOTATIONS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -94,7 +94,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [CONTRACTS] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [CONTRACTS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
}
@@ -106,7 +106,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [IMPLICIT_TYPES_BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [IMPLICIT_TYPES_BODY_RESOLVE] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
}
@@ -118,7 +118,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [EXPECT_ACTUAL_MATCHING] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [EXPECT_ACTUAL_MATCHING] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
}
@@ -130,7 +130,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] resolveMe> ddd(): R|kotlin/Unit| {
}
}
@@ -142,7 +142,7 @@ FILE: typeParameterOfNonLocalFunction.kt
super<R|kotlin/Any|>()
}
public final [BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] resolveMe> ddd(): R|kotlin/Unit| {
}
}
@@ -1,57 +1,57 @@
RAW_FIR:
FILE: typeParameterOfTopFunction.kt
public? final? [RAW_FIR] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [RAW_FIR] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
IMPORTS:
FILE: typeParameterOfTopFunction.kt
public? final? [RAW_FIR] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [RAW_FIR] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: typeParameterOfTopFunction.kt
public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: typeParameterOfTopFunction.kt
public? final? [COMPANION_GENERATION] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [COMPANION_GENERATION] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
SUPER_TYPES:
FILE: typeParameterOfTopFunction.kt
public? final? [SUPER_TYPES] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [SUPER_TYPES] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
TYPES:
FILE: typeParameterOfTopFunction.kt
public? final? [TYPES] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [TYPES] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
STATUS:
FILE: typeParameterOfTopFunction.kt
public final [STATUS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public final [STATUS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
ARGUMENTS_OF_ANNOTATIONS:
FILE: typeParameterOfTopFunction.kt
public final [ARGUMENTS_OF_ANNOTATIONS] fun <resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
public final [ARGUMENTS_OF_ANNOTATIONS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| { LAZY_BLOCK }
CONTRACTS:
FILE: typeParameterOfTopFunction.kt
public final [CONTRACTS] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [CONTRACTS] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: typeParameterOfTopFunction.kt
public final [IMPLICIT_TYPES_BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [IMPLICIT_TYPES_BODY_RESOLVE] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
EXPECT_ACTUAL_MATCHING:
FILE: typeParameterOfTopFunction.kt
public final [EXPECT_ACTUAL_MATCHING] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [EXPECT_ACTUAL_MATCHING] fun <[RAW_FIR] resolveMe> ddd(): R|kotlin/Unit| {
}
BODY_RESOLVE:
FILE: typeParameterOfTopFunction.kt
public final [BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] resolveMe> ddd(): R|kotlin/Unit| {
}
FILE RAW TO BODY:
FILE: typeParameterOfTopFunction.kt
public final [BODY_RESOLVE] fun <resolveMe> ddd(): R|kotlin/Unit| {
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] resolveMe> ddd(): R|kotlin/Unit| {
}
@@ -1,4 +1,4 @@
public final inner [BODY_RESOLVE] class ONAIR<T> : R|X.BASE| {
public final inner [BODY_RESOLVE] class ONAIR<[RAW_FIR] T> : R|X.BASE| {
public [BODY_RESOLVE] X<T>.constructor(): R|X.ONAIR<T>| {
super<R|X.BASE|>()
}
@@ -1,3 +1,3 @@
public final [BODY_RESOLVE] fun <K> niewbe([BODY_RESOLVE] a: R|kotlin/Char|, [BODY_RESOLVE] b: R|kotlin/Double|): R|kotlin/String| {
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] K> niewbe([BODY_RESOLVE] a: R|kotlin/Char|, [BODY_RESOLVE] b: R|kotlin/Double|): R|kotlin/String| {
^niewbe String(Trololo)
}
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
import org.jetbrains.kotlin.test.services.TestModuleStructure
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.assertions
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
import org.junit.jupiter.api.parallel.Execution
import org.junit.jupiter.api.parallel.ExecutionMode
@@ -39,7 +40,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
override fun visitElement(element: FirElement) {
if (result != null) return
val declaration = element.realPsi as? KtDeclaration
if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") {
if (element is FirDeclaration && declaration != null && declaration.name?.decapitalizeAsciiOnly() == "resolveMe") {
result = element
return
}
@@ -137,4 +137,68 @@ public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDecla
public void testTypeParameterOfTopSetter() throws Exception {
runTest("analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.kt");
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/classes")
@TestDataPath("$PROJECT_ROOT")
public class Classes {
@Test
public void testAllFilesPresentInClasses() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/classes"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("classWithTypeParameters.kt")
public void testClassWithTypeParameters() throws Exception {
runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/classWithTypeParameters.kt");
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/functions")
@TestDataPath("$PROJECT_ROOT")
public class Functions {
@Test
public void testAllFilesPresentInFunctions() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/functions"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("functionWithTypeParameters.kt")
public void testFunctionWithTypeParameters() throws Exception {
runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/functionWithTypeParameters.kt");
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/properties")
@TestDataPath("$PROJECT_ROOT")
public class Properties {
@Test
public void testAllFilesPresentInProperties() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/properties"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("propertyWithTypeParameters.kt")
public void testPropertyWithTypeParameters() throws Exception {
runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/propertyWithTypeParameters.kt");
}
}
@Nested
@TestMetadata("analysis/low-level-api-fir/testdata/lazyResolve/typeAliases")
@TestDataPath("$PROJECT_ROOT")
public class TypeAliases {
@Test
public void testAllFilesPresentInTypeAliases() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/typeAliases"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("typeAliasWithTypeParameters.kt")
public void testTypeAliasWithTypeParameters() throws Exception {
runTest("analysis/low-level-api-fir/testdata/lazyResolve/typeAliases/typeAliasWithTypeParameters.kt");
}
}
}
@@ -390,6 +390,7 @@ class FirRenderer(
override fun visitTypeParameter(typeParameter: FirTypeParameter) {
annotationRenderer?.render(typeParameter)
modifierRenderer.renderModifiers(typeParameter)
resolvePhaseRenderer?.render(typeParameter)
typeParameter.variance.renderVariance()
print(typeParameter.name)