Return correct ProjectFacade for script and its dependencies

^KT-22588 Fixed
This commit is contained in:
Natalia Selezneva
2018-03-26 15:59:53 +03:00
parent d75d0d8711
commit 8d9f539c79
7 changed files with 57 additions and 1 deletions
@@ -404,7 +404,12 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
private fun getResolutionFacadeByModuleInfo(moduleInfo: IdeaModuleInfo, platform: TargetPlatform): ResolutionFacade {
val settings = PlatformAnalysisSettings(platform, moduleInfo.sdk, moduleInfo.supportsAdditionalBuiltInsMembers())
val projectFacade = globalFacade(settings)
val projectFacade = when (moduleInfo) {
is ScriptDependenciesInfo.ForProject,
is ScriptDependenciesSourceInfo.ForProject -> facadesForScriptDependencies[null]
is ScriptDependenciesInfo.ForFile -> facadesForScriptDependencies[moduleInfo.scriptModuleInfo]
else -> globalFacade(settings)
}
return ModuleResolutionFacadeImpl(projectFacade, moduleInfo)
}
@@ -0,0 +1,13 @@
package test;
public class Utils {
public int getField() {
return field;
}
public void setField(int field) {
this.field = field;
}
private int field = 1;
}
@@ -0,0 +1,4 @@
test.Utils().field
test.Utils().<caret>field = 2
// DEPENDENCIES: classpath:lib-classes
@@ -0,0 +1,4 @@
test.Utils().field
test.Utils().<caret>field = 2
// DEPENDENCIES: classpath:runtime-classes
@@ -0,0 +1,13 @@
package test;
public class Utils {
public int getField() {
return field;
}
public void setField(int field) {
this.field = field;
}
private int field = 1;
}
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.idea.script
import com.intellij.codeInsight.highlighting.HighlightUsagesHandler
import com.intellij.openapi.extensions.Extensions
import com.intellij.openapi.module.JavaModuleType
import com.intellij.openapi.module.Module
@@ -51,6 +52,10 @@ import kotlin.script.dependencies.Environment
abstract class AbstractScriptConfigurationHighlightingTest : AbstractScriptConfigurationTest() {
fun doTest(path: String) {
configureScriptFile(path)
// Highlight references at caret
HighlightUsagesHandler.invoke(project, editor, myFile)
checkHighlighting(
editor,
InTextDirectivesUtils.isDirectiveDefined(file.text, "// CHECK_WARNINGS"),
@@ -97,6 +97,18 @@ public class ScriptConfigurationHighlightingTestGenerated extends AbstractScript
doTest(fileName);
}
@TestMetadata("propertyAccessor")
public void testPropertyAccessor() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/script/definition/highlighting/propertyAccessor/");
doTest(fileName);
}
@TestMetadata("propertyAccessorFromModule")
public void testPropertyAccessorFromModule() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/script/definition/highlighting/propertyAccessorFromModule/");
doTest(fileName);
}
@TestMetadata("simple")
public void testSimple() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/script/definition/highlighting/simple/");