[FIR] Add empty member scope for type variables
This commit is contained in:
@@ -64,7 +64,7 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession)
|
|||||||
FirIntegerLiteralTypeScope(useSiteSession)
|
FirIntegerLiteralTypeScope(useSiteSession)
|
||||||
} as FirScope
|
} as FirScope
|
||||||
}
|
}
|
||||||
else -> error("Failed type $this")
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
inline fun <L> runLogged(action: () -> L): L {
|
||||||
|
return action()
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun <V> V.getValue(receiver: Any?, p: Any): V =
|
||||||
|
runLogged { this }
|
||||||
|
|
||||||
|
val testK by runLogged { "K" }
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
FILE: extensionGenericGetValue.kt
|
||||||
|
public final inline fun <L> runLogged(action: R|() -> L|): R|L| {
|
||||||
|
^runLogged R|<local>/action|.R|FakeOverride<kotlin/Function0.invoke: R|L|>|()
|
||||||
|
}
|
||||||
|
public final operator fun <V> R|V|.getValue(receiver: R|kotlin/Any?|, p: R|kotlin/Any|): R|V| {
|
||||||
|
^getValue R|/runLogged|<R|V|>(<L> = runLogged@fun <anonymous>(): R|V| <kind=UNKNOWN> {
|
||||||
|
^ this@R|/getValue|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
public final val testK: R|kotlin/String|by R|/runLogged|<R|kotlin/String|>(<L> = runLogged@fun <anonymous>(): R|kotlin/String| <kind=UNKNOWN> {
|
||||||
|
^ String(K)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public get(): R|kotlin/String| {
|
||||||
|
^ D|/testK|.R|/getValue|<R|kotlin/String|>(Null(null), ::R|/testK|)
|
||||||
|
}
|
||||||
Vendored
+8
@@ -0,0 +1,8 @@
|
|||||||
|
inline fun <L> runLogged(action: () -> L): L {
|
||||||
|
return action()
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun String.getValue(receiver: Any?, p: Any): String =
|
||||||
|
runLogged { this }
|
||||||
|
|
||||||
|
val testK by runLogged { "K" }
|
||||||
Vendored
+17
@@ -0,0 +1,17 @@
|
|||||||
|
FILE: extensionGetValueWithTypeVariableAsReceiver.kt
|
||||||
|
public final inline fun <L> runLogged(action: R|() -> L|): R|L| {
|
||||||
|
^runLogged R|<local>/action|.R|FakeOverride<kotlin/Function0.invoke: R|L|>|()
|
||||||
|
}
|
||||||
|
public final operator fun R|kotlin/String|.getValue(receiver: R|kotlin/Any?|, p: R|kotlin/Any|): R|kotlin/String| {
|
||||||
|
^getValue R|/runLogged|<R|kotlin/String|>(<L> = runLogged@fun <anonymous>(): R|kotlin/String| <kind=UNKNOWN> {
|
||||||
|
^ this@R|/getValue|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
public final val testK: R|kotlin/String|by R|/runLogged|<R|kotlin/String|>(<L> = runLogged@fun <anonymous>(): R|kotlin/String| <kind=UNKNOWN> {
|
||||||
|
^ String(K)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public get(): R|kotlin/String| {
|
||||||
|
^ D|/testK|.R|/getValue|(Null(null), ::R|/testK|)
|
||||||
|
}
|
||||||
+10
@@ -594,6 +594,16 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
|
|||||||
runTest("compiler/fir/resolve/testData/resolve/delegates/delegateWithLambda.kt");
|
runTest("compiler/fir/resolve/testData/resolve/delegates/delegateWithLambda.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionGenericGetValue.kt")
|
||||||
|
public void testExtensionGenericGetValue() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/resolve/delegates/extensionGenericGetValue.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionGetValueWithTypeVariableAsReceiver.kt")
|
||||||
|
public void testExtensionGetValueWithTypeVariableAsReceiver() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/resolve/delegates/extensionGetValueWithTypeVariableAsReceiver.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("provideDelegate.kt")
|
@TestMetadata("provideDelegate.kt")
|
||||||
public void testProvideDelegate() throws Exception {
|
public void testProvideDelegate() throws Exception {
|
||||||
runTest("compiler/fir/resolve/testData/resolve/delegates/provideDelegate.kt");
|
runTest("compiler/fir/resolve/testData/resolve/delegates/provideDelegate.kt");
|
||||||
|
|||||||
Generated
+10
@@ -594,6 +594,16 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos
|
|||||||
runTest("compiler/fir/resolve/testData/resolve/delegates/delegateWithLambda.kt");
|
runTest("compiler/fir/resolve/testData/resolve/delegates/delegateWithLambda.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionGenericGetValue.kt")
|
||||||
|
public void testExtensionGenericGetValue() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/resolve/delegates/extensionGenericGetValue.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionGetValueWithTypeVariableAsReceiver.kt")
|
||||||
|
public void testExtensionGetValueWithTypeVariableAsReceiver() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/resolve/delegates/extensionGetValueWithTypeVariableAsReceiver.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("provideDelegate.kt")
|
@TestMetadata("provideDelegate.kt")
|
||||||
public void testProvideDelegate() throws Exception {
|
public void testProvideDelegate() throws Exception {
|
||||||
runTest("compiler/fir/resolve/testData/resolve/delegates/provideDelegate.kt");
|
runTest("compiler/fir/resolve/testData/resolve/delegates/provideDelegate.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user