Use extension registry when unpacking serialized type alias
It's funny here that "extension" here means protobuf extensions while initial issue is about extension function types #Fixed KT-22728
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
class Foo<T>
|
||||
|
||||
fun <P> foo(x: Foo<P>.() -> Unit) {}
|
||||
|
||||
typealias MyHandler<P> = Foo<P>.() -> Unit
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun </*0*/ P> foo(/*0*/ x: test.Foo<P>.() -> kotlin.Unit): kotlin.Unit
|
||||
|
||||
public final class Foo</*0*/ T> {
|
||||
/*primary*/ public constructor Foo</*0*/ T>()
|
||||
}
|
||||
public typealias MyHandler</*0*/ P> = test.Foo<P>.() -> kotlin.Unit
|
||||
@@ -4870,6 +4870,12 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||
doTestCompiledKotlin(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeAliasToExtension.kt")
|
||||
public void testTypeAliasToExtension() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/TypeAliasToExtension.kt");
|
||||
doTestCompiledKotlin(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/loadJava/compiledKotlin/visibility")
|
||||
|
||||
Generated
+6
@@ -3077,6 +3077,12 @@ public class LoadKotlinWithTypeTableTestGenerated extends AbstractLoadKotlinWith
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeAliasToExtension.kt")
|
||||
public void testTypeAliasToExtension() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/TypeAliasToExtension.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/loadJava/compiledKotlin/visibility")
|
||||
|
||||
Generated
+6
@@ -4870,6 +4870,12 @@ public class LoadJavaUsingJavacTestGenerated extends AbstractLoadJavaUsingJavacT
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||
doTestCompiledKotlin(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeAliasToExtension.kt")
|
||||
public void testTypeAliasToExtension() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/TypeAliasToExtension.kt");
|
||||
doTestCompiledKotlin(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/loadJava/compiledKotlin/visibility")
|
||||
|
||||
+6
@@ -3079,6 +3079,12 @@ public class JvmRuntimeDescriptorLoaderTestGenerated extends AbstractJvmRuntimeD
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeAliasToExtension.kt")
|
||||
public void testTypeAliasToExtension() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/TypeAliasToExtension.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/loadJava/compiledKotlin/visibility")
|
||||
|
||||
+4
-1
@@ -152,7 +152,10 @@ abstract class DeserializedMemberScope protected constructor(
|
||||
|
||||
private fun createTypeAlias(name: Name): TypeAliasDescriptor? {
|
||||
val byteArray = typeAliasBytes[name] ?: return null
|
||||
val proto = ProtoBuf.TypeAlias.parseDelimitedFrom(ByteArrayInputStream(byteArray)) ?: return null
|
||||
val proto =
|
||||
ProtoBuf.TypeAlias.parseDelimitedFrom(
|
||||
ByteArrayInputStream(byteArray), c.components.extensionRegistryLite
|
||||
) ?: return null
|
||||
return c.memberDeserializer.loadTypeAlias(proto)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user