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