Extract Function: Check for INVISIBLE_* errors during validation phase

#KT-4995 Fixed
This commit is contained in:
Alexey Sedunov
2014-08-07 20:23:40 +04:00
parent cb3328c052
commit 87de6cff23
10 changed files with 58 additions and 4 deletions
@@ -38,5 +38,6 @@ package.private.0.will.no.longer.be.accessible.from.1=Package-private {0} will n
0.uses.package.private.1={0} uses package-private {1}
0.will.no.longer.be.accessible.after.extraction={0} will no longer be accessible after extraction
0.will.become.invisible.after.extraction={0} will become invisible after extraction
setter.of.0.will.become.invisible.after.extraction = Setter of {0} will become invisible after extraction
naming.convention.will.be.violated.after.rename=Naming conventions will be violated after rename
@@ -721,14 +721,22 @@ fun ExtractableCodeDescriptor.validate(): ExtractableCodeDescriptorWithConflicts
continue
}
diagnostics.firstOrNull { it.getFactory() == Errors.INVISIBLE_MEMBER }?.let {
conflicts.putValue(
resolveResult.originalRefExpr,
diagnostics.firstOrNull { it.getFactory() in Errors.INVISIBLE_REFERENCE_DIAGNOSTICS }?.let {
val message = when (it.getFactory()) {
Errors.INVISIBLE_SETTER ->
JetRefactoringBundle.message(
"setter.of.0.will.become.invisible.after.extraction",
RefactoringUIUtil.getDescription(resolveResult.declaration, true)
)
else ->
JetRefactoringBundle.message(
"0.will.become.invisible.after.extraction",
RefactoringUIUtil.getDescription(resolveResult.declaration, true).capitalize()
)
)
}
conflicts.putValue(resolveResult.originalRefExpr, message)
}
}