From 06cb6eb030bb890c6e8f79375f4e558be398a6e4 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 19 Feb 2014 22:17:32 +0400 Subject: [PATCH] Supported properties in partial compilation of package. Original commit: 733de56178a4bbf817f0e34456040c76d3174592 --- .../build/AbstractKotlinJpsBuildTestCase.java | 12 +++++++++--- .../jet/jps/build/IncrementalJpsTest.kt | 1 + .../topLevelMembersInTwoPackages/a.kt | 3 +++ .../topLevelMembersInTwoPackages/a.kt.new | 3 +++ .../topLevelMembersInTwoPackages/b.kt | 17 ++++++++++++++++- 5 files changed, 32 insertions(+), 4 deletions(-) diff --git a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractKotlinJpsBuildTestCase.java b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractKotlinJpsBuildTestCase.java index eb7ddb5a7f6..33709bc39dc 100644 --- a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractKotlinJpsBuildTestCase.java +++ b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractKotlinJpsBuildTestCase.java @@ -17,10 +17,12 @@ package org.jetbrains.jet.jps.build; import com.intellij.openapi.util.io.FileUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.utils.PathUtil; import org.jetbrains.jps.builders.JpsBuildTestCase; import org.jetbrains.jps.model.JpsDummyElement; import org.jetbrains.jps.model.JpsModuleRootModificationUtil; +import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.java.JpsAnnotationRootType; import org.jetbrains.jps.model.java.JpsJavaDependencyScope; import org.jetbrains.jps.model.java.JpsJavaLibraryType; @@ -76,11 +78,15 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase { } protected JpsLibrary addKotlinRuntimeDependency() { - return addKotlinRuntimeDependency(JpsJavaDependencyScope.COMPILE, myProject.getModules(), false); + return addKotlinRuntimeDependency(myProject); } - protected JpsLibrary addKotlinRuntimeDependency(JpsJavaDependencyScope type, Collection modules, boolean exported) { - JpsLibrary library = myProject.addLibrary("kotlin-runtime", JpsJavaLibraryType.INSTANCE); + static JpsLibrary addKotlinRuntimeDependency(@NotNull JpsProject project) { + return addKotlinRuntimeDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false); + } + + protected static JpsLibrary addKotlinRuntimeDependency(JpsJavaDependencyScope type, Collection modules, boolean exported) { + JpsLibrary library = modules.iterator().next().getProject().addLibrary("kotlin-runtime", JpsJavaLibraryType.INSTANCE); File runtime = PathUtil.getKotlinPathsForDistDirectory().getRuntimePath(); library.addRoot(runtime, JpsOrderRootType.COMPILED); for (JpsModule module : modules) { diff --git a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt index 1e3f934f02c..f0b321e7b19 100644 --- a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt @@ -65,6 +65,7 @@ public class IncrementalJpsTest : JpsBuildTestCase() { private fun doTest() { addModule("module", array(getAbsolutePath("src")), null, null, addJdk("my jdk")) + AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject!!) buildGetLog() diff --git a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt index 0aae67fb7fd..82c07232354 100644 --- a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt +++ b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt @@ -7,3 +7,6 @@ fun foo() { fun baz() { } + +val prop1 = "" +val prop2 = prop1 diff --git a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt.new b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt.new index 5e5e3542b2c..d03b1414762 100644 --- a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt.new +++ b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/a.kt.new @@ -7,3 +7,6 @@ fun foo() { fun baz() { } + +val prop1 = "" +val prop2 = prop1 diff --git a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/b.kt b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/b.kt index 0790fb178f1..1580ba620dc 100644 --- a/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/b.kt +++ b/jps/jps-plugin/testData/incremental/topLevelMembersInTwoPackages/b.kt @@ -1,9 +1,24 @@ package test fun bar(i: Int): String { + simpleVar = ":) " + simpleVar + return "$i ${quux()} $i" } fun quux(): String { return "quux" -} \ No newline at end of file +} + +var simpleVar = prop1 + +var fieldlessVar: String + get() = "" + set(value) {} + +deprecated("") +val fieldlessValWithAnnotation: String + get() = "" + +var delegated: String by kotlin.properties.Delegates.notNull() +