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
+1
View File
@@ -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
@@ -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)
}
}