Do not build file stubs for nested classes from .kotlin_metadata files
Stubs for nested classes are going to be built inside the stubs for the corresponding outer classes, building them on the top level is just going to break everything (see EA-93105)
This commit is contained in:
+5
-5
@@ -99,14 +99,14 @@ sealed class BuiltInDefinitionFile {
|
|||||||
val packageFqName = nameResolver.getPackageFqName(proto.`package`.getExtension(BuiltInsProtoBuf.packageFqName))
|
val packageFqName = nameResolver.getPackageFqName(proto.`package`.getExtension(BuiltInsProtoBuf.packageFqName))
|
||||||
|
|
||||||
val classesToDecompile =
|
val classesToDecompile =
|
||||||
if (!isMetadata && FILTER_OUT_CLASSES_EXISTING_AS_JVM_CLASS_FILES) proto.class_List.filter { classProto ->
|
proto.class_List.filterNot { proto -> nameResolver.getClassId(proto.fqName).isNestedClass }.let { classes ->
|
||||||
shouldDecompileBuiltInClass(nameResolver.getClassId(classProto.fqName))
|
if (isMetadata || !FILTER_OUT_CLASSES_EXISTING_AS_JVM_CLASS_FILES) classes
|
||||||
|
else classes.filter { classProto ->
|
||||||
|
shouldDecompileBuiltInClass(nameResolver.getClassId(classProto.fqName))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else proto.class_List
|
|
||||||
|
|
||||||
private fun shouldDecompileBuiltInClass(classId: ClassId): Boolean {
|
private fun shouldDecompileBuiltInClass(classId: ClassId): Boolean {
|
||||||
if (classId.isNestedClass) return false
|
|
||||||
|
|
||||||
val realJvmClassFileName = classId.shortClassName.asString() + "." + JavaClassFileType.INSTANCE.defaultExtension
|
val realJvmClassFileName = classId.shortClassName.asString() + "." + JavaClassFileType.INSTANCE.defaultExtension
|
||||||
return packageDirectory.findChild(realJvmClassFileName) == null
|
return packageDirectory.findChild(realJvmClassFileName) == null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user