Search classes by qualified name only in sources to prevent recursion

This commit is contained in:
Nikolay Krasko
2014-02-06 20:50:13 +04:00
parent 064612f0f3
commit 2ef879ea3e
3 changed files with 83 additions and 41 deletions
@@ -112,6 +112,15 @@ public fun isValidJavaFqName(qualifiedName: String?): Boolean {
return state != State.AFTER_DOT
}
public fun FqName.getFirstSegment(): Name = this.pathSegments().first()
tailRecursive
public fun FqName.each(operation: (FqName) -> Boolean) {
if (operation(this) && !isRoot()) {
parent().each(operation)
}
}
private fun isSubpackageOf(subpackageNameStr: String, packageNameStr: String): Boolean {
return subpackageNameStr == packageNameStr ||
(subpackageNameStr.startsWith(packageNameStr) && subpackageNameStr[packageNameStr.length()] == '.')