Code cleanup: several inspections applied
This commit is contained in:
committed by
Mikhail Glukhikh
parent
fdca96634e
commit
840847e47c
@@ -61,15 +61,11 @@ internal fun createSingleImportAction(
|
||||
): KotlinAddImportAction {
|
||||
val file = element.containingKtFile
|
||||
val prioritizer = Prioritizer(element.containingKtFile)
|
||||
val variants = fqNames
|
||||
.map { fqName ->
|
||||
val sameFqNameDescriptors = file.resolveImportReference(fqName)
|
||||
val priority = sameFqNameDescriptors.map { prioritizer.priority(it) }.min() ?: return@map null
|
||||
Prioritizer.VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors), priority)
|
||||
}
|
||||
.filterNotNull()
|
||||
.sortedBy { it.priority }
|
||||
.map { it.variant }
|
||||
val variants = fqNames.mapNotNull { fqName ->
|
||||
val sameFqNameDescriptors = file.resolveImportReference(fqName)
|
||||
val priority = sameFqNameDescriptors.map { prioritizer.priority(it) }.min() ?: return@mapNotNull null
|
||||
Prioritizer.VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors), priority)
|
||||
}.sortedBy { it.priority }.map { it.variant }
|
||||
|
||||
return KotlinAddImportAction(project, editor, element, variants)
|
||||
}
|
||||
@@ -82,18 +78,14 @@ internal fun createSingleImportActionForConstructor(
|
||||
): KotlinAddImportAction {
|
||||
val file = element.containingKtFile
|
||||
val prioritizer = Prioritizer(element.containingKtFile)
|
||||
val variants = fqNames
|
||||
.map { fqName ->
|
||||
val sameFqNameDescriptors = file.resolveImportReference(fqName.parent())
|
||||
.filterIsInstance<ClassDescriptor>()
|
||||
.flatMap { it.constructors }
|
||||
val variants = fqNames.mapNotNull { fqName ->
|
||||
val sameFqNameDescriptors = file.resolveImportReference(fqName.parent())
|
||||
.filterIsInstance<ClassDescriptor>()
|
||||
.flatMap { it.constructors }
|
||||
|
||||
val priority = sameFqNameDescriptors.map { prioritizer.priority(it) }.min() ?: return@map null
|
||||
Prioritizer.VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors), priority)
|
||||
}
|
||||
.filterNotNull()
|
||||
.sortedBy { it.priority }
|
||||
.map { it.variant }
|
||||
val priority = sameFqNameDescriptors.map { prioritizer.priority(it) }.min() ?: return@mapNotNull null
|
||||
Prioritizer.VariantWithPriority(SingleImportVariant(fqName, sameFqNameDescriptors), priority)
|
||||
}.sortedBy { it.priority }.map { it.variant }
|
||||
return KotlinAddImportAction(project, editor, element, variants)
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ class KotlinCreateFromTemplateHandler : DefaultCreateFromTemplateHandler() {
|
||||
if (!packageName.isNullOrEmpty()) {
|
||||
props[FileTemplate.ATTRIBUTE_PACKAGE_NAME] = packageName!!
|
||||
.split('.')
|
||||
.map(String::quoteIfNeeded)
|
||||
.joinToString(".")
|
||||
.joinToString(".", transform = String::quoteIfNeeded)
|
||||
}
|
||||
|
||||
val name = props[FileTemplate.ATTRIBUTE_NAME] as? String
|
||||
|
||||
+1
-1
@@ -145,7 +145,7 @@ class KotlinGenerateEqualsAndHashcodeAction : KotlinGenerateMemberActionBase<Kot
|
||||
var typeForCast = IdeDescriptorRenderers.SOURCE_CODE.renderClassifierName(classDescriptor)
|
||||
val typeParams = classDescriptor.declaredTypeParameters
|
||||
if (typeParams.isNotEmpty()) {
|
||||
typeForCast += typeParams.map { "*" }.joinToString(prefix = "<", postfix = ">")
|
||||
typeForCast += typeParams.joinToString(prefix = "<", postfix = ">") { "*" }
|
||||
}
|
||||
|
||||
val useIsCheck = CodeInsightSettings.getInstance().USE_INSTANCEOF_ON_EQUALS_PARAMETER
|
||||
|
||||
@@ -103,7 +103,7 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
|
||||
if (existingClassFiles.isEmpty()) {
|
||||
return null
|
||||
}
|
||||
LOG.debug("Classfiles: [${existingClassFiles.map { it.name }.joinToString()}]")
|
||||
LOG.debug("Classfiles: [${existingClassFiles.joinToString { it.name }}]")
|
||||
return existingClassFiles.map {
|
||||
val relativePath = VfsUtilCore.getRelativePath(it, outputRoot!!)!!
|
||||
StringUtil.trimEnd(relativePath, ".class").replace("/", ".")
|
||||
|
||||
+4
-4
@@ -55,13 +55,13 @@ fun getFunctionForExtractedFragment(
|
||||
attachmentByPsiFile(codeFragment),
|
||||
Attachment("breakpoint.info", "line: $breakpointLine"),
|
||||
Attachment("context.info", codeFragment.context?.text ?: "null"),
|
||||
Attachment("errors.info", analysisResult.messages.map { "$it: ${it.renderMessage()}" }.joinToString("\n")))
|
||||
Attachment("errors.info", analysisResult.messages.joinToString("\n") { "$it: ${it.renderMessage()}" }))
|
||||
LOG.error(LogMessageEx.createEvent(
|
||||
"Internal error during evaluate expression",
|
||||
ExceptionUtil.getThrowableText(Throwable("Extract function fails with ${analysisResult.messages.joinToString { it.name }}")),
|
||||
mergeAttachments(*attachments)))
|
||||
}
|
||||
return analysisResult.messages.map { errorMessage ->
|
||||
return analysisResult.messages.joinToString(", ") { errorMessage ->
|
||||
val message = when(errorMessage) {
|
||||
ErrorMessage.NO_EXPRESSION -> "Cannot perform an action without an expression"
|
||||
ErrorMessage.NO_CONTAINER -> "Cannot perform an action at this breakpoint ${breakpointFile.name}:$breakpointLine"
|
||||
@@ -76,7 +76,7 @@ fun getFunctionForExtractedFragment(
|
||||
ErrorMessage.MULTIPLE_OUTPUT -> throw AssertionError("Unexpected error: $errorMessage")
|
||||
}
|
||||
errorMessage.additionalInfo?.let { "$message: ${it.joinToString(", ")}" } ?: message
|
||||
}.joinToString(", ")
|
||||
}
|
||||
}
|
||||
|
||||
fun generateFunction(): ExtractionResult? {
|
||||
@@ -104,7 +104,7 @@ fun getFunctionForExtractedFragment(
|
||||
|
||||
val validationResult = analysisResult.descriptor!!.validate()
|
||||
if (!validationResult.conflicts.isEmpty) {
|
||||
throw EvaluateExceptionUtil.createEvaluateException("Following declarations are unavailable in debug scope: ${validationResult.conflicts.keySet().map { it.text }.joinToString(",")}")
|
||||
throw EvaluateExceptionUtil.createEvaluateException("Following declarations are unavailable in debug scope: ${validationResult.conflicts.keySet().joinToString(",") { it.text }}")
|
||||
}
|
||||
|
||||
val generatorOptions = ExtractionGeneratorOptions(inTempFile = true,
|
||||
|
||||
+1
-1
@@ -381,7 +381,7 @@ fun getStepOverAction(
|
||||
val patchedLineNumber = patchedLocation.ktLineNumber()
|
||||
|
||||
val lambdaArgumentRanges = runReadAction {
|
||||
inlineFunctionArguments.filterIsInstance<KtElement>().map {
|
||||
inlineFunctionArguments.map {
|
||||
val startLineNumber = it.getLineNumber(true) + 1
|
||||
val endLineNumber = it.getLineNumber(false) + 1
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ class ImportSettingsPanel(private val commonSettings: CodeStyleSettings) : JPane
|
||||
|
||||
add(rbUseSingleImports, true)
|
||||
add(rbUseStarImports, true)
|
||||
val jPanel: JPanel = JPanel(GridBagLayout())
|
||||
val jPanel = JPanel(GridBagLayout())
|
||||
add(jPanel.apply {
|
||||
val constraints = GridBagConstraints().apply { gridx = GridBagConstraints.RELATIVE }
|
||||
this.add(rbUseStarImportsIfAtLeast, constraints)
|
||||
|
||||
+2
-2
@@ -60,9 +60,9 @@ class DifferentKotlinGradleVersionInspection : GradleBaseInspection() {
|
||||
val buildScriptCall = dependenciesCall.getStrictParentOfType<GrMethodCall>() ?: return
|
||||
if (buildScriptCall.invokedExpression.text != "buildscript") return
|
||||
|
||||
val kotlinPluginStatement = findClassPathStatements(closure).filter {
|
||||
val kotlinPluginStatement = findClassPathStatements(closure).firstOrNull {
|
||||
it.text.contains(KOTLIN_PLUGIN_CLASSPATH_MARKER)
|
||||
}.firstOrNull() ?: return
|
||||
} ?: return
|
||||
|
||||
val kotlinPluginVersion =
|
||||
getHeuristicKotlinPluginVersion(kotlinPluginStatement) ?:
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ class ConvertFunctionTypeParameterToReceiverIntention : SelfTargetingRangeIntent
|
||||
}
|
||||
|
||||
private fun generateVariable(expression: KtExpression): String {
|
||||
var baseCallee: String = ""
|
||||
var baseCallee = ""
|
||||
KotlinIntroduceVariableHandler.doRefactoring(project, null, expression, false, emptyList()) {
|
||||
baseCallee = it.name!!
|
||||
}
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ class InsertExplicitTypeArgumentsIntention : SelfTargetingRangeIntention<KtCallE
|
||||
val args = resolvedCall.typeArguments
|
||||
val types = resolvedCall.candidateDescriptor.typeParameters
|
||||
|
||||
val text = types.map { IdeDescriptorRenderers.SOURCE_CODE.renderType(args[it]!!) }.joinToString(", ", "<", ">")
|
||||
val text = types.joinToString(", ", "<", ">") { IdeDescriptorRenderers.SOURCE_CODE.renderType(args[it]!!) }
|
||||
|
||||
return KtPsiFactory(element).createTypeArguments(text)
|
||||
}
|
||||
|
||||
+1
-1
@@ -215,7 +215,7 @@ class ConvertMemberToExtensionIntention : SelfTargetingRangeIntention<KtCallable
|
||||
val classParams = classElement.typeParameters
|
||||
if (classParams.isEmpty()) return null
|
||||
val allTypeParameters = classParams + member.typeParameters
|
||||
val text = allTypeParameters.map { it.text }.joinToString(",", "<", ">")
|
||||
val text = allTypeParameters.joinToString(",", "<", ">") { it.text }
|
||||
return KtPsiFactory(member).createDeclaration<KtFunction>("fun $text foo()").typeParameterList
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ object KDocRenderer {
|
||||
|
||||
val lines = text.split('\n')
|
||||
val minIndent = lines.filter { it.trim().isNotEmpty() }.map(String::leadingIndent).min() ?: 0
|
||||
return lines.map { it.drop(minIndent) }.joinToString("\n")
|
||||
return lines.joinToString("\n") { it.drop(minIndent) }
|
||||
}
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ object KDocRenderer {
|
||||
val markdownNode = MarkdownNode(markdownTree, null, markdown)
|
||||
|
||||
// Avoid wrapping the entire converted contents in a <p> tag if it's just a single paragraph
|
||||
val maybeSingleParagraph = markdownNode.children.filter { it.type != MarkdownTokenTypes.EOL }.singleOrNull()
|
||||
val maybeSingleParagraph = markdownNode.children.singleOrNull { it.type != MarkdownTokenTypes.EOL }
|
||||
if (maybeSingleParagraph != null && !allowSingleParagraph) {
|
||||
return maybeSingleParagraph.children.joinToString("") { it.toHtml() }
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class ConvertExtensionToFunctionTypeFix(element: KtTypeReference, type: KotlinTy
|
||||
|
||||
private fun KotlinType.renderType(renderer: DescriptorRenderer) = buildString {
|
||||
append('(')
|
||||
arguments.dropLast(1).map { renderer.renderType(it.type) }.joinTo(this@buildString, ", ")
|
||||
arguments.dropLast(1).joinTo(this@buildString, ", ") { renderer.renderType(it.type) }
|
||||
append(") -> ")
|
||||
append(renderer.renderType(this@renderType.getReturnTypeFromFunctionType()))
|
||||
}
|
||||
|
||||
+2
-2
@@ -427,7 +427,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
|
||||
|
||||
fun renderParamList(): String {
|
||||
val prefix = if (classKind == ClassKind.ANNOTATION_CLASS) "val " else ""
|
||||
val list = callableInfo.parameterInfos.indices.map { i -> "${prefix}p$i: Any" }.joinToString(", ")
|
||||
val list = callableInfo.parameterInfos.indices.joinToString(", ") { i -> "${prefix}p$i: Any" }
|
||||
return if (callableInfo.parameterInfos.isNotEmpty()
|
||||
|| callableInfo.kind == CallableKind.FUNCTION
|
||||
|| callableInfo.kind == CallableKind.SECONDARY_CONSTRUCTOR) "($list)" else list
|
||||
@@ -972,7 +972,7 @@ internal fun <D : KtNamedDeclaration> placeDeclarationInContainer(
|
||||
val newLine = psiFactory.createNewLine()
|
||||
|
||||
fun calcNecessaryEmptyLines(decl: KtDeclaration, after: Boolean): Int {
|
||||
var lineBreaksPresent: Int = 0
|
||||
var lineBreaksPresent = 0
|
||||
var neighbor: PsiElement? = null
|
||||
|
||||
siblingsLoop@
|
||||
|
||||
+1
-1
@@ -174,7 +174,7 @@ internal class TypeParameterListExpression(private val mandatoryTypeParameters:
|
||||
currentTypeParameters = sortedRenderedTypeParameters.map { it.typeParameter }
|
||||
|
||||
return TextResult(
|
||||
if (sortedRenderedTypeParameters.isEmpty()) "" else sortedRenderedTypeParameters.map { it.text }.joinToString(", ", prefix, ">")
|
||||
if (sortedRenderedTypeParameters.isEmpty()) "" else sortedRenderedTypeParameters.joinToString(", ", prefix, ">") { it.text }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -89,9 +89,9 @@ class MigrateExternalExtensionFix(declaration: KtNamedDeclaration)
|
||||
private data class JsNativeAnnotations(val annotations: List<KtAnnotationEntry>, val nativeAnnotation: KtAnnotationEntry?, val isGetter: Boolean, val isSetter: Boolean, val isInvoke: Boolean)
|
||||
|
||||
private fun fetchJsNativeAnnotations(declaration: KtNamedDeclaration) : JsNativeAnnotations {
|
||||
var isGetter: Boolean = false
|
||||
var isSetter: Boolean = false
|
||||
var isInvoke: Boolean = false
|
||||
var isGetter = false
|
||||
var isSetter = false
|
||||
var isInvoke = false
|
||||
var nativeAnnotation: KtAnnotationEntry? = null
|
||||
val nativeAnnotations = ArrayList<KtAnnotationEntry>()
|
||||
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ class ReplaceProtectedToPublishedApiCallFix(
|
||||
KtPsiFactory(classOwner).createFunction(
|
||||
"@kotlin.PublishedApi\n" +
|
||||
"internal " + newSignature +
|
||||
" = $originalName(${paramNames.keys.map { it }.joinToString(", ")})"
|
||||
" = $originalName(${paramNames.keys.joinToString(", ") { it }})"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -75,9 +75,9 @@ abstract class CallableRefactoring<out T: CallableDescriptor>(
|
||||
private fun showSuperFunctionWarningDialog(superCallables: Collection<CallableDescriptor>,
|
||||
callableFromEditor: CallableDescriptor,
|
||||
options: List<String>): Int {
|
||||
val superString = superCallables.map {
|
||||
val superString = superCallables.joinToString(prefix = "\n ", separator = ",\n ", postfix = ".\n\n") {
|
||||
it.containingDeclaration.name.asString()
|
||||
}.joinToString(prefix = "\n ", separator = ",\n ", postfix = ".\n\n")
|
||||
}
|
||||
val message = KotlinBundle.message("x.overrides.y.in.class.list",
|
||||
DescriptorRenderer.COMPACT.render(callableFromEditor),
|
||||
callableFromEditor.containingDeclaration.name.asString(), superString,
|
||||
|
||||
@@ -288,9 +288,9 @@ open class KotlinChangeInfo(
|
||||
return signatureParameters[0].getDeclarationSignature(0, inheritedCallable).text
|
||||
}
|
||||
|
||||
return signatureParameters.indices
|
||||
.map { i -> signatureParameters[i].getDeclarationSignature(i, inheritedCallable).text }
|
||||
.joinToString(separator = ", ")
|
||||
return signatureParameters.indices.joinToString(separator = ", ") { i ->
|
||||
signatureParameters[i].getDeclarationSignature(i, inheritedCallable).text
|
||||
}
|
||||
}
|
||||
|
||||
fun renderReceiverType(inheritedCallable: KotlinCallableDefinitionUsage<*>): String? {
|
||||
|
||||
+2
-2
@@ -148,8 +148,8 @@ class KotlinChangeSignatureDialog(
|
||||
override fun isListTableViewSupported() = true
|
||||
|
||||
override fun isEmptyRow(row: ParameterTableModelItemBase<KotlinParameterInfo>): Boolean {
|
||||
if (!row.parameter.name.isNullOrEmpty()) return false
|
||||
if (!row.parameter.typeText.isNullOrEmpty()) return false
|
||||
if (!row.parameter.name.isEmpty()) return false
|
||||
if (!row.parameter.typeText.isEmpty()) return false
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ internal var KtSimpleNameExpression.internalUsageInfos: MutableMap<FqName, (KtSi
|
||||
|
||||
internal fun preProcessInternalUsages(element: KtElement, usages: Collection<KtElement>) {
|
||||
val mainFile = element.containingKtFile
|
||||
val targetPackages = usages.mapNotNullTo(LinkedHashSet()) { it.containingKtFile.packageFqName }
|
||||
val targetPackages = usages.mapTo(LinkedHashSet()) { it.containingKtFile.packageFqName }
|
||||
for (targetPackage in targetPackages) {
|
||||
if (targetPackage == mainFile.packageFqName) continue
|
||||
val packageNameInfo = ContainerChangeInfo(ContainerInfo.Package(mainFile.packageFqName), ContainerInfo.Package(targetPackage))
|
||||
|
||||
+1
-1
@@ -245,7 +245,7 @@ class ExtractSuperRefactoring(
|
||||
}
|
||||
|
||||
if (typeParameters.isNotEmpty()) {
|
||||
val typeParameterListText = typeParameters.sortedBy { it.startOffset }.map { it.text }.joinToString(prefix = "<", postfix = ">")
|
||||
val typeParameterListText = typeParameters.sortedBy { it.startOffset }.joinToString(prefix = "<", postfix = ">") { it.text }
|
||||
newClass.addAfter(psiFactory.createTypeParameterList(typeParameterListText), newClass.nameIdentifier)
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -541,7 +541,7 @@ class AnalysisResult (
|
||||
}
|
||||
)
|
||||
|
||||
return additionalInfo?.let { "$message\n\n${it.map { StringUtil.htmlEmphasize(it) }.joinToString("\n")}" } ?: message
|
||||
return additionalInfo?.let { "$message\n\n${it.joinToString("\n") { StringUtil.htmlEmphasize(it) }}" } ?: message
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ class ExtractionEngine(
|
||||
}
|
||||
}
|
||||
|
||||
val message = analysisResult.messages.map { it.renderMessage() }.joinToString("\n")
|
||||
val message = analysisResult.messages.joinToString("\n") { it.renderMessage() }
|
||||
when (analysisResult.status) {
|
||||
AnalysisResult.Status.CRITICAL_ERROR -> {
|
||||
showErrorHint(project, editor, message, helper.operationName)
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ class KotlinInplaceParameterIntroducer(
|
||||
null,
|
||||
originalDescriptor.originalRange.elements.single() as KtExpression,
|
||||
originalDescriptor.occurrencesToReplace
|
||||
.mapNotNull { it.elements.single() as KtExpression }
|
||||
.map { it.elements.single() as KtExpression }
|
||||
.toTypedArray(),
|
||||
INTRODUCE_PARAMETER,
|
||||
project,
|
||||
|
||||
+1
-3
@@ -281,9 +281,7 @@ class KotlinIntroduceParameterDialog private constructor(
|
||||
val function = declaration as KtFunction
|
||||
val receiverType = function.receiverTypeReference?.text
|
||||
val parameterTypes = function
|
||||
.valueParameters
|
||||
.map { it.typeReference!!.text }
|
||||
.joinToString()
|
||||
.valueParameters.joinToString { it.typeReference!!.text }
|
||||
val returnType = function.typeReference?.text ?: "Unit"
|
||||
|
||||
chosenType = (receiverType?.let { "$it." } ?: "") + "($parameterTypes) -> $returnType"
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ class KotlinIntroducePropertyHandler(
|
||||
): RefactoringActionHandler {
|
||||
object InteractiveExtractionHelper : ExtractionEngineHelper(INTRODUCE_PROPERTY) {
|
||||
private fun getExtractionTarget(descriptor: ExtractableCodeDescriptor) =
|
||||
propertyTargets.filter { it.isAvailable(descriptor) }.firstOrNull()
|
||||
propertyTargets.firstOrNull { it.isAvailable(descriptor) }
|
||||
|
||||
override fun validate(descriptor: ExtractableCodeDescriptor) =
|
||||
descriptor.validate(getExtractionTarget(descriptor) ?: ExtractionTarget.FUNCTION)
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@ object KotlinIntroduceTypeParameterHandler : RefactoringActionHandler {
|
||||
restoredOriginalTypeElement.textRange.intersects(textRange)
|
||||
|| restoredOwner.typeParameterList?.textRange?.intersects(textRange) ?: false
|
||||
}
|
||||
.mapNotNull { it.range.elements.toRange() }
|
||||
.map { it.range.elements.toRange() }
|
||||
|
||||
restoredOriginalTypeElement.replace(parameterRefElement)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user