From caad0d5a74a0d30494f4108492121f1a76e6ebab Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 8 Nov 2018 13:33:32 +0300 Subject: [PATCH] ExposedVisibilityChecker refactoring: make trace BindingTrace --- .../jetbrains/kotlin/resolve/ExposedVisibilityChecker.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ExposedVisibilityChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ExposedVisibilityChecker.kt index 47a6780c8ca..ff8c455c251 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ExposedVisibilityChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ExposedVisibilityChecker.kt @@ -19,8 +19,6 @@ package org.jetbrains.kotlin.resolve import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.diagnostics.DiagnosticFactory3 -import org.jetbrains.kotlin.diagnostics.DiagnosticSink -import org.jetbrains.kotlin.diagnostics.DiagnosticSink.DO_NOTHING import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.types.TypeUtils @@ -28,7 +26,7 @@ import org.jetbrains.kotlin.types.isError // Checker for all seven EXPOSED_* errors // All functions return true if everything is OK, or false in case of any errors -class ExposedVisibilityChecker(private val trace: DiagnosticSink = DO_NOTHING) { +class ExposedVisibilityChecker(private val trace: BindingTrace? = null) { private fun reportExposure( diagnostic: DiagnosticFactory3, @@ -36,7 +34,7 @@ class ExposedVisibilityChecker(private val trace: DiagnosticSink = DO_NOTHING) { elementVisibility: EffectiveVisibility, restrictingDescriptor: DescriptorWithRelation ) { - trace.report(diagnostic.on(element, elementVisibility, restrictingDescriptor, restrictingDescriptor.effectiveVisibility())) + trace?.report(diagnostic.on(element, elementVisibility, restrictingDescriptor, restrictingDescriptor.effectiveVisibility())) } // NB: does not check any members @@ -99,7 +97,7 @@ class ExposedVisibilityChecker(private val trace: DiagnosticSink = DO_NOTHING) { reportExposure(EXPOSED_PARAMETER_TYPE, valueParameter, functionVisibility, restricting) result = false } else if (functionDescriptor is ClassConstructorDescriptor && valueParameter.hasValOrVar()) { - val propertyDescriptor = (trace as? BindingTrace)?.get(BindingContext.VALUE_PARAMETER_AS_PROPERTY, parameterDescriptor) + val propertyDescriptor = trace?.get(BindingContext.VALUE_PARAMETER_AS_PROPERTY, parameterDescriptor) val propertyOrClassVisibility = (propertyDescriptor ?: functionDescriptor.constructedClass).effectiveVisibility() val restrictingByProperty = parameterDescriptor.type.leastPermissiveDescriptor(propertyOrClassVisibility) if (restrictingByProperty != null) {