From 1ebf81c3ffe2fc462fc2664894a6031ce59ff486 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Fri, 25 Nov 2016 13:58:54 +0300 Subject: [PATCH] Don't report about unused parameters on external functions and constructors --- .../jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt index 3875dea7987..7bc8cbdc33b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt @@ -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) {