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> failedToImportDescriptors: Set<DeclarationDescriptor>
) : QualifiedExpressionShorteningVisitor(file, elementFilter, failedToImportDescriptors) { ) : 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 { override fun analyzeQualifiedElement(element: KtDotQualifiedExpression, bindingContext: BindingContext): AnalyzeQualifiedElementResult {
val receiver = element.receiverExpression val receiver = element.receiverExpression
when (receiver) { if (receiver !is KtThisExpression && bindingContext[BindingContext.QUALIFIER, receiver] == null) return Skip
is KtThisExpression -> {
if (!options.removeThis) return Skip
}
else -> {
if (bindingContext[BindingContext.QUALIFIER, receiver] == null) return Skip
}
}
if (PsiTreeUtil.getParentOfType( if (PsiTreeUtil.getParentOfType(
element, element,
@@ -466,8 +464,6 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT
private val simpleThis = KtPsiFactory(file).createExpression("this") as KtThisExpression private val simpleThis = KtPsiFactory(file).createExpression("this") as KtThisExpression
override fun analyzeQualifiedElement(element: KtThisExpression, bindingContext: BindingContext): AnalyzeQualifiedElementResult { 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 targetBefore = element.instanceReference.targets(bindingContext).singleOrNull() ?: return Skip
val scope = element.getResolutionScope(bindingContext, resolutionFacade) val scope = element.getResolutionScope(bindingContext, resolutionFacade)
val newContext = simpleThis.analyzeInContext(scope, element) val newContext = simpleThis.analyzeInContext(scope, element)
@@ -476,7 +472,7 @@ class ShortenReferences(val options: (KtElement) -> Options = { Options.DEFAULT
} }
override fun visitThisExpression(expression: KtThisExpression) { override fun visitThisExpression(expression: KtThisExpression) {
if (elementFilter(expression) == FilterResult.PROCESS) { if (options.removeThisLabels && elementFilter(expression) == FilterResult.PROCESS && expression.getTargetLabel() != null) {
addQualifiedElementToAnalyze(expression) addQualifiedElementToAnalyze(expression)
} }
} }