diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 8e7c124631c..0995d1ea2d2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -43,6 +43,7 @@ import org.jetbrains.kotlin.resolve.constants.ConstantValue; import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage; import org.jetbrains.kotlin.resolve.jvm.AsmTypes; +import org.jetbrains.kotlin.resolve.source.SourcePackage; import org.jetbrains.kotlin.storage.LockBasedStorageManager; import org.jetbrains.kotlin.storage.NotNullLazyValue; import org.jetbrains.kotlin.types.ErrorUtils; @@ -57,7 +58,6 @@ import java.util.*; import static org.jetbrains.kotlin.codegen.AsmUtil.calculateInnerClassAccessFlags; import static org.jetbrains.kotlin.codegen.AsmUtil.isPrimitive; import static org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.SYNTHESIZED; -import static org.jetbrains.kotlin.descriptors.SourceElement.NO_SOURCE; import static org.jetbrains.kotlin.resolve.BindingContext.VARIABLE; import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.*; import static org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage.OtherOrigin; @@ -322,7 +322,8 @@ public abstract class MemberCodegen", "()V", null, null); SimpleFunctionDescriptorImpl clInit = - SimpleFunctionDescriptorImpl.create(descriptor, Annotations.EMPTY, Name.special(""), SYNTHESIZED, NO_SOURCE); + SimpleFunctionDescriptorImpl.create(descriptor, Annotations.EMPTY, Name.special(""), SYNTHESIZED, + SourcePackage.toSourceElement(element)); clInit.initialize(null, null, Collections.emptyList(), Collections.emptyList(), DescriptorUtilPackage.getModule(descriptor).getBuiltIns().getUnitType(), diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java index 662a2a15cd6..956059104c1 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java @@ -305,6 +305,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("inlineToTopLevelVal") + public void testInlineToTopLevelVal() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/"); + doTest(fileName); + } + @TestMetadata("inlineTwoFunctionsOneChanged") public void testInlineTwoFunctionsOneChanged() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTwoFunctionsOneChanged/"); diff --git a/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/build.log b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/build.log new file mode 100644 index 00000000000..5720130d7a4 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/build.log @@ -0,0 +1,14 @@ +Cleaning output files: +out/production/module/inline/InlinePackage$inline$*.class +out/production/module/inline/InlinePackage.class +End of files +Compiling files: +src/inline.kt +End of files +Cleaning output files: +out/production/module/usage/UsagePackage$usage$*.class +out/production/module/usage/UsagePackage.class +End of files +Compiling files: +src/usage.kt +End of files diff --git a/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt new file mode 100644 index 00000000000..a242c7c7b32 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt @@ -0,0 +1,5 @@ +package inline + +inline fun f(): Int { + return 0 +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt.new b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt.new new file mode 100644 index 00000000000..91d8140528c --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/inline.kt.new @@ -0,0 +1,5 @@ +package inline + +inline fun f(): Int { + return 1 +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/other.kt b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/other.kt new file mode 100644 index 00000000000..ba9f1988a49 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/other.kt @@ -0,0 +1,3 @@ +package usage + +fun other() {} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/usage.kt b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/usage.kt new file mode 100644 index 00000000000..956c97c4cd4 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/inlineToTopLevelVal/usage.kt @@ -0,0 +1,3 @@ +package usage + +val x = inline.f() \ No newline at end of file