diff --git a/plugins/stats-collector/src/com/intellij/completion/ml/MLFeaturesUtil.kt b/plugins/stats-collector/src/com/intellij/completion/ml/MLFeaturesUtil.kt index 5047e4c461ff..55dfc92b5956 100644 --- a/plugins/stats-collector/src/com/intellij/completion/ml/MLFeaturesUtil.kt +++ b/plugins/stats-collector/src/com/intellij/completion/ml/MLFeaturesUtil.kt @@ -1,11 +1,11 @@ // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.completion.ml +import com.google.common.cache.Cache +import com.google.common.cache.CacheBuilder import com.intellij.codeInsight.completion.CompletionLocation import com.intellij.codeInsight.completion.CompletionService import com.intellij.codeInsight.completion.CompletionSorter -import com.google.common.cache.CacheBuilder -import com.google.common.cache.CacheLoader import com.intellij.codeInsight.completion.ml.MLFeatureValue import com.intellij.codeInsight.lookup.LookupElement import com.intellij.codeInsight.lookup.LookupElementWeigher @@ -31,17 +31,14 @@ object MLFeaturesUtil { private val THIRD_PARTY_NAME = ClassNames("third.party", "third.party") - private val classNameSafeCache = CacheBuilder + private val CLASS_NAMES_CACHE: Cache = CacheBuilder .newBuilder() - .softValues() .maximumSize(100) - .build(object : CacheLoader, ClassNames>() { - override fun load(clazz: Class<*>) = if (getPluginInfo(clazz).isSafeToReport()) clazz.getNames() else THIRD_PARTY_NAME - }) + .build() private fun getClassNameSafe(feature: MLFeatureValue.ClassNameValue): String { val clazz = feature.value - val names = classNameSafeCache[clazz] + val names = CLASS_NAMES_CACHE.get(clazz.name) { if (getPluginInfo(clazz).isSafeToReport()) clazz.getNames() else THIRD_PARTY_NAME } return if (feature.useSimpleName) names.simpleName else names.fullName }