From cf69f1a9464c618e33c99726a8c1be4057184cfd Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 12 Oct 2016 12:24:53 +0300 Subject: [PATCH] Rename: Do not suggest type-based names for functions with primitive return types #KT-14234 Fixed --- ChangeLog.md | 1 + .../kotlin/idea/core/KotlinNameSuggestionProvider.kt | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 317f0c619a3..bedc50ea56b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -285,6 +285,7 @@ These artifacts include extensions for the types available in the latter JDKs, s - Extract Function: Support implicit abnormal exits via Nothing-typed expressions - [`KT-14285`](https://youtrack.jetbrains.com/issue/KT-14285) Rename: Forbid on backing field reference - [`KT-14240`](https://youtrack.jetbrains.com/issue/KT-14240) Introduce Variable: Do not replace assignment left-hand sides +- [`KT-14234`](https://youtrack.jetbrains.com/issue/KT-14234) Rename: Do not suggest type-based names for functions with primitive return types ##### New features diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggestionProvider.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggestionProvider.kt index 0c06e9963b5..d712e5e1f74 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggestionProvider.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggestionProvider.kt @@ -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) } }