"Override members": add semicolon between enum entry and function

#KT-31139 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-09-12 19:20:28 +09:00
committed by Dmitry Gridin
parent 7fcca71b4b
commit 748e458ad7
10 changed files with 62 additions and 2 deletions
@@ -68,8 +68,15 @@ private class Visitor(var range: TextRange) : KtTreeVisitorVoid() {
if (lastEntry == null && classBody.containsToken(KtTokens.SEMICOLON)) return
val semicolon = psiFactory.createSemicolon()
classBody.addAfter(semicolon, lastEntry)
delta += semicolon.textLength
delta += if (lastEntry != null) {
classBody.addAfter(semicolon, lastEntry)
semicolon.textLength
} else {
val newLine = psiFactory.createNewLine()
classBody.addAfter(semicolon, classBody.lBrace)
classBody.addAfter(psiFactory.createNewLine(), classBody.lBrace)
semicolon.textLength + newLine.textLength
}
}
range = TextRange(range.startOffset, range.endOffset + delta)
@@ -0,0 +1 @@
enum <caret>class Foo
@@ -0,0 +1,7 @@
enum class Foo {
;
override fun toString(): String {
<selection><caret>return super.toString()</selection>
}
}
@@ -0,0 +1,2 @@
enum <caret>class Foo {
}
@@ -0,0 +1,7 @@
enum class Foo {
;
override fun toString(): String {
<selection><caret>return super.toString()</selection>
}
}
@@ -0,0 +1,3 @@
enum <caret>class Foo {
A
}
@@ -0,0 +1,7 @@
enum class Foo {
A;
override fun toString(): String {
<selection><caret>return super.toString()</selection>
}
}
@@ -0,0 +1,3 @@
enum <caret>class Foo {
A;
}
@@ -0,0 +1,7 @@
enum class Foo {
A;
override fun toString(): String {
<selection><caret>return super.toString()</selection>
}
}
@@ -313,4 +313,20 @@ class OverrideImplementTest : AbstractOverrideImplementTest() {
fun testImplementFromClassName6() {
doMultiImplementFileTest()
}
fun testEnumClass() {
doOverrideFileTest("toString")
}
fun testEnumClass2() {
doOverrideFileTest("toString")
}
fun testEnumClass3() {
doOverrideFileTest("toString")
}
fun testEnumClass4() {
doOverrideFileTest("toString")
}
}