From 84ccc672c5b135d2b1c7c16d37e22102d050aaf3 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 19 Jul 2019 17:33:47 +0200 Subject: [PATCH] JVM IR: support multi-file classes Without the `-Xmultifile-parts-inherit` mode for now. This is implemented as follows: FileClassLowering collects information about multifile parts and the corresponding facades, which a later GenerateMultifileFacades phase uses to generate new IrFile instances and add it to the module fragment that's being compiled. Note that GenerateMultifileFacades is in the end of lowering phases because delegates in the facade should be generated for all additional functions generated by certain lowerings (default arguments, JvmOverloads, etc.). If GenerateMultifileFacades was right after FileClassLowering, they would still be generated, but we'd then process them in lowerings mentioned above, which would result in duplicated logic in the bytecode. There's a new bytecode text test which checks that this doesn't happen for functions with default arguments. Original commit: 4be0e00071a12f1d22a0c4de924013e6e39f7683 --- .../withJava/other/packageFacadeToClass/directives.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 jps/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/directives.txt diff --git a/jps/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/directives.txt b/jps/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/directives.txt deleted file mode 100644 index 5099b2ad971..00000000000 --- a/jps/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/directives.txt +++ /dev/null @@ -1 +0,0 @@ -// IGNORE_BACKEND: JVM_IR