Fixed use of options

This commit is contained in:
Valentin Kipyatkov
2016-09-08 02:19:42 +03:00
parent fc27212456
commit 32e4a033db
@@ -392,16 +392,14 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT
failedToImportDescriptors: Set<DeclarationDescriptor>
) : 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)
}
}