JVM: Don't generate accessors to companions in earlier language versions

This commit is contained in:
Dmitry Petrov
2020-01-13 23:37:53 +03:00
parent 6ad159bb01
commit a16b21a7cc
5 changed files with 49 additions and 1 deletions
@@ -2862,7 +2862,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
}
}
private static CodegenContext getContextForCompanionObjectAccessorIfRequiredOrNull(
private CodegenContext getContextForCompanionObjectAccessorIfRequiredOrNull(
@NotNull ClassDescriptor companionObjectDescriptor,
@NotNull CodegenContext contextBeforeInline
) {
@@ -2870,6 +2870,10 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
return null;
}
if (!state.getLanguageVersionSettings().supportsFeature(LanguageFeature.ProperVisibilityForCompanionObjectInstanceField)) {
return null;
}
int accessFlag = AsmUtil.getVisibilityAccessFlag(companionObjectDescriptor);
CodegenContext context = contextBeforeInline.getFirstCrossInlineOrNonInlineContext();