Rename: Do not suggest type-based names for functions with primitive return types

#KT-14234 Fixed
This commit is contained in:
Alexey Sedunov
2016-10-12 12:24:53 +03:00
committed by Ilya Gorbunov
parent 394859afc5
commit cf69f1a946
2 changed files with 7 additions and 2 deletions
@@ -23,11 +23,14 @@ import com.intellij.psi.codeStyle.SuggestedNameInfo
import com.intellij.psi.statistics.JavaStatisticsManager
import com.intellij.refactoring.rename.NameSuggestionProvider
import org.jetbrains.kotlin.asJava.toLightElements
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
import org.jetbrains.kotlin.psi.KtCallableDeclaration
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
import org.jetbrains.kotlin.types.typeUtil.isUnit
import org.jetbrains.kotlin.utils.SmartList
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
@@ -48,8 +51,9 @@ class KotlinNameSuggestionProvider : NameSuggestionProvider {
this += KotlinNameSuggester.getCamelNames(name!!, validator, name.first().isLowerCase())
}
val type = (element.resolveToDescriptor() as CallableDescriptor).returnType
if (type != null) {
val callableDescriptor = element.resolveToDescriptor() as CallableDescriptor
val type = callableDescriptor.returnType
if (type != null && !type.isUnit() && !KotlinBuiltIns.isPrimitiveType(type)) {
this += KotlinNameSuggester.suggestNamesByType(type, validator)
}
}