From 4f27dd63b5362147473fce0d352d8e60dde4ccf7 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 24 Jun 2014 11:31:34 +0400 Subject: [PATCH] Java to Kotlin converter: minor code corrections after review --- j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt | 28 ++++++++++++-------- j2k/src/org/jetbrains/jet/j2k/Converter.kt | 6 ++--- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt index 3927e0725ab..e4f9e98a417 100644 --- a/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt +++ b/j2k/src/org/jetbrains/jet/j2k/CodeBuilder.kt @@ -51,7 +51,13 @@ class CodeBuilder(private val topElement: PsiElement?) { private val commentsAndSpacesUsed = HashSet() - public fun append(text: String, endOfLineComment: Boolean = false): CodeBuilder { + public fun append(text: String): CodeBuilder + = append(text, false) + + private fun appendCommentOrWhiteSpace(element: PsiElement) + = append(element.getText()!!, element.isEndOfLineComment()) + + private fun append(text: String, endOfLineComment: Boolean = false): CodeBuilder { if (text.isEmpty()) { assert(!endOfLineComment) return this @@ -78,8 +84,8 @@ class CodeBuilder(private val topElement: PsiElement?) { return this } - val prefixElements = ArrayList(2) - val postfixElements = ArrayList(2) + val prefixElements = ArrayList(1) + val postfixElements = ArrayList(1) for ((prototype, inheritBlankLinesBefore) in element.prototypes) { assert(prototype !is PsiComment) assert(prototype !is PsiWhiteSpace) @@ -95,11 +101,11 @@ class CodeBuilder(private val topElement: PsiElement?) { val e = prefixElements[i] if (i == 0 && e is PsiWhiteSpace) { if (e.newLinesCount() > 1) { // insert at maximum one blank line - append("\n") + append("\n", false) } } else { - append(e.getText()!!, e.isEndOfLineComment()) + appendCommentOrWhiteSpace(e) } } @@ -110,21 +116,21 @@ class CodeBuilder(private val topElement: PsiElement?) { prototype.accept(object : JavaRecursiveElementVisitor(){ override fun visitComment(comment: PsiComment) { if (commentsAndSpacesUsed.add(comment)) { - append(comment.getText()!!, comment.isEndOfLineComment()) + appendCommentOrWhiteSpace(comment) } } }) } - postfixElements.forEach { append(it.getText()!!, it.isEndOfLineComment()) } + postfixElements.forEach { appendCommentOrWhiteSpace(it) } return this } private fun MutableList.collectPrefixElements(element: PsiElement, allowBlankLinesBefore: Boolean) { - val atStart = ArrayList(2).collectCommentsAndSpacesAtStart(element) + val atStart = ArrayList(1).collectCommentsAndSpacesAtStart(element) - val before = ArrayList(2).collectCommentsAndSpacesBefore(element) + val before = ArrayList(1).collectCommentsAndSpacesBefore(element) if (!allowBlankLinesBefore && before.lastOrNull() is PsiWhiteSpace) { before.remove(before.size - 1) } @@ -134,9 +140,9 @@ class CodeBuilder(private val topElement: PsiElement?) { } private fun MutableList.collectPostfixElements(element: PsiElement) { - val atEnd = ArrayList(2).collectCommentsAndSpacesAtEnd(element) + val atEnd = ArrayList(1).collectCommentsAndSpacesAtEnd(element) - val after = ArrayList(2).collectCommentsAndSpacesAfter(element) + val after = ArrayList(1).collectCommentsAndSpacesAfter(element) if (after.isNotEmpty()) { val last = after.last() if (last is PsiWhiteSpace) { diff --git a/j2k/src/org/jetbrains/jet/j2k/Converter.kt b/j2k/src/org/jetbrains/jet/j2k/Converter.kt index b33d95ba986..34e60bd3847 100644 --- a/j2k/src/org/jetbrains/jet/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/jet/j2k/Converter.kt @@ -315,12 +315,10 @@ public class Converter private(val project: Project, val settings: ConverterSett parent.getOperationSign().getTokenType() == JavaTokenType.EQ && isQualifierEmptyOrThis(write)) { val constructor = write.getContainingConstructor() - if (constructor != null && + return constructor != null && constructor.getContainingClass() == containingClass && parent.getParent() is PsiExpressionStatement && - parent.getParent()?.getParent() == constructor.getBody()) { - return true - } + parent.getParent()?.getParent() == constructor.getBody() } return false }