[FIR] Fix cycle when loading nested enum within java annotation

This commit is contained in:
Simon Ogorodnik
2021-07-27 15:18:34 +03:00
committed by Mikhail Glukhikh
parent 947e97511b
commit 7422571c72
6 changed files with 42 additions and 1 deletions
@@ -148,6 +148,7 @@ class JavaSymbolProvider(
override fun getClassLikeSymbolByFqName(classId: ClassId): FirRegularClassSymbol? {
return try {
if (!hasTopLevelClassOf(classId)) return null
getFirJavaClass(classId)
} catch (e: ProcessCanceledException) {
null
@@ -155,7 +156,9 @@ class JavaSymbolProvider(
}
fun getFirJavaClass(classId: ClassId, content: KotlinClassFinder.Result.ClassFileContent? = null): FirRegularClassSymbol? {
if (!hasTopLevelClassOf(classId)) return null
// Enforce loading of outer class first
classId.outerClassId?.let { getFirJavaClass(it) }
return classCache.getValue(classId, content)
}