diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 99afd33c530..9a5a03a1e7f 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -795,6 +795,8 @@
+
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/CommonModuleResolveScopeEnlarger.kt b/idea/src/org/jetbrains/kotlin/idea/CommonModuleResolveScopeEnlarger.kt
new file mode 100644
index 00000000000..050c4e19b1f
--- /dev/null
+++ b/idea/src/org/jetbrains/kotlin/idea/CommonModuleResolveScopeEnlarger.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
+ * that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.idea
+
+import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProviderImpl
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.roots.JdkOrderEntry
+import com.intellij.openapi.roots.ModuleRootManager
+import com.intellij.openapi.roots.ProjectFileIndex
+import com.intellij.openapi.roots.impl.LibraryScopeCache
+import com.intellij.openapi.vfs.VirtualFile
+import com.intellij.psi.ResolveScopeEnlarger
+import com.intellij.psi.search.GlobalSearchScope
+import com.intellij.psi.search.SearchScope
+import org.jetbrains.kotlin.config.TargetPlatformKind
+import org.jetbrains.kotlin.idea.facet.findImplementingModules
+import org.jetbrains.kotlin.idea.project.targetPlatform
+
+class CommonModuleResolveScopeEnlarger : ResolveScopeEnlarger() {
+ override fun getAdditionalResolveScope(file: VirtualFile, project: Project): SearchScope? {
+ val module = ProjectFileIndex.getInstance(project).getModuleForFile(file)
+ if (module?.targetPlatform != TargetPlatformKind.Common) return null
+
+ val implementingModule = module.findImplementingModules(IdeModifiableModelsProviderImpl(project)).find {
+ it.targetPlatform is TargetPlatformKind.Jvm
+ } ?: return null
+
+ var result = GlobalSearchScope.EMPTY_SCOPE
+ for (entry in ModuleRootManager.getInstance(implementingModule).orderEntries) {
+ if (entry is JdkOrderEntry) {
+ val scopeForSdk = LibraryScopeCache.getInstance(project).getScopeForSdk(entry)
+ result = result.uniteWith(scopeForSdk)
+ }
+ }
+ return result
+ }
+}
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt
index 3591af741c1..85536f07973 100644
--- a/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/facet/facetUtils.kt
@@ -123,7 +123,7 @@ val mavenLibraryIdToPlatform: Map> by lazy {
.toMap()
}
-private fun Module.findImplementingModules(modelsProvider: IdeModifiableModelsProvider): List {
+internal fun Module.findImplementingModules(modelsProvider: IdeModifiableModelsProvider): List {
return modelsProvider.modules.filter { module ->
module.findImplementedModuleName(modelsProvider) == name
}