Restrict conditions for @JvmDefault super calls

Condition was too strict if we actually make super call
  through super class. Diagnostic is redundant cause there isn't breaking
  change depending on interface method generation strategy.
This commit is contained in:
Mikhael Bogdanov
2018-04-10 10:57:49 +02:00
parent 5f235a8342
commit 6d1af263ba
3 changed files with 56 additions and 8 deletions
@@ -25,11 +25,8 @@ class JvmDefaultSuperCallChecker : CallChecker {
val resultingDescriptor = resolvedCall.resultingDescriptor as? CallableMemberDescriptor ?: return
if (!resultingDescriptor.hasJvmDefaultAnnotation()) return
val containingDeclaration = DescriptorUtils.unwrapFakeOverrideToAnyDeclaration(resultingDescriptor).containingDeclaration
if (DescriptorUtils.isInterface(containingDeclaration) ||
DescriptorUtils.isAnnotationClass(containingDeclaration)
) {
if (DescriptorUtils.isInterface(resultingDescriptor.containingDeclaration)) {
context.trace.report(ErrorsJvm.USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL.on(reportOn))
}
}
}
}