CallableId: return pathToLocal to constructor (KT-58739)

This commit is contained in:
Mikhail Glukhikh
2024-01-16 07:39:27 +01:00
committed by Space Team
parent 731eeb020d
commit c3c215b6a4
@@ -11,6 +11,8 @@ class CallableId private constructor(
val className: FqName?,
val callableName: Name,
val classId: ClassId?,
// Currently, it's only used for debug info
private val pathToLocal: FqName?
) {
companion object {
private val LOCAL_NAME = SpecialNames.LOCAL
@@ -20,10 +22,6 @@ class CallableId private constructor(
className?.let { ClassId(packageName, it, isLocal = packageName == PACKAGE_FQ_NAME_FOR_LOCAL) }
}
// Effectively val (changed in constructors only)
// Used only for debug info
private var pathToLocal: FqName? = null
/**
* Return `true` if corresponding declaration is itself local or it is a member of local class
* Otherwise, returns `false`
@@ -33,29 +31,27 @@ class CallableId private constructor(
constructor(
packageName: FqName, className: FqName?, callableName: Name,
) : this(packageName, className, callableName, calculateClassId(packageName, className))
) : this(packageName, className, callableName, calculateClassId(packageName, className), pathToLocal = null)
constructor(
packageName: FqName, className: FqName?, callableName: Name,
// Currently, it's only used for debug info
pathToLocal: FqName?
) : this(packageName, className, callableName, calculateClassId(packageName, className)) {
this.pathToLocal = pathToLocal
}
) : this(packageName, className, callableName, calculateClassId(packageName, className), pathToLocal)
constructor(classId: ClassId, callableName: Name) : this(classId.packageFqName, classId.relativeClassName, callableName, classId)
constructor(classId: ClassId, callableName: Name) :
this(classId.packageFqName, classId.relativeClassName, callableName, classId, pathToLocal = null)
constructor(packageName: FqName, callableName: Name) : this(packageName, className = null, callableName, classId = null)
constructor(packageName: FqName, callableName: Name) :
this(packageName, className = null, callableName, classId = null, pathToLocal = null)
constructor(
callableName: Name,
// Currently, it's only used for debug info
pathToLocal: FqName?
) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null) {
this.pathToLocal = pathToLocal
}
) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null, pathToLocal)
constructor(callableName: Name) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null)
constructor(callableName: Name) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null, pathToLocal = null)
fun asFqNameForDebugInfo(): FqName {
pathToLocal?.child(callableName)?.let { return it }
@@ -66,7 +62,7 @@ class CallableId private constructor(
return classId?.asSingleFqName()?.child(callableName) ?: packageName.child(callableName)
}
fun copy(callableName: Name): CallableId = CallableId(packageName, className, callableName, classId)
fun copy(callableName: Name): CallableId = CallableId(packageName, className, callableName, classId, pathToLocal)
override fun equals(other: Any?): Boolean {
return when {