KT-4568: Created the ConvertNegatedExpressionWithDemorgansLaw intention. Converts an expression of the form !(a &&,|| b) to its expanded equivalent under DeMorgan's law.

This commit is contained in:
Ross Hanson
2014-03-23 21:35:07 -04:00
committed by Mikhael Bogdanov
parent 2147a88ed8
commit 55e888604e
30 changed files with 319 additions and 55 deletions
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !(<caret>a && b)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !a || !b
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return !(a && <caret>(b && c))
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return !a || !(b && c)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !(<caret>a || b)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !a && !b
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return !(<caret>a || (b && c))
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return !a && !(b && c)
}
@@ -0,0 +1,7 @@
fun String.not(): Boolean {
return isEmpty()
}
fun foo(a: Boolean, b: Boolean) : Boolean {
return !<caret>(!"" || b)
}
@@ -0,0 +1,7 @@
fun String.not(): Boolean {
return isEmpty()
}
fun foo(a: Boolean, b: Boolean) : Boolean {
return !!"" && !b
}
@@ -0,0 +1,4 @@
// IS_APPLICABLE: false
fun foo(a: Boolean, b: Boolean) : Boolean {
return <caret>a && b
}
@@ -0,0 +1,4 @@
// IS_APPLICABLE: false
fun foo(a: Boolean, b: Boolean) : Boolean {
return !<caret>(!a + b)
}
@@ -0,0 +1,4 @@
// IS_APPLICABLE: false
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return !(<caret>a && b && c || !d)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !<caret>(a || !b || c)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !a && !!b && !c
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !<caret>(a && !b)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean) : Boolean {
return !a || !!b
}
@@ -0,0 +1,7 @@
fun Boolean.plus(): Boolean {
return false
}
fun foo(a: Boolean, b: Boolean) : Boolean {
return !<caret>(+a || b)
}
@@ -0,0 +1,7 @@
fun Boolean.plus(): Boolean {
return false
}
fun foo(a: Boolean, b: Boolean) : Boolean {
return !+a && !b
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return a && !(<caret>b && c)
}
@@ -0,0 +1,3 @@
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
return a && (!b || !c)
}