From 32e4a033db9cc86cd7e82826874acb28d74ce958 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 8 Sep 2016 02:19:42 +0300 Subject: [PATCH] Fixed use of options --- .../kotlin/idea/core/ShortenReferences.kt | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ShortenReferences.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ShortenReferences.kt index 41f0805ff9b..d56b96b10c3 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ShortenReferences.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/ShortenReferences.kt @@ -392,16 +392,14 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT failedToImportDescriptors: Set ) : QualifiedExpressionShorteningVisitor(file, elementFilter, failedToImportDescriptors) { + override fun visitDotQualifiedExpression(expression: KtDotQualifiedExpression) { + if (expression.receiverExpression is KtThisExpression && !options.removeThis) return + super.visitDotQualifiedExpression(expression) + } + override fun analyzeQualifiedElement(element: KtDotQualifiedExpression, bindingContext: BindingContext): AnalyzeQualifiedElementResult { val receiver = element.receiverExpression - when (receiver) { - is KtThisExpression -> { - if (!options.removeThis) return Skip - } - else -> { - if (bindingContext[BindingContext.QUALIFIER, receiver] == null) return Skip - } - } + if (receiver !is KtThisExpression && bindingContext[BindingContext.QUALIFIER, receiver] == null) return Skip if (PsiTreeUtil.getParentOfType( element, @@ -466,8 +464,6 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT private val simpleThis = KtPsiFactory(file).createExpression("this") as KtThisExpression override fun analyzeQualifiedElement(element: KtThisExpression, bindingContext: BindingContext): AnalyzeQualifiedElementResult { - if (!options.removeThisLabels || element.getTargetLabel() == null) return Skip - val targetBefore = element.instanceReference.targets(bindingContext).singleOrNull() ?: return Skip val scope = element.getResolutionScope(bindingContext, resolutionFacade) val newContext = simpleThis.analyzeInContext(scope, element) @@ -476,7 +472,7 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT } override fun visitThisExpression(expression: KtThisExpression) { - if (elementFilter(expression) == FilterResult.PROCESS) { + if (options.removeThisLabels && elementFilter(expression) == FilterResult.PROCESS && expression.getTargetLabel() != null) { addQualifiedElementToAnalyze(expression) } }