CallableId: return pathToLocal to constructor (KT-58739)
This commit is contained in:
committed by
Space Team
parent
731eeb020d
commit
c3c215b6a4
@@ -11,6 +11,8 @@ class CallableId private constructor(
|
|||||||
val className: FqName?,
|
val className: FqName?,
|
||||||
val callableName: Name,
|
val callableName: Name,
|
||||||
val classId: ClassId?,
|
val classId: ClassId?,
|
||||||
|
// Currently, it's only used for debug info
|
||||||
|
private val pathToLocal: FqName?
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
private val LOCAL_NAME = SpecialNames.LOCAL
|
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) }
|
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
|
* Return `true` if corresponding declaration is itself local or it is a member of local class
|
||||||
* Otherwise, returns `false`
|
* Otherwise, returns `false`
|
||||||
@@ -33,29 +31,27 @@ class CallableId private constructor(
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
packageName: FqName, className: FqName?, callableName: Name,
|
packageName: FqName, className: FqName?, callableName: Name,
|
||||||
) : this(packageName, className, callableName, calculateClassId(packageName, className))
|
) : this(packageName, className, callableName, calculateClassId(packageName, className), pathToLocal = null)
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
packageName: FqName, className: FqName?, callableName: Name,
|
packageName: FqName, className: FqName?, callableName: Name,
|
||||||
// Currently, it's only used for debug info
|
// Currently, it's only used for debug info
|
||||||
pathToLocal: FqName?
|
pathToLocal: FqName?
|
||||||
) : this(packageName, className, callableName, calculateClassId(packageName, className)) {
|
) : this(packageName, className, callableName, calculateClassId(packageName, className), pathToLocal)
|
||||||
this.pathToLocal = 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(
|
constructor(
|
||||||
callableName: Name,
|
callableName: Name,
|
||||||
// Currently, it's only used for debug info
|
// Currently, it's only used for debug info
|
||||||
pathToLocal: FqName?
|
pathToLocal: FqName?
|
||||||
) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null) {
|
) : this(PACKAGE_FQ_NAME_FOR_LOCAL, className = null, callableName, classId = null, pathToLocal)
|
||||||
this.pathToLocal = 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 {
|
fun asFqNameForDebugInfo(): FqName {
|
||||||
pathToLocal?.child(callableName)?.let { return it }
|
pathToLocal?.child(callableName)?.let { return it }
|
||||||
@@ -66,7 +62,7 @@ class CallableId private constructor(
|
|||||||
return classId?.asSingleFqName()?.child(callableName) ?: packageName.child(callableName)
|
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 {
|
override fun equals(other: Any?): Boolean {
|
||||||
return when {
|
return when {
|
||||||
|
|||||||
Reference in New Issue
Block a user