From 8eb7117bf14324040e6164bdbf19d15f202c6ac5 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Fri, 14 Apr 2017 20:44:09 +0300 Subject: [PATCH] Light class codegen: do not apply compiler plugins Applying plugins leads to failures when matching members in LazyLightClassDataHolder because plugins rely on analysis results This decision has its drawbacks (java won't see results of plugin execution) but more work on light classes is needed if we want to support this usecase We can argue that plugins should only generate synthetic members but there is no such restriction atm --- .../org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index c5415ab5758..d35ec4ad10b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -365,6 +365,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (context.closure != null) genClosureFields(context.closure, v, typeMapper); + if (state.getClassBuilderMode() == ClassBuilderMode.LIGHT_CLASSES) return; + for (ExpressionCodegenExtension extension : ExpressionCodegenExtension.Companion.getInstances(state.getProject())) { extension.generateClassSyntheticParts(this); }