From 35720ff46dd8cf7620c2a31d80b18818bac78333 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 28 Aug 2014 17:06:43 +0400 Subject: [PATCH] Supported methods with default arguments in partial package compilation. --- .../src/org/jetbrains/jet/codegen/PackageCodegen.java | 5 +++++ .../jet/jps/build/IncrementalJpsTestGenerated.java | 5 +++++ .../testData/incremental/pureKotlin/defaultArguments/a.kt | 3 +++ .../incremental/pureKotlin/defaultArguments/a.kt.new | 3 +++ .../testData/incremental/pureKotlin/defaultArguments/b.kt | 3 +++ .../incremental/pureKotlin/defaultArguments/build.log | 7 +++++++ 6 files changed, 26 insertions(+) create mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt.new create mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultArguments/b.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultArguments/build.log diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java index 7d5395e57f5..c49b88162cc 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java @@ -187,6 +187,11 @@ public class PackageCodegen { } } ); + + memberCodegen.functionCodegen.generateDefaultIfNeeded( + context.intoFunction(function), signature, function, OwnerKind.PACKAGE, + DefaultParameterValueLoader.DEFAULT, null); + } else if (member instanceof DeserializedPropertyDescriptor) { memberCodegen.propertyCodegen.generateInPackageFacade((DeserializedPropertyDescriptor) member); diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java index d1f2f8d6972..3a7765cdeaa 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java @@ -110,6 +110,11 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest("jps-plugin/testData/incremental/pureKotlin/constantsUnchanged/"); } + @TestMetadata("defaultArguments") + public void testDefaultArguments() throws Exception { + doTest("jps-plugin/testData/incremental/pureKotlin/defaultArguments/"); + } + @TestMetadata("dependencyClassReferenced") public void testDependencyClassReferenced() throws Exception { doTest("jps-plugin/testData/incremental/pureKotlin/dependencyClassReferenced/"); diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt new file mode 100644 index 00000000000..1609642a906 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt @@ -0,0 +1,3 @@ +fun a(p1: String, p2: String? = null) { + +} diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt.new b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt.new new file mode 100644 index 00000000000..1609642a906 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/a.kt.new @@ -0,0 +1,3 @@ +fun a(p1: String, p2: String? = null) { + +} diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultArguments/b.kt b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/b.kt new file mode 100644 index 00000000000..21bf9e204ba --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/b.kt @@ -0,0 +1,3 @@ +fun b(p1: String, p2: String? = null) { + +} diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultArguments/build.log b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/build.log new file mode 100644 index 00000000000..9fede6968ce --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/defaultArguments/build.log @@ -0,0 +1,7 @@ +Cleaning output files: +out/production/module/_DefaultPackage-a-*.class +out/production/module/_DefaultPackage.class +End of files +Compiling files: +src/a.kt +End of files