Lint: Fix EA-81466
This commit is contained in:
@@ -152,12 +152,17 @@ tailrec fun UQualifiedExpression.getCallElementFromQualified(): UCallExpression?
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun UCallExpression.getQualifiedCallElement(): UExpression {
|
fun UCallExpression.getQualifiedCallElement(): UExpression {
|
||||||
fun findParent(element: UExpression?): UExpression? = when (element) {
|
fun findParent(parent: UExpression?, current: UExpression): UExpression? = when (parent) {
|
||||||
is UQualifiedExpression -> findParent(element.parent as? UExpression) ?: element
|
is UQualifiedExpression -> {
|
||||||
|
if (parent.selector == current)
|
||||||
|
findParent(parent.parent as? UExpression, parent) ?: parent
|
||||||
|
else
|
||||||
|
current
|
||||||
|
}
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
return findParent(parent as? UExpression) ?: this
|
return findParent(parent as? UExpression, this) ?: this
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun <reified T: UElement> UElement.getParentOfType(): T? = getParentOfType(T::class.java)
|
inline fun <reified T: UElement> UElement.getParentOfType(): T? = getParentOfType(T::class.java)
|
||||||
@@ -210,7 +215,7 @@ fun UExpression.asQualifiedIdentifiers(): List<String>? {
|
|||||||
}
|
}
|
||||||
when (this) {
|
when (this) {
|
||||||
is UQualifiedExpression -> addIdentifiers(this)
|
is UQualifiedExpression -> addIdentifiers(this)
|
||||||
is USimpleReferenceExpression -> listOf(identifier)
|
is USimpleReferenceExpression -> list += identifier
|
||||||
else -> return null
|
else -> return null
|
||||||
}
|
}
|
||||||
return if (error) null else list
|
return if (error) null else list
|
||||||
@@ -224,18 +229,20 @@ fun UExpression.matchesQualified(fqName: String): Boolean {
|
|||||||
|
|
||||||
fun UExpression.startsWithQualified(fqName: String): Boolean {
|
fun UExpression.startsWithQualified(fqName: String): Boolean {
|
||||||
val identifiers = this.asQualifiedIdentifiers() ?: return false
|
val identifiers = this.asQualifiedIdentifiers() ?: return false
|
||||||
val passedIdentifiers = fqName.split('.')
|
val passedIdentifiers = fqName.trim('.').split('.')
|
||||||
identifiers.forEachIndexed { i, identifier ->
|
if (identifiers.size < passedIdentifiers.size) return false
|
||||||
if (identifier != passedIdentifiers[i]) return false
|
passedIdentifiers.forEachIndexed { i, passedIdentifier ->
|
||||||
|
if (passedIdentifier != identifiers[i]) return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun UExpression.endsWithQualified(fqName: String): Boolean {
|
fun UExpression.endsWithQualified(fqName: String): Boolean {
|
||||||
val identifiers = this.asQualifiedIdentifiers() ?: return false
|
val identifiers = this.asQualifiedIdentifiers()?.asReversed() ?: return false
|
||||||
val passedIdentifiers = fqName.split('.')
|
val passedIdentifiers = fqName.trim('.').split('.').asReversed()
|
||||||
identifiers.forEachIndexed { i, identifier ->
|
if (identifiers.size < passedIdentifiers.size) return false
|
||||||
if (identifier != passedIdentifiers[i]) return false
|
passedIdentifiers.forEachIndexed { i, passedIdentifier ->
|
||||||
|
if (passedIdentifier != identifiers[i]) return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user