Prevent generation of delegations to interfaces private methods

#KT-13381 Fixed
 #KT-13996 Fixed
This commit is contained in:
Denis Zharkov
2016-09-22 18:21:03 +03:00
parent 06c804787f
commit 217f033552
6 changed files with 67 additions and 1 deletions
@@ -106,7 +106,9 @@ object CodegenUtil {
if (declaration !is CallableMemberDescriptor) continue
val traitMember = findInterfaceImplementation(declaration)
if (traitMember == null || Visibilities.isPrivate(traitMember.visibility)) continue
if (traitMember == null ||
Visibilities.isPrivate(traitMember.visibility) ||
traitMember.visibility == Visibilities.INVISIBLE_FAKE) continue
assert(traitMember.modality !== Modality.ABSTRACT) { "Cannot delegate to abstract trait method: $declaration" }