Fixed DeprecatedSymbolUsageFixSpecialTest

This commit is contained in:
Valentin Kipyatkov
2015-09-02 20:08:59 +03:00
parent c5891d255d
commit f6a2502f22
2 changed files with 4 additions and 4 deletions
@@ -44,12 +44,12 @@ public abstract class DeprecatedSymbolUsageFixBase(
override fun isAvailable(project: Project, editor: Editor?, file: PsiFile): Boolean { override fun isAvailable(project: Project, editor: Editor?, file: PsiFile): Boolean {
if (!super.isAvailable(project, editor, file)) return false if (!super.isAvailable(project, editor, file)) return false
val strategy = UsageReplacementStrategy.build(element, replaceWith) val strategy = UsageReplacementStrategy.build(element, replaceWith, recheckAnnotation = true)
return strategy != null && strategy.createReplacer(element) != null return strategy != null && strategy.createReplacer(element) != null
} }
final override fun invoke(project: Project, editor: Editor?, file: JetFile) { final override fun invoke(project: Project, editor: Editor?, file: JetFile) {
val strategy = UsageReplacementStrategy.build(element, replaceWith)!! val strategy = UsageReplacementStrategy.build(element, replaceWith, recheckAnnotation = false)!!
invoke(strategy, project, editor) invoke(strategy, project, editor)
} }
@@ -30,7 +30,7 @@ interface UsageReplacementStrategy {
fun createReplacer(usage: JetSimpleNameExpression): (() -> JetElement)? fun createReplacer(usage: JetSimpleNameExpression): (() -> JetElement)?
companion object { companion object {
fun build(element: JetSimpleNameExpression, replaceWith: ReplaceWith): UsageReplacementStrategy? { fun build(element: JetSimpleNameExpression, replaceWith: ReplaceWith, recheckAnnotation: Boolean): UsageReplacementStrategy? {
val resolutionFacade = element.getResolutionFacade() val resolutionFacade = element.getResolutionFacade()
val bindingContext = resolutionFacade.analyze(element, BodyResolveMode.PARTIAL) val bindingContext = resolutionFacade.analyze(element, BodyResolveMode.PARTIAL)
var target = element.mainReference.resolveToDescriptors(bindingContext).singleOrNull() ?: return null var target = element.mainReference.resolveToDescriptors(bindingContext).singleOrNull() ?: return null
@@ -42,7 +42,7 @@ interface UsageReplacementStrategy {
} }
// check that ReplaceWith hasn't changed // check that ReplaceWith hasn't changed
if (replacePatternFromSymbol != replaceWith) return null if (recheckAnnotation && replacePatternFromSymbol != replaceWith) return null
when (target) { when (target) {
is CallableDescriptor -> { is CallableDescriptor -> {