Optimize containsKey -> get pattern

This commit is contained in:
Ivan Kochurkin
2021-10-19 21:32:54 +03:00
committed by TeamCityServer
parent 82591bb107
commit c13822a2c5
13 changed files with 49 additions and 33 deletions
@@ -207,9 +207,9 @@ class JavacWrapper(
javaClass.virtualFile?.let { if (it in scope) return javaClass }
}
if (symbolBasedClassesCache.containsKey(classId)) {
val javaClass = symbolBasedClassesCache[classId]
javaClass?.virtualFile?.let { file ->
val javaClass = symbolBasedClassesCache[classId]
if (javaClass != null) {
javaClass.virtualFile?.let { file ->
if (file in scope) return javaClass
}
}
@@ -309,7 +309,8 @@ class JavacWrapper(
}
private fun findPackageInSymbols(fqName: String): SymbolBasedPackage? {
if (symbolBasedPackagesCache.containsKey(fqName)) return symbolBasedPackagesCache[fqName]
val cachedSymbolBasedPackage = symbolBasedPackagesCache[fqName]
if (cachedSymbolBasedPackage != null) return cachedSymbolBasedPackage
fun findSimplePackageInSymbols(fqName: String): SimpleSymbolBasedPackage? {
elements.getPackageElement(fqName)?.let { symbol ->
@@ -31,7 +31,8 @@ class ClassifierResolver(private val javac: JavacWrapper) {
private val beingResolved = hashSetOf<Tree>()
fun resolve(tree: Tree, unit: CompilationUnitTree, containingElement: JavaElement): JavaClassifier? {
if (cache.containsKey(tree)) return cache[tree]
val result = cache[tree]
if (result != null) return result
if (tree in beingResolved) return null
beingResolved(tree)