Add intention to expand boolean expression
#KT-38597 Fixed
This commit is contained in:
committed by
igoriakovlev
parent
f005091dfb
commit
343af60cb4
@@ -0,0 +1 @@
|
||||
org.jetbrains.kotlin.idea.intentions.ExpandBooleanExpressionIntention
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return i == 1 || i == 2<caret> || i == 3
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return if (i == 1 || i == 2 || i == 3) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
fun test(b: Boolean): Boolean {
|
||||
return <caret>foo(b)
|
||||
}
|
||||
|
||||
fun foo(b: Boolean) = true
|
||||
@@ -0,0 +1,9 @@
|
||||
fun test(b: Boolean): Boolean {
|
||||
return if (foo(b)) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
fun foo(b: Boolean) = true
|
||||
@@ -0,0 +1,4 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun test(): Boolean {
|
||||
return true<caret>
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun test(b: Boolean) {
|
||||
foo(b<caret>)
|
||||
}
|
||||
|
||||
fun foo(b: Boolean) {}
|
||||
@@ -0,0 +1,3 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun test(i: Int, b: Boolean = i == 1<caret>) {
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// IS_APPLICABLE: false
|
||||
fun test(b: Boolean) {
|
||||
val s = "b is $b<caret>"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(a: Any): Boolean {
|
||||
return a <caret>is String
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(a: Any): Boolean {
|
||||
return if (a is String) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return (i == 1 || i == 2<caret> || i == 3)
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return if ((i == 1 || i == 2 || i == 3)) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(b: Boolean?): Boolean {
|
||||
return <caret>b!!
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(b: Boolean?): Boolean {
|
||||
return if (b!!) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return !(i == 1 || i == 2<caret> || i == 3)
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(i: Int): Boolean {
|
||||
return if (!(i == 1 || i == 2 || i == 3)) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(b: Boolean) {
|
||||
val b = Foo().bar()<caret>
|
||||
}
|
||||
|
||||
class Foo {
|
||||
fun bar() = true
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fun test(b: Boolean) {
|
||||
val b = if (Foo().bar()) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
class Foo {
|
||||
fun bar() = true
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun test(b: Boolean): Boolean {
|
||||
return b<caret>
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun test(b: Boolean): Boolean {
|
||||
return <caret>if (b) {
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
// ACTION: Create property 'maximumSizeOfGroup'
|
||||
// ACTION: Introduce local variable
|
||||
// ACTION: Rename reference
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: A 'return' expression required in a function with a block body ('{...}')
|
||||
// ERROR: The expression cannot be a selector (occur after a dot)
|
||||
// ERROR: Type inference failed: inline fun <T> Iterable<T>.firstOrNull(predicate: (T) -> Boolean): T?<br>cannot be applied to<br>receiver: Collection<List<String>> arguments: ((List<String>) -> () -> Boolean)<br>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
// ACTION: Change type arguments to <*>
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Introduce local variable
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Cannot check for instance of erased type: List<Int>
|
||||
fun test(a: List<Any>) = a is List<Int><caret>
|
||||
@@ -2,5 +2,6 @@
|
||||
// ACTION: Change type arguments to <*>
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Introduce local variable
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Cannot check for instance of erased type: List<Int>
|
||||
fun <T> test(a: List<Any>) = a is List<Int><caret>
|
||||
@@ -3,6 +3,7 @@
|
||||
// ACTION: Add non-null asserted (!!) call
|
||||
// ACTION: Flip '>'
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
|
||||
class SafeType {
|
||||
operator fun compareTo(other : SafeType) = 0
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
// ACTION: Add non-null asserted (!!) call
|
||||
// ACTION: Flip '<'
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Operator call corresponds to a dot-qualified call 'w?.x.compareTo(42)' which is not allowed on a nullable receiver 'w?.x'.
|
||||
|
||||
class Wrapper(val x: Int)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
// ACTION: Replace '&&' with '||'
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Simplify boolean expression
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Operator call corresponds to a dot-qualified call 'w?.x.compareTo(42)' which is not allowed on a nullable receiver 'w?.x'.
|
||||
|
||||
class Wrapper(val x: Int)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
// ACTION: Flip '<='
|
||||
// ACTION: Enable a trailing comma by default in the formatter
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Operator call corresponds to a dot-qualified call 'w?.x.compareTo(42)' which is not allowed on a nullable receiver 'w?.x'.
|
||||
|
||||
class Wrapper(val x: Int)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// ACTION: Add non-null asserted (!!) call
|
||||
// ACTION: Flip '>='
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Operator call corresponds to a dot-qualified call 'w?.x.compareTo(42)' which is not allowed on a nullable receiver 'w?.x'.
|
||||
|
||||
class Wrapper(val x: Int)
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// "Change return type of called function 'AA.contains' to 'Int'" "false"
|
||||
// ACTION: Change return type of enclosing function 'AAA.g' to 'Boolean'
|
||||
// ACTION: Replace overloaded operator with function call
|
||||
// ACTION: Expand boolean expression to 'if else'
|
||||
// ERROR: Type mismatch: inferred type is Boolean but Int was expected
|
||||
interface A {
|
||||
operator fun contains(i: Int): Boolean
|
||||
|
||||
Reference in New Issue
Block a user