[light classes] fix cache value creation
Cause: we are implicitly wrapping `jvmDefaultMode` that leads to incorrect result ^KTIJ-19042 Fixed ^EA-357501 Fixed
This commit is contained in:
+8
-7
@@ -24,6 +24,7 @@ import com.intellij.psi.util.CachedValueProvider
|
||||
import com.intellij.psi.util.CachedValuesManager
|
||||
import com.intellij.psi.util.PsiUtilCore
|
||||
import com.intellij.util.IncorrectOperationException
|
||||
import com.intellij.util.containers.ConcurrentFactoryMap
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
||||
@@ -52,7 +53,6 @@ import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
|
||||
import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import java.util.*
|
||||
import javax.swing.Icon
|
||||
|
||||
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
||||
@@ -345,12 +345,13 @@ abstract class KtLightClassForSourceDeclaration(
|
||||
|
||||
fun create(classOrObject: KtClassOrObject, jvmDefaultMode: JvmDefaultMode): KtLightClassForSourceDeclaration? =
|
||||
CachedValuesManager.getCachedValue(classOrObject) {
|
||||
CachedValueProvider.Result
|
||||
.create(
|
||||
createNoCache(classOrObject, jvmDefaultMode, KtUltraLightSupport.forceUsingOldLightClasses),
|
||||
KotlinModificationTrackerService.getInstance(classOrObject.project).outOfBlockModificationTracker
|
||||
)
|
||||
}
|
||||
CachedValueProvider.Result.create(
|
||||
ConcurrentFactoryMap.createMap { defaultMode: JvmDefaultMode ->
|
||||
createNoCache(classOrObject, defaultMode, KtUltraLightSupport.forceUsingOldLightClasses)
|
||||
},
|
||||
KotlinModificationTrackerService.getInstance(classOrObject.project).outOfBlockModificationTracker,
|
||||
)
|
||||
}[jvmDefaultMode]
|
||||
|
||||
fun createNoCache(
|
||||
classOrObject: KtClassOrObject,
|
||||
|
||||
Reference in New Issue
Block a user