Don't report about unused parameters on external functions and constructors

This commit is contained in:
Alexey Andreev
2016-11-25 13:58:54 +03:00
parent 7a6b510ddb
commit 1ebf81c3ff
@@ -637,7 +637,9 @@ class ControlFlowInformationProvider private constructor(
is KtPrimaryConstructor -> if (!element.hasValOrVar()) {
val containingClass = owner.getContainingClassOrObject()
val containingClassDescriptor = trace.get(DECLARATION_TO_DESCRIPTOR, containingClass) as? ClassDescriptor
if (!DescriptorUtils.isAnnotationClass(containingClassDescriptor) && containingClassDescriptor?.isPlatform == false) {
if (!DescriptorUtils.isAnnotationClass(containingClassDescriptor) && containingClassDescriptor?.isPlatform == false &&
!DescriptorUtils.isEffectivelyExternal(containingClassDescriptor)
) {
report(UNUSED_PARAMETER.on(element, variableDescriptor), ctxt)
}
}
@@ -652,6 +654,7 @@ class ControlFlowInformationProvider private constructor(
|| functionDescriptor.isOverridableOrOverrides
|| owner.hasModifier(KtTokens.OVERRIDE_KEYWORD)
|| functionDescriptor.isPlatform || functionDescriptor.isImpl
|| DescriptorUtils.isEffectivelyExternal(functionDescriptor)
|| OperatorNameConventions.GET_VALUE == functionName
|| OperatorNameConventions.SET_VALUE == functionName
|| OperatorNameConventions.PROPERTY_DELEGATED == functionName) {