From 5eba550aef24833f94018ea000eceaeef0be8e2d Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 15 Dec 2014 19:46:57 +0300 Subject: [PATCH] Added test for KT-6454 Obsolete class-files for lambdas aren't removed from output when 'inline' annotation is added to function. The bug is reproducible only for non-incremental compilation mode, which will be deprecated soon. #KT-6454 can't reproduce Original commit: 79245683552c5ef899be2a62a65ddc6d44616650 --- .../jps/build/IncrementalJpsTestGenerated.java | 6 ++++++ .../pureKotlin/functionBecameInline/build.log | 15 +++++++++++++++ .../pureKotlin/functionBecameInline/fun.kt | 5 +++++ .../pureKotlin/functionBecameInline/fun.kt.new | 5 +++++ .../pureKotlin/functionBecameInline/usage.kt | 5 +++++ 5 files changed, 36 insertions(+) create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/build.log create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt.new create mode 100644 jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/usage.kt diff --git a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java index c3ad4afd5b4..73621ad3274 100644 --- a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java +++ b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java @@ -171,6 +171,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("functionBecameInline") + public void testFunctionBecameInline() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/functionBecameInline/"); + doTest(fileName); + } + @TestMetadata("independentClasses") public void testIndependentClasses() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/independentClasses/"); diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/build.log b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/build.log new file mode 100644 index 00000000000..2692bd03c99 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/build.log @@ -0,0 +1,15 @@ +Cleaning output files: +out/production/module/Y.class +End of files +Compiling files: +src/fun.kt +End of files +Cleaning output files: +out/production/module/X$main$1.class +out/production/module/X.class +out/production/module/Y.class +End of files +Compiling files: +src/fun.kt +src/usage.kt +End of files diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt new file mode 100644 index 00000000000..98d04fc4df3 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt @@ -0,0 +1,5 @@ +class Y { + fun foo(f: () -> Unit) { + f() + } +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt.new b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt.new new file mode 100644 index 00000000000..299cd80a410 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/fun.kt.new @@ -0,0 +1,5 @@ +class Y { + inline fun foo(f: () -> Unit) { + f() + } +} \ No newline at end of file diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/usage.kt b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/usage.kt new file mode 100644 index 00000000000..ac2a7aff554 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/pureKotlin/functionBecameInline/usage.kt @@ -0,0 +1,5 @@ +class X { + fun main() { + Y().foo {} + } +} \ No newline at end of file