Intention to convert assert into an if with throw - bug fix for when the call is dot qualified

This commit is contained in:
Tal Man
2014-04-20 12:45:31 -04:00
parent feece3c326
commit 3713f50800
4 changed files with 22 additions and 1 deletions
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils
import kotlin.properties.Delegates
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
import org.jetbrains.jet.lang.psi.JetIfExpression
import org.jetbrains.jet.lang.psi.JetDotQualifiedExpression
public class ConvertAssertToIfWithThrowIntention : JetSelfTargetingIntention<JetCallExpression>(
"convert.assert.to.if.with.throw", javaClass()) {
@@ -98,6 +99,11 @@ public class ConvertAssertToIfWithThrowIntention : JetSelfTargetingIntention<Jet
simplifier.applyTo(ifCondition, editor)
}
element.replace(ifExpression)
val parent = element.getParent()
if (parent is JetDotQualifiedExpression) {
parent.replace(ifExpression)
} else {
element.replace(ifExpression)
}
}
}
@@ -0,0 +1,4 @@
// WITH_RUNTIME
fun foo() {
kotlin.<caret>assert(true, "text")
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
if (!true) {
throw AssertionError("text")
}
}
@@ -3541,6 +3541,11 @@ public class CodeTransformationTestGenerated extends AbstractCodeTransformationT
doTestConvertAssertToIfWithThrowIntention("idea/testData/intentions/convertAssertToIf/booleanConditionWithVariables.kt");
}
@TestMetadata("dotQualifiedCall.kt")
public void testDotQualifiedCall() throws Exception {
doTestConvertAssertToIfWithThrowIntention("idea/testData/intentions/convertAssertToIf/dotQualifiedCall.kt");
}
@TestMetadata("functionCallCondition.kt")
public void testFunctionCallCondition() throws Exception {
doTestConvertAssertToIfWithThrowIntention("idea/testData/intentions/convertAssertToIf/functionCallCondition.kt");