[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.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiUtilCore
|
import com.intellij.psi.util.PsiUtilCore
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
|
import com.intellij.util.containers.ConcurrentFactoryMap
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
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.psiUtil.parentsWithSelf
|
||||||
import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import java.util.*
|
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
|
|
||||||
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
private class KtLightClassModifierList(containingClass: KtLightClassForSourceDeclaration, computeModifiers: () -> Set<String>) :
|
||||||
@@ -345,12 +345,13 @@ abstract class KtLightClassForSourceDeclaration(
|
|||||||
|
|
||||||
fun create(classOrObject: KtClassOrObject, jvmDefaultMode: JvmDefaultMode): KtLightClassForSourceDeclaration? =
|
fun create(classOrObject: KtClassOrObject, jvmDefaultMode: JvmDefaultMode): KtLightClassForSourceDeclaration? =
|
||||||
CachedValuesManager.getCachedValue(classOrObject) {
|
CachedValuesManager.getCachedValue(classOrObject) {
|
||||||
CachedValueProvider.Result
|
CachedValueProvider.Result.create(
|
||||||
.create(
|
ConcurrentFactoryMap.createMap { defaultMode: JvmDefaultMode ->
|
||||||
createNoCache(classOrObject, jvmDefaultMode, KtUltraLightSupport.forceUsingOldLightClasses),
|
createNoCache(classOrObject, defaultMode, KtUltraLightSupport.forceUsingOldLightClasses)
|
||||||
KotlinModificationTrackerService.getInstance(classOrObject.project).outOfBlockModificationTracker
|
},
|
||||||
)
|
KotlinModificationTrackerService.getInstance(classOrObject.project).outOfBlockModificationTracker,
|
||||||
}
|
)
|
||||||
|
}[jvmDefaultMode]
|
||||||
|
|
||||||
fun createNoCache(
|
fun createNoCache(
|
||||||
classOrObject: KtClassOrObject,
|
classOrObject: KtClassOrObject,
|
||||||
|
|||||||
Reference in New Issue
Block a user