Extraction refactorings tests: do not generate conflict files in case of any exception from code
This commit is contained in:
+4
-9
@@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
|
import com.intellij.refactoring.BaseRefactoringProcessor
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.idea.core.*
|
import org.jetbrains.kotlin.idea.core.*
|
||||||
@@ -28,10 +29,7 @@ import org.jetbrains.kotlin.idea.intentions.ConvertToExpressionBodyIntention
|
|||||||
import org.jetbrains.kotlin.idea.intentions.InfixCallToOrdinaryIntention
|
import org.jetbrains.kotlin.idea.intentions.InfixCallToOrdinaryIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.OperatorToFunctionIntention
|
import org.jetbrains.kotlin.idea.intentions.OperatorToFunctionIntention
|
||||||
import org.jetbrains.kotlin.idea.intentions.RemoveExplicitTypeArgumentsIntention
|
import org.jetbrains.kotlin.idea.intentions.RemoveExplicitTypeArgumentsIntention
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ExpressionValue
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.*
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Initializer
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Jump
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ParameterUpdate
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValueBoxer.AsTuple
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValueBoxer.AsTuple
|
||||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||||
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
import org.jetbrains.kotlin.idea.util.ShortenReferences
|
||||||
@@ -53,10 +51,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny
|
|||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.isFlexible
|
import org.jetbrains.kotlin.types.isFlexible
|
||||||
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
||||||
import java.util.ArrayList
|
import java.util.*
|
||||||
import java.util.Collections
|
|
||||||
import java.util.HashMap
|
|
||||||
import java.util.LinkedHashMap
|
|
||||||
|
|
||||||
fun ExtractionGeneratorConfiguration.getDeclarationText(
|
fun ExtractionGeneratorConfiguration.getDeclarationText(
|
||||||
withBody: Boolean = true,
|
withBody: Boolean = true,
|
||||||
@@ -66,7 +61,7 @@ fun ExtractionGeneratorConfiguration.getDeclarationText(
|
|||||||
): String {
|
): String {
|
||||||
val extractionTarget = generatorOptions.target
|
val extractionTarget = generatorOptions.target
|
||||||
if (!extractionTarget.isAvailable(descriptor)) {
|
if (!extractionTarget.isAvailable(descriptor)) {
|
||||||
throw IllegalArgumentException("Can't generate ${extractionTarget.targetName}: ${descriptor.extractionData.codeFragmentText}")
|
throw BaseRefactoringProcessor.ConflictsInTestsException(listOf("Can't generate ${extractionTarget.targetName}: ${descriptor.extractionData.codeFragmentText}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val builderTarget = when (extractionTarget) {
|
val builderTarget = when (extractionTarget) {
|
||||||
|
|||||||
+7
-4
@@ -35,7 +35,6 @@ import com.intellij.refactoring.introduceParameter.Util
|
|||||||
import com.intellij.refactoring.util.occurrences.ExpressionOccurrenceManager
|
import com.intellij.refactoring.util.occurrences.ExpressionOccurrenceManager
|
||||||
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
|
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
|
||||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
||||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase.assertEquals
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil
|
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.EXTRACT_FUNCTION
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.EXTRACT_FUNCTION
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandler
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandler
|
||||||
@@ -339,9 +338,13 @@ public abstract class AbstractJetExtractionTest() : JetLightCodeInsightFixtureTe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(e: Exception) {
|
catch(e: ConflictsInTestsException) {
|
||||||
val message = if (e is ConflictsInTestsException) e.getMessages().sorted().joinToString(" ") else e.getMessage()
|
val message = e.messages.sorted().joinToString(" ").replace("\n", " ")
|
||||||
JetTestUtils.assertEqualsToFile(conflictFile, message?.replace("\n", " ") ?: e.javaClass.getName())
|
JetTestUtils.assertEqualsToFile(conflictFile, message)
|
||||||
|
}
|
||||||
|
catch(e: RuntimeException) { // RuntimeException is thrown by IDEA code in CodeInsightUtils.java
|
||||||
|
if (e.javaClass != RuntimeException::class.java) throw e
|
||||||
|
JetTestUtils.assertEqualsToFile(conflictFile, e.message!!)
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
if (addKotlinRuntime) {
|
if (addKotlinRuntime) {
|
||||||
|
|||||||
Reference in New Issue
Block a user