JVM.IR. Add assertions for JVM defaults checks

This commit is contained in:
Mikhail Bogdanov
2020-03-30 09:29:45 +02:00
parent b787c8c011
commit 261af10019
5 changed files with 35 additions and 15 deletions
@@ -53,6 +53,11 @@ fun CallableMemberDescriptor.isCompiledToJvmDefaultIfNoAbstract(jvmDefault: JvmD
val clazz = directMember.containingDeclaration
// TODO add checks after fixes in diagnostics
// assert(this.kind.isReal && isInterface(clazz) && modality != Modality.ABSTRACT) {
// "`isCompiledToJvmDefault` should be called on non-fakeoverrides and non-abstract methods from interfaces $this"
// }
if (directMember.annotations.hasAnnotation(JVM_DEFAULT_FQ_NAME)) return true
if (clazz !is DeserializedClassDescriptor) return jvmDefault.forAllMethodsWithBody
return JvmProtoBufUtil.isNewPlaceForBodyGeneration(clazz.classProto)