Fix SourceElement for classes loaded in decompiler
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.builtins
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.serialization.ClassData
|
||||
import org.jetbrains.kotlin.serialization.ClassDataWithSource
|
||||
@@ -36,6 +37,6 @@ class BuiltInsClassDataFinder(
|
||||
|
||||
override fun findClassData(classId: ClassId): ClassDataWithSource? {
|
||||
val classProto = classIdToProto[classId] ?: return null
|
||||
return ClassDataWithSource(ClassData(nameResolver, classProto))
|
||||
return ClassDataWithSource(ClassData(nameResolver, classProto), SourceElement.NO_SOURCE)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ data class ClassData(
|
||||
|
||||
data class ClassDataWithSource(
|
||||
val classData: ClassData,
|
||||
val sourceElement: SourceElement = SourceElement.NO_SOURCE
|
||||
val sourceElement: SourceElement
|
||||
)
|
||||
|
||||
data class PackageData(
|
||||
|
||||
+2
@@ -53,4 +53,6 @@ sealed class ProtoContainer(
|
||||
}
|
||||
|
||||
abstract fun debugFqName(): FqName
|
||||
|
||||
override fun toString() = "${javaClass.simpleName}: ${debugFqName()}"
|
||||
}
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ class DirectoryBasedDataFinder(
|
||||
return null
|
||||
}
|
||||
|
||||
return ClassDataWithSource(JvmProtoBufUtil.readClassDataFrom(data, strings))
|
||||
return ClassDataWithSource(JvmProtoBufUtil.readClassDataFrom(data, strings), KotlinJvmBinarySourceElement(binaryClass))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.serialization.js
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.serialization.ClassData
|
||||
import org.jetbrains.kotlin.serialization.ClassDataWithSource
|
||||
@@ -31,6 +32,6 @@ class KotlinJavascriptClassDataFinder(
|
||||
override fun findClassData(classId: ClassId): ClassDataWithSource? {
|
||||
val stream = loadResource(KotlinJavascriptSerializedResourcePaths.getClassMetadataPath(classId)) ?: return null
|
||||
val classProto = ProtoBuf.Class.parseFrom(stream, JsSerializerProtocol.extensionRegistry)
|
||||
return ClassDataWithSource(ClassData(nameResolver, classProto))
|
||||
return ClassDataWithSource(ClassData(nameResolver, classProto), SourceElement.NO_SOURCE)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user