diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml
index f73dc6f3c53..7ca9d29691a 100644
--- a/.idea/artifacts/KotlinPlugin.xml
+++ b/.idea/artifacts/KotlinPlugin.xml
@@ -40,6 +40,8 @@
+
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 6d71fbcac17..91a9beb46fe 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -29,6 +29,8 @@
+
+
diff --git a/idea/idea-completion/idea-completion.iml b/idea/idea-completion/idea-completion.iml
new file mode 100644
index 00000000000..1936408acae
--- /dev/null
+++ b/idea/idea-completion/idea-completion.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt
similarity index 90%
rename from idea/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt
index e2efdfa91d7..9a5e3cdf77d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt
@@ -16,23 +16,26 @@
package org.jetbrains.kotlin.idea.completion
-import com.intellij.codeInsight.completion.*
+import com.intellij.codeInsight.completion.AllClassesGetter
+import com.intellij.codeInsight.completion.CompletionParameters
+import com.intellij.codeInsight.completion.PrefixMatcher
import com.intellij.openapi.roots.ProjectRootModificationTracker
-import org.jetbrains.kotlin.asJava.KotlinLightClass
-import org.jetbrains.kotlin.psi.JetFile
-import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
-import org.jetbrains.kotlin.idea.caches.KotlinIndicesHelper
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
-import org.jetbrains.kotlin.resolve.BindingContext
-import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
-import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
+import org.jetbrains.kotlin.asJava.KotlinLightClass
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
-import org.jetbrains.kotlin.descriptors.impl.*
-import org.jetbrains.kotlin.name.*
-import org.jetbrains.kotlin.resolve.scopes.*
-import org.jetbrains.kotlin.descriptors.*
+import org.jetbrains.kotlin.descriptors.ClassDescriptor
+import org.jetbrains.kotlin.descriptors.ClassKind
+import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
+import org.jetbrains.kotlin.descriptors.ModuleDescriptor
+import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
+import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
+import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
+import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
+import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
+import org.jetbrains.kotlin.psi.JetFile
+import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
class AllClassesCompletion(val parameters: CompletionParameters,
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt
index 88607fbaeed..49ecedfef8e 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt
@@ -30,13 +30,14 @@ import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.ProcessingContext
import org.jetbrains.kotlin.descriptors.*
-import org.jetbrains.kotlin.idea.caches.KotlinIndicesHelper
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.codeInsight.ReferenceVariantsHelper
import org.jetbrains.kotlin.idea.completion.smart.SmartCompletion
-import org.jetbrains.kotlin.idea.refactoring.comparePossiblyOverridingDescriptors
+import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
+import org.jetbrains.kotlin.idea.core.isVisible
+import org.jetbrains.kotlin.idea.core.refactoring.comparePossiblyOverridingDescriptors
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference
import org.jetbrains.kotlin.idea.util.CallType
import org.jetbrains.kotlin.idea.util.makeNotNullable
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt
similarity index 91%
rename from idea/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt
index 3ed42b52310..8ca154425f8 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionUtils.kt
@@ -154,34 +154,6 @@ fun descriptorsEqualWithSubstitution(descriptor1: DeclarationDescriptor?, descri
return true
}
-fun DeclarationDescriptorWithVisibility.isVisible(
- from: DeclarationDescriptor,
- bindingContext: BindingContext? = null,
- element: JetSimpleNameExpression? = null
-): Boolean {
- if (Visibilities.isVisible(ReceiverValue.IRRELEVANT_RECEIVER, this, from)) return true
- if (bindingContext == null || element == null) return false
-
- val receiver = element.getReceiverExpression()
- val type = receiver?.let { bindingContext.get(BindingContext.EXPRESSION_TYPE, it) }
- val explicitReceiver = type?.let { ExpressionReceiver(receiver, it) }
-
- if (explicitReceiver != null) {
- val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(explicitReceiver, bindingContext)
- return Visibilities.isVisible(normalizeReceiver, this, from)
- }
-
- val jetScope = bindingContext[BindingContext.RESOLUTION_SCOPE, element]
- val implicitReceivers = jetScope?.getImplicitReceiversHierarchy()
- if (implicitReceivers != null) {
- for (implicitReceiver in implicitReceivers) {
- val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(implicitReceiver.getValue(), bindingContext)
- if (Visibilities.isVisible(normalizeReceiver, this, from)) return true
- }
- }
- return false
-}
-
fun InsertionContext.isAfterDot(): Boolean {
var offset = getStartOffset()
val chars = getDocument().getCharsSequence()
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/DeclarationDescriptorLookupObject.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationDescriptorLookupObject.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/DeclarationDescriptorLookupObject.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationDescriptorLookupObject.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/HeuristicSignatures.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/HeuristicSignatures.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/HeuristicSignatures.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/HeuristicSignatures.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/kdoc/KDocCompletionContributor.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt
index 5a075dcd44b..6c1af58d5db 100644
--- a/idea/src/org/jetbrains/kotlin/idea/kdoc/KDocCompletionContributor.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.kdoc
+package org.jetbrains.kotlin.idea.completion
import com.intellij.codeInsight.completion.*
import com.intellij.codeInsight.lookup.LookupElement
@@ -29,6 +29,8 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.completion.KotlinCompletionContributor
import org.jetbrains.kotlin.idea.completion.LookupElementFactory
+import org.jetbrains.kotlin.idea.kdoc.getParamDescriptors
+import org.jetbrains.kotlin.idea.kdoc.getResolutionScope
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag
import org.jetbrains.kotlin.kdoc.psi.impl.KDocLink
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionCharFilter.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionCharFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionCharFilter.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionCharFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/LeafElementFilter.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LeafElementFilter.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/LeafElementFilter.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LeafElementFilter.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementsCollector.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt
index a4b742113a2..5f11922497f 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/NamedParametersCompletion.kt
@@ -25,12 +25,12 @@ import com.intellij.psi.filters.AndFilter
import com.intellij.psi.filters.ClassFilter
import com.intellij.psi.filters.OrFilter
import com.intellij.psi.filters.position.ParentElementFilter
+import org.jetbrains.kotlin.core.FirstChildInParentFilter
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.idea.JetIcons
import org.jetbrains.kotlin.idea.completion.handlers.WithTailInsertHandler
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.idea.references.JetReference
-import org.jetbrains.kotlin.idea.util.FirstChildInParentFilter
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.name.Name
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/PackageDirectiveCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/PackageDirectiveCompletion.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/PackageDirectiveCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/PackageDirectiveCompletion.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/ToFromOriginalFileMapper.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ToFromOriginalFileMapper.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/ToFromOriginalFileMapper.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ToFromOriginalFileMapper.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/confidence/UnfocusedPossibleFunctionParameter.java b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/confidence/UnfocusedPossibleFunctionParameter.java
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/confidence/UnfocusedPossibleFunctionParameter.java
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/confidence/UnfocusedPossibleFunctionParameter.java
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/BaseDeclarationInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/BaseDeclarationInsertHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/BaseDeclarationInsertHandler.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/BaseDeclarationInsertHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt
similarity index 93%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt
index 852fb179a58..e0d4d91c609 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/GenerateLambda.kt
@@ -16,31 +16,26 @@
package org.jetbrains.kotlin.idea.completion.handlers
-import com.intellij.openapi.command.CommandProcessor
import com.intellij.codeInsight.completion.InsertionContext
-import com.intellij.codeInsight.template.TemplateManager
-import com.intellij.openapi.util.TextRange
-import com.intellij.codeInsight.template.Template
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester
-import com.intellij.codeInsight.template.Expression
-import com.intellij.codeInsight.template.ExpressionContext
-import com.intellij.codeInsight.template.TextResult
-import com.intellij.codeInsight.template.Result
import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementBuilder
-import org.jetbrains.kotlin.types.JetType
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import com.intellij.codeInsight.template.*
+import com.intellij.openapi.command.CommandProcessor
import com.intellij.openapi.project.Project
+import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.util.PsiTreeUtil
-import org.jetbrains.kotlin.psi.JetExpression
-import org.jetbrains.kotlin.idea.completion.ExpectedInfos
-import org.jetbrains.kotlin.psi.JetFile
+import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
-import org.jetbrains.kotlin.idea.util.application.runWriteAction
-import org.jetbrains.kotlin.idea.refactoring.EmptyValidator
+import org.jetbrains.kotlin.idea.completion.ExpectedInfos
+import org.jetbrains.kotlin.idea.core.refactoring.EmptyValidator
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
+import org.jetbrains.kotlin.idea.util.application.runWriteAction
+import org.jetbrains.kotlin.psi.JetExpression
+import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
+import org.jetbrains.kotlin.types.JetType
fun insertLambdaTemplate(context: InsertionContext, placeholderRange: TextRange, lambdaType: JetType) {
val explicitParameterTypes = needExplicitParameterTypes(context, placeholderRange, lambdaType)
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt
similarity index 95%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt
index 23d7299c0ae..37ea9c32b79 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt
@@ -16,38 +16,30 @@
package org.jetbrains.kotlin.idea.completion.handlers
-import com.intellij.codeInsight.lookup.LookupElement
+import com.intellij.codeInsight.AutoPopupController
import com.intellij.codeInsight.completion.InsertionContext
+import com.intellij.codeInsight.lookup.Lookup
+import com.intellij.codeInsight.lookup.LookupElement
+import com.intellij.openapi.application.ApplicationManager
+import com.intellij.openapi.editor.Document
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiElement
-import org.jetbrains.kotlin.psi.JetImportDirective
-import com.intellij.codeInsight.AutoPopupController
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
-import com.intellij.openapi.project.Project
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings
-import com.intellij.openapi.application.ApplicationManager
-import org.jetbrains.kotlin.psi.JetFile
-import org.jetbrains.kotlin.psi.JetQualifiedExpression
-import org.jetbrains.kotlin.resolve.DescriptorUtils
-import org.jetbrains.kotlin.idea.util.ImportInsertHelper
-import com.intellij.openapi.editor.Document
-import org.jetbrains.kotlin.types.JetType
-import com.intellij.openapi.util.TextRange
-import org.jetbrains.kotlin.idea.completion.DeclarationDescriptorLookupObject
-import org.jetbrains.kotlin.descriptors.CallableDescriptor
-import org.jetbrains.kotlin.psi.JetBinaryExpression
-import org.jetbrains.kotlin.psi.JetSimpleNameExpression
-import org.jetbrains.kotlin.psi.JetPsiFactory
-import org.jetbrains.kotlin.psi.JetParenthesizedExpression
-import org.jetbrains.kotlin.psi.JetBinaryExpressionWithTypeRHS
-import org.jetbrains.kotlin.idea.util.ShortenReferences
-import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import com.intellij.psi.util.PsiTreeUtil
-import org.jetbrains.kotlin.lexer.JetTokens
-import org.jetbrains.kotlin.psi.JetTypeArgumentList
-import com.intellij.codeInsight.lookup.Lookup
+import org.jetbrains.kotlin.descriptors.CallableDescriptor
+import org.jetbrains.kotlin.idea.completion.DeclarationDescriptorLookupObject
import org.jetbrains.kotlin.idea.completion.isAfterDot
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
+import org.jetbrains.kotlin.idea.util.ImportInsertHelper
+import org.jetbrains.kotlin.idea.util.ShortenReferences
+import org.jetbrains.kotlin.lexer.JetTokens
+import org.jetbrains.kotlin.psi.*
+import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
+import org.jetbrains.kotlin.resolve.DescriptorUtils
+import org.jetbrains.kotlin.types.JetType
public abstract class KotlinCallableInsertHandler : BaseDeclarationInsertHandler() {
public override fun handleInsert(context: InsertionContext, item: LookupElement) {
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinClassInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinClassInsertHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinClassInsertHandler.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinClassInsertHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinKeywordInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinKeywordInsertHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinKeywordInsertHandler.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinKeywordInsertHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/WithTailInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/WithTailInsertHandler.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/handlers/WithTailInsertHandler.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/WithTailInsertHandler.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/LambdaItems.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/LambdaItems.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/LambdaItems.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/LambdaItems.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/MultipleArgumentsItemProvider.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/MultipleArgumentsItemProvider.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/MultipleArgumentsItemProvider.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/MultipleArgumentsItemProvider.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/NameSimilarity.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/NameSimilarity.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/NameSimilarity.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/NameSimilarity.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt
similarity index 96%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt
index 7958317b835..2566baf8a77 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/SmartCompletion.kt
@@ -16,31 +16,34 @@
package org.jetbrains.kotlin.idea.completion.smart
-import org.jetbrains.kotlin.descriptors.*
-import org.jetbrains.kotlin.resolve.*
-import org.jetbrains.kotlin.psi.*
-import org.jetbrains.kotlin.lexer.JetTokens
-import org.jetbrains.kotlin.types.*
-import com.intellij.codeInsight.lookup.*
-import com.intellij.codeInsight.completion.*
-import java.util.*
-import org.jetbrains.kotlin.idea.completion.*
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns
-import org.jetbrains.kotlin.idea.util.makeNotNullable
-import org.jetbrains.kotlin.idea.util.makeNullable
-import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
-import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
+import com.intellij.codeInsight.completion.InsertHandler
+import com.intellij.codeInsight.completion.InsertionContext
+import com.intellij.codeInsight.completion.OffsetKey
+import com.intellij.codeInsight.completion.PrefixMatcher
+import com.intellij.codeInsight.lookup.Lookup
+import com.intellij.codeInsight.lookup.LookupElement
+import com.intellij.codeInsight.lookup.LookupElementDecorator
+import com.intellij.codeInsight.lookup.LookupElementPresentation
import com.intellij.psi.search.GlobalSearchScope
-import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
-import org.jetbrains.kotlin.idea.util.FuzzyType
-import org.jetbrains.kotlin.idea.util.fuzzyReturnType
+import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.descriptors.*
+import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
+import org.jetbrains.kotlin.idea.completion.*
+import org.jetbrains.kotlin.idea.core.IterableTypesDetector
+import org.jetbrains.kotlin.idea.core.SmartCastCalculator
+import org.jetbrains.kotlin.idea.util.*
+import org.jetbrains.kotlin.lexer.JetTokens
+import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getReceiverExpression
-import org.jetbrains.kotlin.idea.util.IterableTypesDetector
-import org.jetbrains.kotlin.idea.util.nullability
-import org.jetbrains.kotlin.idea.util.TypeNullability
-import org.jetbrains.kotlin.idea.util.SmartCastCalculator
+import org.jetbrains.kotlin.renderer.DescriptorRenderer
+import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.resolve.DescriptorUtils
+import org.jetbrains.kotlin.types.JetType
+import org.jetbrains.kotlin.types.TypeUtils
+import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
+import java.util.ArrayList
+import java.util.HashSet
trait InheritanceItemsSearcher {
fun search(nameFilter: (String) -> Boolean, consumer: (LookupElement) -> Unit)
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt
index ddf558d0bed..d85fbce3760 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/StaticMembers.kt
@@ -32,8 +32,8 @@ import org.jetbrains.kotlin.idea.completion.LookupElementFactory
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.idea.util.fuzzyReturnType
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
-import org.jetbrains.kotlin.idea.completion.isVisible
import org.jetbrains.kotlin.idea.completion.ExpectedInfo
+import org.jetbrains.kotlin.idea.core.isVisible
// adds java static members, enum members and members from companion object
class StaticMembers(
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt
similarity index 95%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt
index 829897fb35a..bfafe111dc3 100644
--- a/idea/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt
@@ -16,49 +16,39 @@
package org.jetbrains.kotlin.idea.completion.smart
-import com.intellij.codeInsight.lookup.LookupElement
-import org.jetbrains.kotlin.types.JetType
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns
-import org.jetbrains.kotlin.descriptors.ClassDescriptor
-import org.jetbrains.kotlin.renderer.DescriptorRenderer
import com.intellij.codeInsight.completion.InsertHandler
-import org.jetbrains.kotlin.descriptors.Modality
-import org.jetbrains.kotlin.descriptors.ClassKind
-import org.jetbrains.kotlin.idea.codeInsight.ImplementMethodsHandler
+import com.intellij.codeInsight.completion.InsertionContext
+import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementDecorator
import com.intellij.codeInsight.lookup.LookupElementPresentation
-import com.intellij.codeInsight.completion.InsertionContext
-import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler
-import org.jetbrains.kotlin.idea.completion.*
-import org.jetbrains.kotlin.idea.completion.handlers.CaretPosition
-import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
-import org.jetbrains.kotlin.descriptors.Visibilities
-import org.jetbrains.kotlin.idea.util.makeNotNullable
-import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
-import org.jetbrains.kotlin.resolve.BindingContext
-import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
-import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor
-import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
-import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.search.searches.ClassInheritorsSearch
-import org.jetbrains.kotlin.types.TypeProjection
-import org.jetbrains.kotlin.utils.addIfNotNull
import org.jetbrains.kotlin.asJava.LightClassUtil
-import org.jetbrains.kotlin.psi.JetClassOrObject
-import org.jetbrains.kotlin.resolve.PossiblyBareType
-import org.jetbrains.kotlin.types.JetTypeImpl
+import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotations
-import org.jetbrains.kotlin.resolve.DescriptorUtils
-import org.jetbrains.kotlin.resolve.jvm.types.KotlinToJavaTypesMap
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor
-import org.jetbrains.kotlin.resolve.descriptorUtil.resolveTopLevelClass
-import org.jetbrains.kotlin.types.TypeProjectionImpl
-import org.jetbrains.kotlin.types.Variance
+import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
+import org.jetbrains.kotlin.idea.completion.*
+import org.jetbrains.kotlin.idea.completion.handlers.CaretPosition
+import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler
+import org.jetbrains.kotlin.idea.core.codeInsight.ImplementMethodsHandler
+import org.jetbrains.kotlin.idea.core.psiClassToDescriptor
+import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
+import org.jetbrains.kotlin.idea.util.makeNotNullable
+import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor
+import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.psi.JetDeclaration
+import org.jetbrains.kotlin.renderer.DescriptorRenderer
+import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
+import org.jetbrains.kotlin.resolve.DescriptorUtils
+import org.jetbrains.kotlin.resolve.PossiblyBareType
+import org.jetbrains.kotlin.resolve.descriptorUtil.resolveTopLevelClass
+import org.jetbrains.kotlin.resolve.jvm.types.KotlinToJavaTypesMap
+import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
-import org.jetbrains.kotlin.idea.util.psiClassToDescriptor.psiClassToDescriptor
+import org.jetbrains.kotlin.utils.addIfNotNull
class TypeInstantiationItems(
val resolutionFacade: ResolutionFacade,
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/TypesWithContainsDetector.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypesWithContainsDetector.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/TypesWithContainsDetector.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypesWithContainsDetector.kt
diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/smart/Utils.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/Utils.kt
similarity index 100%
rename from idea/src/org/jetbrains/kotlin/idea/completion/smart/Utils.kt
rename to idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/Utils.kt
diff --git a/idea/idea-core/idea-core.iml b/idea/idea-core/idea-core.iml
new file mode 100644
index 00000000000..d49787a8c32
--- /dev/null
+++ b/idea/idea-core/idea-core.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/IterableTypesDetector.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/IterableTypesDetector.kt
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/util/IterableTypesDetector.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/IterableTypesDetector.kt
index c36bdc7c61f..ba2f9cc9a5f 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/IterableTypesDetector.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/IterableTypesDetector.kt
@@ -14,21 +14,22 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.util
+package org.jetbrains.kotlin.idea.core
-import org.jetbrains.kotlin.types.JetType
+import com.intellij.openapi.project.Project
+import org.jetbrains.kotlin.descriptors.ModuleDescriptor
+import org.jetbrains.kotlin.di.InjectorForMacros
+import org.jetbrains.kotlin.idea.util.FuzzyType
+import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.JetPsiFactory
-import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext
import org.jetbrains.kotlin.resolve.BindingTraceContext
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo
-import org.jetbrains.kotlin.types.TypeUtils
-import com.intellij.openapi.project.Project
-import org.jetbrains.kotlin.di.InjectorForMacros
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.resolve.scopes.JetScope
+import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
+import org.jetbrains.kotlin.types.JetType
+import org.jetbrains.kotlin.types.TypeUtils
+import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext
import java.util.HashMap
-import org.jetbrains.kotlin.name.Name
public class IterableTypesDetector(
private val project: Project,
diff --git a/idea/src/org/jetbrains/kotlin/idea/caches/KotlinIndicesHelper.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/caches/KotlinIndicesHelper.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt
index 37b878059e9..8e97a7a3846 100644
--- a/idea/src/org/jetbrains/kotlin/idea/caches/KotlinIndicesHelper.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.caches
+package org.jetbrains.kotlin.idea.core
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/SmartCastCalculator.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/SmartCastCalculator.kt
similarity index 94%
rename from idea/src/org/jetbrains/kotlin/idea/util/SmartCastCalculator.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/SmartCastCalculator.kt
index 204531c2d4d..e3c22764869 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/SmartCastCalculator.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/SmartCastCalculator.kt
@@ -14,10 +14,9 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.util
+package org.jetbrains.kotlin.idea.core
import org.jetbrains.kotlin.resolve.bindingContextUtil.getDataFlowInfo
-import org.jetbrains.kotlin.idea.completion.smart.toList
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.psi.JetExpression
import org.jetbrains.kotlin.descriptors.VariableDescriptor
@@ -33,7 +32,9 @@ import java.util.HashMap
import java.util.HashSet
import com.intellij.openapi.util.Pair
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
+import org.jetbrains.kotlin.idea.util.makeNotNullable
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext
+import org.jetbrains.kotlin.utils.singletonOrEmptyList
class SmartCastCalculator(val bindingContext: BindingContext, val containingDeclaration: DeclarationDescriptor) {
public fun calculate(position: JetExpression, receiver: JetExpression?): (VariableDescriptor) -> Collection {
@@ -47,8 +48,8 @@ class SmartCastCalculator(val bindingContext: BindingContext, val containingDecl
}
val smartCastTypes = variableToTypes[descriptor]
- if (smartCastTypes == null || smartCastTypes.isEmpty()) return type.toList()
- return smartCastTypes + type.toList()
+ if (smartCastTypes == null || smartCastTypes.isEmpty()) return type.singletonOrEmptyList()
+ return smartCastTypes + type.singletonOrEmptyList()
}
return ::typesOf
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorClassMember.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
similarity index 98%
rename from idea/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorClassMember.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
index 2f3a0c09c6f..b9a016f88e0 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/DescriptorClassMember.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.codeInsight;
+package org.jetbrains.kotlin.idea.core.codeInsight;
import com.intellij.codeInsight.generation.ClassMemberWithElement;
import com.intellij.codeInsight.generation.MemberChooserObject;
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/ImplementMethodsHandler.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/ImplementMethodsHandler.java
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/codeInsight/ImplementMethodsHandler.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/ImplementMethodsHandler.java
index 638f1ccafa8..2062876e899 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/ImplementMethodsHandler.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/ImplementMethodsHandler.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.codeInsight;
+package org.jetbrains.kotlin.idea.core.codeInsight;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementMethodsHandler.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementMethodsHandler.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java
index 45d606894f9..e52b9d2b7e5 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementMethodsHandler.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.codeInsight;
+package org.jetbrains.kotlin.idea.core.codeInsight;
import com.intellij.codeInsight.hint.HintManager;
import com.intellij.ide.util.MemberChooser;
@@ -34,6 +34,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.quickfix.QuickfixPackage;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.idea.util.ShortenReferences;
diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt
new file mode 100644
index 00000000000..5210261e16b
--- /dev/null
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010-2015 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.core
+
+import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
+import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
+import org.jetbrains.kotlin.descriptors.Visibilities
+import org.jetbrains.kotlin.psi.JetSimpleNameExpression
+import org.jetbrains.kotlin.psi.psiUtil.getReceiverExpression
+import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
+import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
+import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils
+
+fun DeclarationDescriptorWithVisibility.isVisible(
+ from: DeclarationDescriptor,
+ bindingContext: BindingContext? = null,
+ element: JetSimpleNameExpression? = null
+): Boolean {
+ if (Visibilities.isVisible(ReceiverValue.IRRELEVANT_RECEIVER, this, from)) return true
+ if (bindingContext == null || element == null) return false
+
+ val receiver = element.getReceiverExpression()
+ val type = receiver?.let { bindingContext.get(BindingContext.EXPRESSION_TYPE, it) }
+ val explicitReceiver = type?.let { ExpressionReceiver(receiver, it) }
+
+ if (explicitReceiver != null) {
+ val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(explicitReceiver, bindingContext)
+ return Visibilities.isVisible(normalizeReceiver, this, from)
+ }
+
+ val jetScope = bindingContext[BindingContext.RESOLUTION_SCOPE, element]
+ val implicitReceivers = jetScope?.getImplicitReceiversHierarchy()
+ if (implicitReceivers != null) {
+ for (implicitReceiver in implicitReceivers) {
+ val normalizeReceiver = ExpressionTypingUtils.normalizeReceiverValueForVisibility(implicitReceiver.getValue(), bindingContext)
+ if (Visibilities.isVisible(normalizeReceiver, this, from)) return true
+ }
+ }
+ return false
+}
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettings.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/formatter/JetCodeStyleSettings.java
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettings.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/formatter/JetCodeStyleSettings.java
index 3d19dbb5ca3..bc3d8dbb6e6 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettings.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/formatter/JetCodeStyleSettings.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.formatter;
+package org.jetbrains.kotlin.idea.core.formatter;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psiClassToDescriptor.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiClassToDescriptor.kt
similarity index 96%
rename from idea/src/org/jetbrains/kotlin/idea/util/psiClassToDescriptor.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiClassToDescriptor.kt
index 6c5df79fd32..8a3f4316129 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/psiClassToDescriptor.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiClassToDescriptor.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.util.psiClassToDescriptor
+package org.jetbrains.kotlin.idea.core
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade
import com.intellij.psi.PsiClass
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psiFilters.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiFilters.kt
similarity index 97%
rename from idea/src/org/jetbrains/kotlin/idea/util/psiFilters.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiFilters.kt
index 37ad2983cb5..caa74c63d17 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/psiFilters.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiFilters.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.util
+package org.jetbrains.kotlin.core
import com.intellij.psi.filters.position.PositionElementFilter
import com.intellij.psi.PsiElement
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixUtil.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/quickfix/QuickFixUtil.java
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixUtil.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/quickfix/QuickFixUtil.java
index de9d5bd5b35..06e4c0d4dbb 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixUtil.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/quickfix/QuickFixUtil.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.quickfix;
+package org.jetbrains.kotlin.idea.core.quickfix;
import com.google.common.collect.Sets;
import com.intellij.extapi.psi.ASTDelegatePsiElement;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameSuggester.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameSuggester.java
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameSuggester.java
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameSuggester.java
index 306d67b10c5..d5ca1da89b5 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameSuggester.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameSuggester.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.refactoring;
+package org.jetbrains.kotlin.idea.core.refactoring;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.text.StringUtil;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidator.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameValidator.kt
similarity index 98%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidator.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameValidator.kt
index 4e3dd749953..1e124fea142 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidator.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/JetNameValidator.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.refactoring
+package org.jetbrains.kotlin.idea.core.refactoring
import java.util.HashSet
import java.util.Collections
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/javaElementFactoryUtils.kt
similarity index 96%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/javaElementFactoryUtils.kt
index 8296f4c4a66..4370276ec93 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/javaElementFactoryUtils.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/javaElementFactoryUtils.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.refactoring
+package org.jetbrains.kotlin.idea.core.refactoring
import com.intellij.psi.PsiElementFactory
import com.intellij.psi.PsiJavaCodeReferenceElement
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/jetRefactoringUtil.kt
similarity index 99%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt
rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/jetRefactoringUtil.kt
index dfa3543cd1b..43a16179cbb 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/refactoring/jetRefactoringUtil.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.idea.refactoring
+package org.jetbrains.kotlin.idea.core.refactoring
import com.intellij.psi.PsiElement
import com.intellij.openapi.util.Key
diff --git a/idea/idea.iml b/idea/idea.iml
index ffcc5c05f82..45ce5efe7ef 100644
--- a/idea/idea.iml
+++ b/idea/idea.iml
@@ -37,6 +37,7 @@
+
@@ -45,5 +46,6 @@
+
\ No newline at end of file
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 5d0004ceab9..c5f620090dc 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -282,7 +282,7 @@
order="first"
implementationClass="org.jetbrains.kotlin.idea.completion.KotlinCompletionContributor"/>
+ implementationClass="org.jetbrains.kotlin.idea.completion.KDocCompletionContributor"/>
-
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideMethodsHandler.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideMethodsHandler.java
index c9876acf2e1..c18e016f439 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideMethodsHandler.java
+++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/OverrideMethodsHandler.java
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
+import org.jetbrains.kotlin.idea.core.codeInsight.OverrideImplementMethodsHandler;
import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.OverridingUtil;
import org.jetbrains.kotlin.resolve.calls.CallResolverUtil;
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/AbstractJetUpDownMover.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/AbstractJetUpDownMover.java
index 551b119790f..5741eab3491 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/AbstractJetUpDownMover.java
+++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/AbstractJetUpDownMover.java
@@ -28,7 +28,7 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
+import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.psi.JetBlockExpression;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetFunctionLiteral;
diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetExpressionMover.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetExpressionMover.java
index cd65400f6c0..a6241462e6b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetExpressionMover.java
+++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/JetExpressionMover.java
@@ -28,7 +28,7 @@ import com.intellij.psi.util.PsiTreeUtil;
import kotlin.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
+import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.psi.psiUtil.PsiUtilPackage;
diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
index 1b815dffcd5..bbfba8fb175 100644
--- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.debugger.evaluate
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.ErrorMessage
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
-import org.jetbrains.kotlin.idea.refactoring.createTempCopy
import org.jetbrains.kotlin.psi.codeFragmentUtil.suppressDiagnosticsInDebugMode
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.Status
@@ -31,6 +30,7 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.idea.intentions.InsertExplicitTypeArguments
import org.jetbrains.kotlin.idea.util.psi.patternMatching.toRange
import org.jetbrains.kotlin.idea.actions.internal.KotlinInternalMode
+import org.jetbrains.kotlin.idea.core.refactoring.createTempCopy
import org.jetbrains.kotlin.psi.psiUtil.replaced
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/JetBlock.java b/idea/src/org/jetbrains/kotlin/idea/formatter/JetBlock.java
index cecfb43dacf..31393c2d894 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/JetBlock.java
+++ b/idea/src/org/jetbrains/kotlin/idea/formatter/JetBlock.java
@@ -30,6 +30,7 @@ import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.idea.JetLanguage;
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings;
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens;
import org.jetbrains.kotlin.kdoc.parser.KDocElementTypes;
import org.jetbrains.kotlin.lexer.JetTokens;
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettingsProvider.java b/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettingsProvider.java
index 49da79ea05b..014e11ca3be 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettingsProvider.java
+++ b/idea/src/org/jetbrains/kotlin/idea/formatter/JetCodeStyleSettingsProvider.java
@@ -26,6 +26,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettingsProvider;
import com.intellij.psi.codeStyle.CustomCodeStyleSettings;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.JetLanguage;
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings;
public class JetCodeStyleSettingsProvider extends CodeStyleSettingsProvider {
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/JetLanguageCodeStyleSettingsProvider.java b/idea/src/org/jetbrains/kotlin/idea/formatter/JetLanguageCodeStyleSettingsProvider.java
index 1154e559253..60a726491ff 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/JetLanguageCodeStyleSettingsProvider.java
+++ b/idea/src/org/jetbrains/kotlin/idea/formatter/JetLanguageCodeStyleSettingsProvider.java
@@ -24,6 +24,7 @@ import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.JetLanguage;
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings;
public class JetLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSettingsProvider {
@NotNull
diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
index 5f0fdd64e3b..37514d1a521 100644
--- a/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
@@ -16,20 +16,21 @@
package org.jetbrains.kotlin.idea.formatter
-import org.jetbrains.kotlin.JetNodeTypes.*
-import org.jetbrains.kotlin.lexer.JetTokens.*
-import com.intellij.psi.tree.TokenSet
-import com.intellij.psi.formatter.FormatterUtil
-import com.intellij.psi.tree.IElementType
-import com.intellij.psi.codeStyle.CodeStyleSettings
-import org.jetbrains.kotlin.idea.JetLanguage
-import com.intellij.formatting.Spacing
-import com.intellij.lang.ASTNode
import com.intellij.formatting.ASTBlock
-import org.jetbrains.kotlin.idea.formatter.KotlinSpacingBuilder.CustomSpacingBuilder
+import com.intellij.formatting.Spacing
import com.intellij.formatting.SpacingBuilder
import com.intellij.formatting.SpacingBuilder.RuleBuilder
+import com.intellij.lang.ASTNode
+import com.intellij.psi.codeStyle.CodeStyleSettings
+import com.intellij.psi.formatter.FormatterUtil
+import com.intellij.psi.tree.IElementType
+import com.intellij.psi.tree.TokenSet
+import org.jetbrains.kotlin.JetNodeTypes.*
+import org.jetbrains.kotlin.idea.JetLanguage
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
+import org.jetbrains.kotlin.idea.formatter.KotlinSpacingBuilder.CustomSpacingBuilder
import org.jetbrains.kotlin.lexer.JetTokens
+import org.jetbrains.kotlin.lexer.JetTokens.*
val MODIFIERS_LIST_ENTRIES = TokenSet.orSet(TokenSet.create(ANNOTATION_ENTRY, ANNOTATION), MODIFIER_KEYWORDS)
diff --git a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt
index d239b41a4a5..37d19fd9c53 100644
--- a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt
@@ -23,10 +23,11 @@ import com.intellij.openapi.progress.ProgressIndicatorProvider
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.descriptors.ClassDescriptor
-import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings
+import org.jetbrains.kotlin.idea.caches.resolve.analyze
+import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import org.jetbrains.kotlin.idea.references.JetReference
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
@@ -35,13 +36,14 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getReceiverExpression
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
+import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
+import org.jetbrains.kotlin.resolve.DescriptorUtils
+import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor
import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension
-import java.util.ArrayList
import java.util.HashMap
import java.util.HashSet
-import org.jetbrains.kotlin.idea.caches.resolve.*
-import org.jetbrains.kotlin.resolve.*
public class KotlinImportOptimizer() : ImportOptimizer {
diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt
index 2a7bce736ab..8175ca2f6d9 100644
--- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionToPropertyIntention.kt
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.idea.refactoring.CallableRefactoring
import org.jetbrains.kotlin.idea.refactoring.getAffectedCallables
import com.intellij.util.containers.MultiMap
-import org.jetbrains.kotlin.idea.refactoring.checkConflictsInteractively
import org.jetbrains.kotlin.idea.search.usagesSearch.DefaultSearchHelper
import com.intellij.psi.PsiNamedElement
import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchTarget
@@ -56,9 +55,10 @@ import org.jetbrains.kotlin.idea.util.supertypes
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.psi.JetProperty
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
-import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict
import org.jetbrains.kotlin.idea.refactoring.getContainingScope
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
+import org.jetbrains.kotlin.idea.core.refactoring.checkConflictsInteractively
+import org.jetbrains.kotlin.idea.core.refactoring.reportDeclarationConflict
import org.jetbrains.kotlin.idea.util.ShortenReferences
public class ConvertFunctionToPropertyIntention : JetSelfTargetingIntention(
diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt
index a250f20adc0..de602768ef8 100644
--- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt
@@ -45,7 +45,6 @@ import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiField
import com.intellij.psi.PsiReferenceExpression
import com.intellij.psi.PsiElementFactory
-import org.jetbrains.kotlin.idea.refactoring.checkConflictsInteractively
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
import org.jetbrains.kotlin.psi.JetCallableReferenceExpression
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
@@ -54,9 +53,10 @@ import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import org.jetbrains.kotlin.psi.JetExpressionImpl
import org.jetbrains.kotlin.codegen.PropertyCodegen
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
-import org.jetbrains.kotlin.idea.refactoring.reportDeclarationConflict
import org.jetbrains.kotlin.idea.refactoring.getContainingScope
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
+import org.jetbrains.kotlin.idea.core.refactoring.checkConflictsInteractively
+import org.jetbrains.kotlin.idea.core.refactoring.reportDeclarationConflict
public class ConvertPropertyToFunctionIntention : JetSelfTargetingIntention(
"convert.property.to.function.intention", javaClass()
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java
index b79854134e1..28c2de28369 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.java
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind;
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.codeInsight.ImplementMethodsHandler;
+import org.jetbrains.kotlin.idea.core.codeInsight.ImplementMethodsHandler;
import org.jetbrains.kotlin.psi.JetReferenceExpression;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseJetVariableMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseJetVariableMacro.java
index 72c0dd8e5c5..69122e0310c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseJetVariableMacro.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseJetVariableMacro.java
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.util.IterableTypesDetector;
+import org.jetbrains.kotlin.idea.core.IterableTypesDetector;
import org.jetbrains.kotlin.idea.util.UtilPackage;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.BindingContext;
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnyVariableMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnyVariableMacro.java
index d243dcc07e2..ee30b136fb4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnyVariableMacro.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetAnyVariableMacro.java
@@ -20,7 +20,7 @@ import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.idea.JetBundle;
-import org.jetbrains.kotlin.idea.util.IterableTypesDetector;
+import org.jetbrains.kotlin.idea.core.IterableTypesDetector;
public class JetAnyVariableMacro extends BaseJetVariableMacro {
@Override
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetIterableVariableMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetIterableVariableMacro.java
index 25a1ea31892..fd4fdd469b1 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetIterableVariableMacro.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetIterableVariableMacro.java
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor;
import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.util.FuzzyType;
-import org.jetbrains.kotlin.idea.util.IterableTypesDetector;
+import org.jetbrains.kotlin.idea.core.IterableTypesDetector;
import java.util.Collections;
diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetSuggestVariableNameMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetSuggestVariableNameMacro.java
index 29b964ce9b5..59ebd5035a3 100644
--- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetSuggestVariableNameMacro.java
+++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/JetSuggestVariableNameMacro.java
@@ -20,7 +20,7 @@ import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.idea.JetBundle;
-import org.jetbrains.kotlin.idea.util.IterableTypesDetector;
+import org.jetbrains.kotlin.idea.core.IterableTypesDetector;
public class JetSuggestVariableNameMacro extends BaseJetVariableMacro {
@Override
diff --git a/idea/src/org/jetbrains/kotlin/idea/projectView/JetDeclarationTreeNode.java b/idea/src/org/jetbrains/kotlin/idea/projectView/JetDeclarationTreeNode.java
index 5c785bec4bb..17d30bd7c77 100644
--- a/idea/src/org/jetbrains/kotlin/idea/projectView/JetDeclarationTreeNode.java
+++ b/idea/src/org/jetbrains/kotlin/idea/projectView/JetDeclarationTreeNode.java
@@ -23,7 +23,7 @@ import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings;
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings;
import org.jetbrains.kotlin.psi.*;
import java.util.Collection;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java
index 147c4a21cdf..5f2abb2c794 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java
@@ -31,8 +31,8 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.refactoring.JetNameValidator;
-import org.jetbrains.kotlin.idea.refactoring.SimpleCollectingValidator;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameValidator;
+import org.jetbrains.kotlin.idea.core.refactoring.SimpleCollectingValidator;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.*;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.psi.JetCallElement;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionToSupertypeFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionToSupertypeFix.java
index c226b75f12f..2d3112eaa28 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionToSupertypeFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionToSupertypeFix.java
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.actions.JetAddFunctionToClassifierAction;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetNamedFunction;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java
index c9ac3e74b30..c0408822a98 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddModifierFix.java
@@ -25,6 +25,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.psi.JetFile;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddNameToArgumentFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddNameToArgumentFix.java
index 10c093f24fc..e6d16e72ad4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddNameToArgumentFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddNameToArgumentFix.java
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.JetIcons;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetCallElement;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetFile;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddOpenModifierToClassDeclarationFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddOpenModifierToClassDeclarationFix.java
index f195ad412f7..62fa3494005 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddOpenModifierToClassDeclarationFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddOpenModifierToClassDeclarationFix.java
@@ -28,6 +28,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.psi.*;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSemicolonAfterFunctionCallFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSemicolonAfterFunctionCallFix.java
index 7c38cacfeb3..c7b93c0ded8 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSemicolonAfterFunctionCallFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSemicolonAfterFunctionCallFix.java
@@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetCallExpression;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetFile;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddStarProjectionsFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddStarProjectionsFix.java
index b91fff879ee..377980343d3 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddStarProjectionsFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddStarProjectionsFix.java
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters1;
import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters2;
import org.jetbrains.kotlin.diagnostics.Errors;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.types.expressions.TypeReconstructionUtil;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt
index 409da276586..4198955e368 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt
@@ -34,11 +34,11 @@ import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.actions.JetAddImportAction
import org.jetbrains.kotlin.idea.caches.JetShortNamesCache
-import org.jetbrains.kotlin.idea.caches.KotlinIndicesHelper
+import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
-import org.jetbrains.kotlin.idea.completion.isVisible
+import org.jetbrains.kotlin.idea.core.isVisible
+import org.jetbrains.kotlin.idea.core.psiClassToDescriptor
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
-import org.jetbrains.kotlin.idea.util.psiClassToDescriptor.psiClassToDescriptor
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetPsiUtil
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.java
index b93f8685b7d..6a6bec9213d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeAccessorTypeFix.java
@@ -24,8 +24,9 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
-import org.jetbrains.kotlin.idea.util.ShortenReferences;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
+import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.types.JetType;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralReturnTypeFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralReturnTypeFix.java
index 8a5e82d5767..f9008afd38f 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralReturnTypeFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralReturnTypeFix.java
@@ -30,8 +30,9 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.util.ShortenReferences;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
+import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.calls.callUtil.CallUtilPackage;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java
index 1eebbeb6573..776029293d0 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java
@@ -25,9 +25,9 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
-import org.jetbrains.kotlin.idea.refactoring.JetNameValidator;
-import org.jetbrains.kotlin.idea.refactoring.SimpleCollectingValidator;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameValidator;
+import org.jetbrains.kotlin.idea.core.refactoring.SimpleCollectingValidator;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.*;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetFunctionLiteral;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionReturnTypeFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionReturnTypeFix.java
index e85ee1fef11..0af7c99842d 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionReturnTypeFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionReturnTypeFix.java
@@ -31,8 +31,9 @@ import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
-import org.jetbrains.kotlin.idea.util.ShortenReferences;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
+import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java
index 5d8f84b1611..5ce4654b58c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java
@@ -35,8 +35,9 @@ import org.jetbrains.kotlin.diagnostics.Errors;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
-import org.jetbrains.kotlin.idea.refactoring.JetNameValidator;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameValidator;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.psi.*;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
index 5da9936ae87..769496e97d7 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.name.Name;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToBackingFieldFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToBackingFieldFix.java
index 955b71dd085..2f4054cb138 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToBackingFieldFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToBackingFieldFix.java
@@ -23,6 +23,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.*;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToPropertyNameFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToPropertyNameFix.java
index c5378dccb9c..4c7e8d750a8 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToPropertyNameFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToPropertyNameFix.java
@@ -23,6 +23,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.*;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToStarProjectionFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToStarProjectionFix.java
index 07ceb8ee5fd..c6708d4958e 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToStarProjectionFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeToStarProjectionFix.java
@@ -23,6 +23,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetBinaryExpressionWithTypeRHS;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetTypeElement;
@@ -62,7 +63,8 @@ public class ChangeToStarProjectionFix extends JetIntentionAction extends JetIntentionAction {
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveSupertypeFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveSupertypeFix.java
index 12bbde92011..fc5d2fbf818 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveSupertypeFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/RemoveSupertypeFix.java
@@ -25,6 +25,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.psi.JetDelegationSpecifier;
import org.jetbrains.kotlin.psi.JetFile;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameParameterToMatchOverriddenMethodFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameParameterToMatchOverriddenMethodFix.java
index 533800fdf8a..bf39da1c6d3 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameParameterToMatchOverriddenMethodFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameParameterToMatchOverriddenMethodFix.java
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptor;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetParameter;
import org.jetbrains.kotlin.resolve.BindingContext;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceInfixCallFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceInfixCallFix.java
index 5c87f787939..25f77bafa5c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceInfixCallFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceInfixCallFix.java
@@ -23,6 +23,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetBinaryExpression;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetFile;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceOperationInBinaryExpressionFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceOperationInBinaryExpressionFix.java
index 35741e6dade..b1ab1b861ec 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceOperationInBinaryExpressionFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ReplaceOperationInBinaryExpressionFix.java
@@ -22,6 +22,7 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.idea.JetBundle;
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil;
import org.jetbrains.kotlin.psi.JetBinaryExpressionWithTypeRHS;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetFile;
@@ -59,7 +60,8 @@ public abstract class ReplaceOperationInBinaryExpressionFix createAction(Diagnostic diagnostic) {
- JetBinaryExpressionWithTypeRHS expression = QuickFixUtil.getParentElementOfType(diagnostic, JetBinaryExpressionWithTypeRHS.class);
+ JetBinaryExpressionWithTypeRHS expression = QuickFixUtil
+ .getParentElementOfType(diagnostic, JetBinaryExpressionWithTypeRHS.class);
if (expression == null) return null;
return new ReplaceOperationInBinaryExpressionFix(expression, " : ") {
@NotNull
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt
index bd42f57f513..a6e3ecc5ee2 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableBuilder.kt
@@ -43,8 +43,8 @@ import org.jetbrains.kotlin.descriptors.impl.TypeParameterDescriptorImpl
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult
import org.jetbrains.kotlin.idea.caches.resolve.getJavaClassDescriptor
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
+import org.jetbrains.kotlin.idea.core.refactoring.*
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.ClassKind
-import org.jetbrains.kotlin.idea.refactoring.*
import org.jetbrains.kotlin.idea.util.*
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
import org.jetbrains.kotlin.idea.util.application.runWriteAction
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt
index c457180069e..fc238f5169b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/CallableInfo.kt
@@ -17,22 +17,22 @@
package org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder
import com.intellij.psi.PsiElement
-import java.util.Collections
-import org.jetbrains.kotlin.psi.JetExpression
-import org.jetbrains.kotlin.types.Variance
-import org.jetbrains.kotlin.types.JetType
-import kotlin.properties.Delegates
import com.intellij.util.ArrayUtil
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester
-import org.jetbrains.kotlin.idea.refactoring.EmptyValidator
-import org.jetbrains.kotlin.resolve.BindingContext
-import org.jetbrains.kotlin.idea.util.supertypes
-import org.jetbrains.kotlin.types.ErrorUtils
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
-import org.jetbrains.kotlin.psi.JetElement
-import org.jetbrains.kotlin.psi.JetTypeReference
+import org.jetbrains.kotlin.idea.core.refactoring.EmptyValidator
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.ClassInfo
import org.jetbrains.kotlin.idea.util.makeNotNullable
+import org.jetbrains.kotlin.idea.util.supertypes
+import org.jetbrains.kotlin.psi.JetElement
+import org.jetbrains.kotlin.psi.JetExpression
+import org.jetbrains.kotlin.psi.JetTypeReference
+import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.types.ErrorUtils
+import org.jetbrains.kotlin.types.JetType
+import org.jetbrains.kotlin.types.Variance
+import java.util.Collections
+import kotlin.properties.Delegates
/**
* Represents a concrete type or a set of types yet to be inferred from an expression.
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/templateExpressions.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/templateExpressions.kt
index 0c63526a83c..05f999bf852 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/templateExpressions.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/templateExpressions.kt
@@ -16,27 +16,23 @@
package org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder
+import com.intellij.codeInsight.lookup.LookupElement
+import com.intellij.codeInsight.lookup.LookupElementBuilder
import com.intellij.codeInsight.template.Expression
import com.intellij.codeInsight.template.ExpressionContext
import com.intellij.codeInsight.template.Result
import com.intellij.codeInsight.template.TextResult
-import com.intellij.codeInsight.lookup.LookupElement
-import java.util.LinkedHashSet
import com.intellij.psi.PsiDocumentManager
-import org.jetbrains.kotlin.psi.JetFile
import com.intellij.psi.util.PsiTreeUtil
-import org.jetbrains.kotlin.psi.JetFunction
-import org.jetbrains.kotlin.psi.JetParameter
-import java.util.HashSet
-import org.jetbrains.kotlin.idea.refactoring.CollectingValidator
-import com.intellij.codeInsight.lookup.LookupElementBuilder
-import java.util.Collections
-import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
-import org.jetbrains.kotlin.psi.JetClass
-import org.jetbrains.kotlin.psi.JetNamedDeclaration
+import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
+import org.jetbrains.kotlin.idea.core.refactoring.CollectingValidator
+import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
+import java.util.Collections
+import java.util.HashSet
+import java.util.LinkedHashSet
/**
* Special Expression for parameter names based on its type.
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt
index 6b64b456205..01e320741f8 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromCallActionFactory.kt
@@ -40,6 +40,8 @@ import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyzeAndGetResult
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.getExtractionContainers
import org.jetbrains.kotlin.idea.refactoring.*
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromUsageFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromUsageFix.kt
index 8e49b8d0908..f6abbe1e2ff 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromUsageFix.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateCallableFromUsageFix.kt
@@ -25,8 +25,8 @@ import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.CreateFromUsageFixBase
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
-import org.jetbrains.kotlin.idea.refactoring.chooseContainerElementIfNecessary
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.chooseContainerElementIfNecessary
import org.jetbrains.kotlin.psi.*
import java.util.Collections
import java.util.HashSet
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateComponentFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateComponentFunctionActionFactory.kt
index edfada615bc..f814b18a44c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateComponentFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateComponentFunctionActionFactory.kt
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
import org.jetbrains.kotlin.resolve.dataClassUtils.*
import org.jetbrains.kotlin.diagnostics.Errors
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetMultiDeclaration
import org.jetbrains.kotlin.psi.JetForExpression
import org.jetbrains.kotlin.types.Variance
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegationCallActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegationCallActionFactory.kt
index 6f85cd81f7f..805d7ac970f 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegationCallActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegationCallActionFactory.kt
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.ParameterInfo
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.SecondaryConstructorInfo
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.TypeInfo
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.psi.JetConstructorDelegationCall
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegatorToSuperCallActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegatorToSuperCallActionFactory.kt
index 87781ee98ec..c3af941c505 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegatorToSuperCallActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateConstructorFromDelegatorToSuperCallActionFactory.kt
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.ParameterInfo
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.SecondaryConstructorInfo
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.TypeInfo
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.psi.JetConstructorDelegationCall
import org.jetbrains.kotlin.psi.JetDelegatorToSuperCall
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateGetFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateGetFunctionActionFactory.kt
index e04b6f0f431..4969a3f5725 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateGetFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateGetFunctionActionFactory.kt
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createCallable
import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetArrayAccessExpression
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateHasNextFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateHasNextFunctionActionFactory.kt
index 9b377bee46a..4821912fa3b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateHasNextFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateHasNextFunctionActionFactory.kt
@@ -21,7 +21,7 @@ import com.intellij.codeInsight.intention.IntentionAction
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.types.Variance
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetForExpression
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt
index 7b414e98949..a06db0f49d4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createCallable
import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
import org.jetbrains.kotlin.psi.JetFile
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetForExpression
import org.jetbrains.kotlin.psi.JetExpression
import org.jetbrains.kotlin.types.Variance
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateNextFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateNextFunctionActionFactory.kt
index 81b2b37754a..7f6cdeab58b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateNextFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateNextFunctionActionFactory.kt
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.psi.JetExpression
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.types.Variance
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetForExpression
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
import org.jetbrains.kotlin.idea.quickfix.JetIntentionActionsFactory
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateSetFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateSetFunctionActionFactory.kt
index 0254cfe98ae..a0ff7ea3c8f 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateSetFunctionActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateSetFunctionActionFactory.kt
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createCallable
import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetArrayAccessExpression
import org.jetbrains.kotlin.types.Variance
import java.util.ArrayList
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt
index 39c33f03dab..b7a5e63e05b 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromTypeReferenceActionFactory.kt
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass
import org.jetbrains.kotlin.idea.quickfix.JetIntentionActionsFactory
import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import java.util.Collections
import org.jetbrains.kotlin.psi.JetUserType
import org.jetbrains.kotlin.psi.JetFile
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt
index 3e2e7017310..2de7a6dd441 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/CreateClassFromUsageFix.kt
@@ -28,17 +28,17 @@ import org.jetbrains.kotlin.idea.JetFileType
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
import java.util.Collections
import com.intellij.openapi.command.CommandProcessor
-import org.jetbrains.kotlin.idea.refactoring.getOrCreateKotlinFile
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.createClass.ClassKind.*
import com.intellij.psi.PsiPackage
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.ide.util.DirectoryChooserUtil
import java.util.HashMap
import com.intellij.openapi.application.ApplicationManager
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
import com.intellij.psi.PsiMember
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiFile
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.getOrCreateKotlinFile
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
enum class ClassKind(val keyword: String, val description: String) {
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/createClassUtils.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/createClassUtils.kt
index 7545d155fd2..569a625c1eb 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/createClassUtils.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createClass/createClassUtils.kt
@@ -44,7 +44,7 @@ import com.intellij.codeInsight.daemon.quickFix.CreateClassOrPackageFix
import org.jetbrains.kotlin.idea.quickfix.DelegatingIntentionAction
import org.jetbrains.kotlin.idea.JetBundle
import com.intellij.psi.PsiPackage
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
import com.intellij.psi.PsiClass
import org.jetbrains.kotlin.descriptors.ClassKind as ClassDescriptorKind
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt
index 874176f5fb8..0d7f8db7714 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateLocalVariableActionFactory.kt
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.intentions.ConvertToBlockBodyAction
import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.CreateFromUsageFixBase
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
import org.jetbrains.kotlin.psi.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterActionFactory.kt
index 471c74f0003..f42e077cd38 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterActionFactory.kt
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory
import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElement
import org.jetbrains.kotlin.psi.JetClass
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterByNamedArgumentActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterByNamedArgumentActionFactory.kt
index b0a7c0a82f4..f1fc870f882 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterByNamedArgumentActionFactory.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createVariable/CreateParameterByNamedArgumentActionFactory.kt
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
import com.intellij.codeInsight.intention.IntentionAction
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.guessTypes
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.psi.JetCallElement
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
-import org.jetbrains.kotlin.idea.refactoring.canRefactor
+import org.jetbrains.kotlin.idea.core.refactoring.canRefactor
import org.jetbrains.kotlin.psi.JetFunction
import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt
index b3a76193b45..a534f5e8ba1 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/CallableRefactoring.kt
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATIO
import java.util.Collections
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DELEGATION
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.FAKE_OVERRIDE
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import com.intellij.refactoring.RefactoringBundle
import com.intellij.ide.IdeBundle
import com.intellij.openapi.ui.Messages
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidatorImpl.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidatorImpl.java
index c725e36cd02..2dc425d12fd 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidatorImpl.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/JetNameValidatorImpl.java
@@ -20,6 +20,7 @@ import com.intellij.openapi.util.Ref;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameValidator;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.JetElement;
import org.jetbrains.kotlin.psi.JetExpression;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignature.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignature.kt
index 2fa024269e5..75dd8c38fd9 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignature.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignature.kt
@@ -31,7 +31,7 @@ import java.util.*
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.*
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
-import org.jetbrains.kotlin.idea.quickfix.QuickFixUtil
+import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
import com.intellij.CommonBundle
import com.intellij.refactoring.RefactoringBundle
import org.jetbrains.kotlin.resolve.OverrideResolver
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt
index 33eda202d2d..ae52a407236 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureData.kt
@@ -25,18 +25,20 @@ import org.jetbrains.kotlin.asJava.KotlinLightMethod
import org.jetbrains.kotlin.asJava.LightClassUtil
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor
-import org.jetbrains.kotlin.psi.*
-import org.jetbrains.kotlin.idea.caches.resolve.*
+import org.jetbrains.kotlin.idea.caches.resolve.analyze
+import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
+import org.jetbrains.kotlin.idea.core.refactoring.CollectingValidator
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetFunctionDefinitionUsage
-
-import java.util.*
-import kotlin.properties.Delegates
-import org.jetbrains.kotlin.resolve.BindingContext
-import org.jetbrains.kotlin.idea.refactoring.CollectingValidator
import org.jetbrains.kotlin.name.Name
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester
+import org.jetbrains.kotlin.psi.JetClass
+import org.jetbrains.kotlin.psi.JetFunction
+import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
+import java.util.Collections
+import java.util.HashSet
+import kotlin.properties.Delegates
public class JetChangeSignatureData(
override val baseDescriptor: FunctionDescriptor,
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java
index 203799d3b13..6613cfe6141 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java
@@ -23,7 +23,10 @@ import com.intellij.psi.*;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.search.searches.ReferencesSearch;
import com.intellij.psi.util.PsiTreeUtil;
-import com.intellij.refactoring.changeSignature.*;
+import com.intellij.refactoring.changeSignature.ChangeInfo;
+import com.intellij.refactoring.changeSignature.ChangeSignatureUsageProcessor;
+import com.intellij.refactoring.changeSignature.JavaChangeInfo;
+import com.intellij.refactoring.changeSignature.OverriderUsageInfo;
import com.intellij.refactoring.rename.ResolveSnapshotProvider;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.refactoring.util.MoveRenameUsageInfo;
@@ -43,7 +46,7 @@ import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver;
-import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
+import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.*;
import org.jetbrains.kotlin.idea.references.JetSimpleNameReference;
import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchPackage;
@@ -62,7 +65,10 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver;
import org.jetbrains.kotlin.types.JetType;
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsageProcessor {
@Override
@@ -341,9 +347,9 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro
if (oldDescriptor instanceof ConstructorDescriptor && containingDeclaration instanceof ClassDescriptorWithResolutionScopes)
parametersScope = ((ClassDescriptorWithResolutionScopes) containingDeclaration).getScopeForInitializerResolution();
else if (function instanceof JetFunction)
- parametersScope = RefactoringPackage.getBodyScope((JetFunction) function, bindingContext);
+ parametersScope = org.jetbrains.kotlin.idea.refactoring.RefactoringPackage.getBodyScope((JetFunction) function, bindingContext);
- JetScope functionScope = RefactoringPackage.getContainingScope(oldDescriptor, bindingContext);
+ JetScope functionScope = org.jetbrains.kotlin.idea.refactoring.RefactoringPackage.getContainingScope(oldDescriptor, bindingContext);
JetMethodDescriptor.Kind kind = ChangeSignaturePackage.getKind(changeInfo);
if (!kind.getIsConstructor() && functionScope != null && !info.getNewName().isEmpty()) {
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ExtractKotlinFunctionHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ExtractKotlinFunctionHandler.kt
index 71a0047a736..c78f17b295e 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ExtractKotlinFunctionHandler.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ExtractKotlinFunctionHandler.kt
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiFile
import com.intellij.openapi.editor.Editor
import com.intellij.psi.PsiElement
import com.intellij.openapi.project.Project
+import org.jetbrains.kotlin.idea.core.refactoring.getExtractionContainers
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ui.KotlinExtractFunctionDialog
import org.jetbrains.kotlin.psi.JetFile
@@ -29,7 +30,6 @@ import org.jetbrains.kotlin.psi.JetBlockExpression
import kotlin.test.fail
import org.jetbrains.kotlin.psi.JetFunctionLiteral
import org.jetbrains.kotlin.idea.util.psi.patternMatching.toRange
-import org.jetbrains.kotlin.idea.refactoring.getExtractionContainers
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.*
import org.jetbrains.kotlin.idea.refactoring.introduce.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java
index 63d7dd608e1..c00d6133a64 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinExtractFunctionDialog.java
@@ -29,9 +29,9 @@ import kotlin.Function1;
import kotlin.Unit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.JetFileType;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
-import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.*;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinParameterTablePanel.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinParameterTablePanel.java
index ce81665ac04..132c4a8834a 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinParameterTablePanel.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractFunction/ui/KotlinParameterTablePanel.java
@@ -30,7 +30,7 @@ import kotlin.KotlinPackage;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.Parameter;
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
import org.jetbrains.kotlin.types.JetType;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt
index f6250bd50d6..e7cf7178198 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt
@@ -35,11 +35,11 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
+import org.jetbrains.kotlin.idea.core.refactoring.compareDescriptors
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
import org.jetbrains.kotlin.idea.util.psi.patternMatching.JetPsiRange
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
-import org.jetbrains.kotlin.idea.refactoring.compareDescriptors
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.psi.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionEngine.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionEngine.kt
index 5312acf38cf..3abb42b7c2e 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionEngine.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionEngine.kt
@@ -30,6 +30,7 @@ import com.intellij.openapi.ui.popup.*
import com.intellij.openapi.ui.*
import javax.swing.event.*
import com.intellij.openapi.project.*
+import org.jetbrains.kotlin.idea.core.refactoring.checkConflictsInteractively
public open class ExtractionEngineHelper {
open fun adjustExtractionData(data: ExtractionData): ExtractionData = data
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt
index 92487ee93ba..4238db37b8c 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt
@@ -41,8 +41,13 @@ import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester
+import org.jetbrains.kotlin.idea.core.refactoring.comparePossiblyOverridingDescriptors
+import org.jetbrains.kotlin.idea.core.refactoring.createTempCopy
+import org.jetbrains.kotlin.idea.core.refactoring.getContextForContainingDeclarationBody
import org.jetbrains.kotlin.idea.imports.importableFqNameSafe
-import org.jetbrains.kotlin.idea.refactoring.*
+import org.jetbrains.kotlin.idea.refactoring.JetNameValidatorImpl
+import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.ErrorMessage
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.Status
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ExpressionValue
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt
index 6540b689a64..1b5767d6898 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt
@@ -19,15 +19,15 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester
+import org.jetbrains.kotlin.idea.core.refactoring.isMultiLine
import org.jetbrains.kotlin.idea.intentions.ConvertToExpressionBodyAction
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester
import org.jetbrains.kotlin.idea.refactoring.JetNameValidatorImpl
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ExpressionValue
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Initializer
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Jump
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ParameterUpdate
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValueBoxer.AsTuple
-import org.jetbrains.kotlin.idea.refactoring.isMultiLine
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.ShortenReferences
import org.jetbrains.kotlin.idea.util.psi.patternMatching.JetPsiRange
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinIntroducePropertyHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinIntroducePropertyHandler.kt
index 5969e75fc96..88666abef79 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinIntroducePropertyHandler.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinIntroducePropertyHandler.kt
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.*
import org.jetbrains.kotlin.idea.util.psi.patternMatching.*
import kotlin.test.*
import com.intellij.openapi.application.*
+import org.jetbrains.kotlin.idea.core.refactoring.getExtractionContainers
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceProperty.*
import java.util.*
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceUtil.kt
index 15b1490dfab..b48e7882301 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceUtil.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceUtil.kt
@@ -23,6 +23,7 @@ import com.intellij.psi.*
import com.intellij.psi.util.*
import org.jetbrains.kotlin.idea.codeInsight.*
import com.intellij.openapi.project.*
+import org.jetbrains.kotlin.idea.core.refactoring.chooseContainerElementIfNecessary
fun showErrorHint(project: Project, editor: Editor, message: String, title: String) {
CodeInsightUtils.showErrorHint(project, editor, message, title, null)
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java
index 17793078d25..b934998a828 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java
@@ -41,7 +41,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils;
import org.jetbrains.kotlin.idea.intentions.ConvertToBlockBodyAction;
import org.jetbrains.kotlin.idea.intentions.RemoveCurlyBracesFromTemplateIntention;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
import org.jetbrains.kotlin.idea.refactoring.JetNameValidatorImpl;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil;
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt
index b1389885a63..5537e0cad08 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt
@@ -24,7 +24,7 @@ import com.intellij.refactoring.move.MoveCallback
import com.intellij.psi.PsiReference
import com.intellij.openapi.editor.Editor
import org.jetbrains.kotlin.psi.JetFile
-import org.jetbrains.kotlin.idea.refactoring.isInJavaSourceRoot
+import org.jetbrains.kotlin.idea.core.refactoring.isInJavaSourceRoot
import org.jetbrains.kotlin.psi.JetObjectDeclaration
import org.jetbrains.kotlin.psi.JetClass
import com.intellij.psi.PsiPackage
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt
index 02dc81f3263..3b1843d1698 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsProcessor.kt
@@ -37,7 +37,7 @@ import com.intellij.psi.PsiDirectory
import org.jetbrains.kotlin.psi.psiUtil.getPackage
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.idea.refactoring.move.PackageNameInfo
-import org.jetbrains.kotlin.idea.refactoring.createKotlinFile
+import org.jetbrains.kotlin.idea.core.refactoring.createKotlinFile
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet
import org.jetbrains.kotlin.idea.refactoring.move.getFileNameAfterMove
import org.jetbrains.kotlin.psi.JetNamedDeclaration
@@ -53,7 +53,7 @@ import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassHandler
import com.intellij.util.containers.MultiMap
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
import org.jetbrains.kotlin.psi.psiUtil.isPrivate
-import org.jetbrains.kotlin.idea.refactoring.getUsageContext
+import org.jetbrains.kotlin.idea.core.refactoring.getUsageContext
import org.jetbrains.kotlin.psi.psiUtil.isInsideOf
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver
import org.jetbrains.kotlin.resolve.BindingContext
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java
index 933c4a7cc69..0dba4dfce06 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/ui/MoveKotlinTopLevelDeclarationsDialog.java
@@ -50,11 +50,11 @@ import kotlin.Function0;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
-import org.jetbrains.kotlin.idea.refactoring.RefactoringPackage;
import org.jetbrains.kotlin.idea.refactoring.move.moveTopLevelDeclarations.*;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.psi.JetNamedDeclaration;
+import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage;
import javax.swing.*;
import java.awt.event.ActionEvent;
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/ImportInsertHelperImpl.kt b/idea/src/org/jetbrains/kotlin/idea/util/ImportInsertHelperImpl.kt
index 21ba0c2bfbd..091a76ba3a4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/ImportInsertHelperImpl.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/util/ImportInsertHelperImpl.kt
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt
index efe21a1838e..a0d2b5153b2 100644
--- a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/JetPsiUnifier.kt
@@ -86,7 +86,7 @@ import org.jetbrains.kotlin.psi.JetReturnExpression
import org.jetbrains.kotlin.psi.JetProperty
import org.jetbrains.kotlin.psi.JetDelegatorToSuperClass
import org.jetbrains.kotlin.psi.JetDelegationSpecifier
-import org.jetbrains.kotlin.idea.refactoring.getContextForContainingDeclarationBody
+import org.jetbrains.kotlin.idea.core.refactoring.getContextForContainingDeclarationBody
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.psi.JetOperationReferenceExpression
diff --git a/idea/tests/org/jetbrains/kotlin/AbstractImportsTest.kt b/idea/tests/org/jetbrains/kotlin/AbstractImportsTest.kt
index 130b540c0aa..1decc52f9e4 100644
--- a/idea/tests/org/jetbrains/kotlin/AbstractImportsTest.kt
+++ b/idea/tests/org/jetbrains/kotlin/AbstractImportsTest.kt
@@ -16,17 +16,16 @@
package org.jetbrains.kotlin
-import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase
-import org.jetbrains.kotlin.test.JetTestUtils
-import org.jetbrains.kotlin.idea.JetWithJdkAndRuntimeLightProjectDescriptor
import com.intellij.codeInsight.CodeInsightSettings
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings
-import java.io.File
+import com.intellij.openapi.application.ApplicationManager
+import com.intellij.openapi.command.CommandProcessor
+import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase
+import org.jetbrains.kotlin.idea.JetWithJdkAndRuntimeLightProjectDescriptor
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.test.InTextDirectivesUtils
-import com.intellij.openapi.command.CommandProcessor
-import com.intellij.openapi.application.ApplicationManager
-import org.jetbrains.kotlin.idea.util.ShortenReferences
+import org.jetbrains.kotlin.test.JetTestUtils
+import java.io.File
public abstract class AbstractImportsTest : JetLightCodeInsightFixtureTestCase() {
override fun getTestDataPath() = JetTestUtils.getHomeDirectory()
diff --git a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTest.kt b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTest.kt
index 353617b5370..b88ba82bc2d 100644
--- a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTest.kt
+++ b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTest.kt
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.completion.handlers
import com.intellij.codeInsight.completion.CompletionType
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
import org.jetbrains.kotlin.idea.PluginTestCaseBase
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import java.io.File
deprecated("All tests from here to be moved to the generated test")
diff --git a/idea/tests/org/jetbrains/kotlin/formatter/JetFormatSettingsUtil.java b/idea/tests/org/jetbrains/kotlin/formatter/JetFormatSettingsUtil.java
index 8c0e71e46d6..d30a94422c1 100644
--- a/idea/tests/org/jetbrains/kotlin/formatter/JetFormatSettingsUtil.java
+++ b/idea/tests/org/jetbrains/kotlin/formatter/JetFormatSettingsUtil.java
@@ -20,7 +20,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.testFramework.LightPlatformTestCase;
import org.jetbrains.kotlin.idea.JetLanguage;
-import org.jetbrains.kotlin.idea.formatter.JetCodeStyleSettings;
+import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings;
import org.jetbrains.kotlin.test.SettingsConfigurator;
public class JetFormatSettingsUtil {
diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.java
index bd2adb39319..91b52e85083 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractOverrideImplementTest.java
@@ -36,6 +36,9 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase;
import org.jetbrains.kotlin.idea.JetLightProjectDescriptor;
+import org.jetbrains.kotlin.idea.core.codeInsight.DescriptorClassMember;
+import org.jetbrains.kotlin.idea.core.codeInsight.ImplementMethodsHandler;
+import org.jetbrains.kotlin.idea.core.codeInsight.OverrideImplementMethodsHandler;
import org.jetbrains.kotlin.psi.JetClassOrObject;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.resolve.OverrideResolver;
diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/nameSuggester/JetNameSuggesterTest.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/nameSuggester/JetNameSuggesterTest.java
index 95c030e4e3d..71492d94bbc 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/nameSuggester/JetNameSuggesterTest.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/nameSuggester/JetNameSuggesterTest.java
@@ -20,8 +20,8 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.idea.PluginTestCaseBase;
-import org.jetbrains.kotlin.idea.refactoring.EmptyValidator;
-import org.jetbrains.kotlin.idea.refactoring.JetNameSuggester;
+import org.jetbrains.kotlin.idea.core.refactoring.EmptyValidator;
+import org.jetbrains.kotlin.idea.core.refactoring.JetNameSuggester;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetFile;