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");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||||
doTestCompiledKotlin(fileName);
|
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")
|
@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");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||||
doTest(fileName);
|
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")
|
@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");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||||
doTestCompiledKotlin(fileName);
|
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")
|
@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");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/loadJava/compiledKotlin/typealias/Generic.kt");
|
||||||
doTest(fileName);
|
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")
|
@TestMetadata("compiler/testData/loadJava/compiledKotlin/visibility")
|
||||||
|
|||||||
+4
-1
@@ -152,7 +152,10 @@ abstract class DeserializedMemberScope protected constructor(
|
|||||||
|
|
||||||
private fun createTypeAlias(name: Name): TypeAliasDescriptor? {
|
private fun createTypeAlias(name: Name): TypeAliasDescriptor? {
|
||||||
val byteArray = typeAliasBytes[name] ?: return null
|
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)
|
return c.memberDeserializer.loadTypeAlias(proto)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user