cec299ac0a
When it comes to finding regular class (of `PsiClass`) from the given `ClassId`, we've reinvented the wheel in a worse way. `JavaFileManager` is there to find `PsiClass`, and we already build/populate index for that while initializing AA standalone mode's own project environment. We can simply load that manager and send a query, that's it. However, our efforts so far on binary PSI declaration providers are not entirely useless. `JavaFileManager` can't handle top-level declarations and search for all callables/classes in a given package in general. So, we can still use existing logic for non-ClassId queries. We just need to cache the intermediate results: fq name to `VirtualFile`s. To fully utilize the aforementioned cache, we also need to cache an instance of `KotlinPsiDeclarationProvider`. Combing these three ideas, now running K2 UAST on a very large module is "on par", e.g., K1: //tools/adt/idea/android:intellij.android.core_lint_test PASSED in 112.8s Stats over 7 runs: max = 112.8s, min = 104.3s, avg = 107.9s, dev = 3.6s K2 (before): //tools/adt/idea/android:intellij.android.core_lint_test PASSED in 303.0s Stats over 7 runs: max = 303.0s, min = 286.8s, avg = 294.4s, dev = 5.0s K2 (after): //tools/adt/idea/android:intellij.android.core_lint_test PASSED in 112.8s Stats over 7 runs: max = 112.8s, min = 105.7s, avg = 108.9s, dev = 2.4s