Apply De Morgan's laws to non-negated binary expressions
So #KT-18460 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
af53a0ecd5
commit
44ce5f73f7
@@ -0,0 +1 @@
|
||||
org.jetbrains.kotlin.idea.intentions.ConvertBinaryExpressionWithDemorgansLawIntention
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, c: Int, d: Int) : Boolean {
|
||||
return !(a <caret>&& c == d)
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, c: Int, d: Int) : Boolean {
|
||||
return !a || c != d
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Int, b: Int, c: Int, d: Int) : Boolean {
|
||||
return !(a < b && c ==<caret> d && a < d)
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Int, b: Int, c: Int, d: Int) : Boolean {
|
||||
return a >= b || c != d || a >= d
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(<caret>a && b)
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !a || !b
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !(a && <caret>(b && c))
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !a || !(b && c)
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(<caret>a || b)
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !a && !b
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !(<caret>a || (b && c))
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !a && !(b && c)
|
||||
}
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
object O {
|
||||
fun foo(): Boolean = true
|
||||
fun bar(): Boolean = true
|
||||
}
|
||||
fun foo(p1: Boolean, p2: Boolean) {
|
||||
if (!(<caret>O.foo() || O.bar())) return
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
object O {
|
||||
fun foo(): Boolean = true
|
||||
fun bar(): Boolean = true
|
||||
}
|
||||
fun foo(p1: Boolean, p2: Boolean) {
|
||||
if (!O.foo() && !O.bar()) return
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
operator fun String.not(): Boolean {
|
||||
return length == 0
|
||||
}
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(<caret>!"" || b)
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
operator fun String.not(): Boolean {
|
||||
return length == 0
|
||||
}
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !!"" && !b
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// IS_APPLICABLE: false
|
||||
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>public operator fun String?.plus(other: Any?): String defined in kotlin
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !<caret>(!a + b)
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean, d: Boolean) : Boolean {
|
||||
return !(<caret>a && b && c || !d)
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !(<caret>a || !b || c)
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return !a && b && !c
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(<caret>a && !b)
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !a || b
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return <caret>a && b
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(!a || !b)
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return <caret>a || b
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(!a && !b)
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return <caret>!a || !b
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '||' with '&&'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(a && b)
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return <caret>!a && !b
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// INTENTION_TEXT: Replace '&&' with '||'
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(a || b)
|
||||
}
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
operator fun Boolean.unaryPlus(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !(<caret>+a || b)
|
||||
}
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
operator fun Boolean.unaryPlus(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
fun foo(a: Boolean, b: Boolean) : Boolean {
|
||||
return !+a && !b
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return a && !(<caret>b && c)
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(a: Boolean, b: Boolean, c: Boolean) : Boolean {
|
||||
return a && (!b || !c)
|
||||
}
|
||||
Reference in New Issue
Block a user