More accurate deparenthesize (keeping annotations) in some IDE actions

So #KT-19004 Fixed
This commit is contained in:
Mikhail Glukhikh
2017-07-20 14:51:44 +03:00
parent 7fb78a0372
commit e6872c52a3
15 changed files with 132 additions and 9 deletions
@@ -0,0 +1,13 @@
// WITH_RUNTIME
fun foo(a: Any) {
<caret>if (a == "") {
println(a)
}
else if (a is String) {
println(a)
}
else if (a is List<*>) {
@Suppress("UNCHECKED_CAST")
println(a as List<String>)
}
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
fun foo(a: Any) {
when (a) {
"" -> println(a)
is String -> println(a)
is List<*> -> @Suppress("UNCHECKED_CAST")
println(a as List<String>)
}
}
@@ -0,0 +1,6 @@
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun foo(arg: String?) {
(@Ann arg)<caret>!!
}
@@ -0,0 +1,6 @@
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun foo(arg: String?) {
if (@Ann arg == null) throw NullPointerException("Expression '@Ann arg' must not be null")
}
@@ -0,0 +1,15 @@
var b = true
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun println(s: String) {}
fun foo() {
<caret>if (@Ann b) {
println("!")
}
else {
println("")
}
}
@@ -0,0 +1,13 @@
var b = true
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun println(s: String) {}
fun foo() {
when {
@Ann b -> println("!")
else -> println("")
}
}
@@ -0,0 +1,10 @@
var b = true
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun foo() {
if (@Ann <caret>b == true) {
}
}
@@ -0,0 +1,10 @@
var b = true
@Target(AnnotationTarget.EXPRESSION)
annotation class Ann
fun foo() {
if (@Ann <caret>b) {
}
}