Deprecate DefaultImpl methods in compatibility mode

This commit is contained in:
Mikhail Bogdanov
2020-06-19 12:23:05 +02:00
parent 9c0b96af71
commit 6c9c2a287d
4 changed files with 13 additions and 10 deletions
@@ -193,6 +193,9 @@ public class FunctionCodegen {
if (origin.getOriginKind() == JvmDeclarationOriginKind.SAM_DELEGATION) {
flags |= ACC_SYNTHETIC;
}
if (isCompatibilityStubInDefaultImpls(functionDescriptor, methodContext, state.getJvmDefaultMode())) {
flags |= ACC_DEPRECATED;
}
if (functionDescriptor.isExternal() && owner instanceof MultifileClassFacadeContext) {
// Native methods are only defined in facades and do not need package part implementations
@@ -712,9 +715,9 @@ public class FunctionCodegen {
@NotNull JvmDefaultMode jvmDefaultMode
) {
return OwnerKind.DEFAULT_IMPLS == context.getContextKind() &&
jvmDefaultMode.isCompatibility() &&
JvmAnnotationUtilKt.isCompiledToJvmDefault(DescriptorUtils.unwrapFakeOverrideToAnyDeclaration(functionDescriptor),
jvmDefaultMode) &&
jvmDefaultMode.isCompatibility();
jvmDefaultMode);
}
private static void generateLocalVariableTable(