JS: don't report error when FAKE function overrides external function with optional parameters. Report only when it overrides at least two such functions. See KT-15961

This commit is contained in:
Alexey Andreev
2017-01-30 14:25:03 +03:00
parent d117b0210f
commit 06e8f7b328
4 changed files with 42 additions and 2 deletions
@@ -71,7 +71,7 @@ object JsInheritanceChecker : SimpleDeclarationChecker {
private fun findFakeMethodOverridingExternalWithOptionalParams(cls: ClassDescriptor): FunctionDescriptor? {
val members = cls.unsubstitutedMemberScope.getContributedDescriptors(DescriptorKindFilter.CALLABLES)
.mapNotNull { it as? FunctionDescriptor }
.filter { it.containingDeclaration == cls && !it.kind.isReal }
.filter { it.containingDeclaration == cls && !it.kind.isReal && it.overriddenDescriptors.size > 1 }
return members.firstOrNull { isOverridingExternalWithOptionalParams(it) }
}