Extract Function: Use 'public' visibility for function extracted from public inline

#KT-15228 Fixed
This commit is contained in:
Alexey Sedunov
2018-02-28 13:07:43 +03:00
parent d690aedb89
commit 5f43bd56b4
6 changed files with 40 additions and 1 deletions
@@ -56,6 +56,7 @@ import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.approximateWithResolvableType
import org.jetbrains.kotlin.idea.util.getResolutionScope
import org.jetbrains.kotlin.idea.util.isResolvableInScope
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.*
@@ -608,7 +609,9 @@ private fun ExtractionData.getLocalInstructions(pseudocode: Pseudocode): List<In
fun ExtractionData.isVisibilityApplicable(): Boolean {
val parent = targetSibling.parent
return parent is KtClassBody || (parent is KtFile && !parent.isScript())
if (parent !is KtClassBody && (parent !is KtFile || parent.isScript())) return false
if (commonParent.parentsWithSelf.any { it is KtNamedFunction && it.hasModifier(KtTokens.INLINE_KEYWORD) && it.isPublic }) return false
return true
}
fun ExtractionData.getDefaultVisibility(): String {