Map.getOrPut: treat nulls as missing values.

This commit is contained in:
Ilya Gorbunov
2016-01-22 07:47:54 +03:00
parent a49db730a9
commit 23080f78f7
8 changed files with 21 additions and 44 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext
import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker
import org.jetbrains.kotlin.util.isValidOperator
import org.jetbrains.kotlin.utils.getOrPutNullable
import java.util.*
class IterableTypesDetection(
@@ -62,7 +63,7 @@ class IterableTypesDetection(
= isIterable(FuzzyType(type, emptyList()), loopVarType)
private fun elementType(type: FuzzyType): FuzzyType? {
return cache.getOrPut(type, { elementTypeNoCache(type) })
return cache.getOrPutNullable(type, { elementTypeNoCache(type) })
}
override fun elementType(type: KotlinType): FuzzyType?
@@ -23,6 +23,7 @@ import com.intellij.psi.PsiManager
import com.intellij.refactoring.PackageWrapper
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.utils.getOrPutNullable
import java.util.HashMap
interface KotlinMoveTarget {
@@ -64,7 +65,7 @@ class KotlinMoveTargetForDeferredFile(
override fun getOrCreateTargetPsi(originalPsi: PsiElement): PsiFile? {
val originalFile = originalPsi.containingFile as? KtFile ?: return null
return createdFiles.getOrPut(originalFile) { createFile(originalFile) }
return createdFiles.getOrPutNullable(originalFile) { createFile(originalFile) }
}
override fun getTargetPsiIfExists(originalPsi: PsiElement) = null