New J2K: Fix package statement position

This commit is contained in:
Ilya Kirillov
2018-11-22 00:24:53 +03:00
committed by Ilya Kirillov
parent e1108e1764
commit bb2c32a402
@@ -117,12 +117,15 @@ class NewCodeBuilder {
} }
override fun visitFile(file: JKFile) { override fun visitFile(file: JKFile) {
file.declarationList.find { it is JKPackageDeclaration }?.accept(this)
val collectImportsVisitor = CollectImportsVisitor() val collectImportsVisitor = CollectImportsVisitor()
file.accept(collectImportsVisitor) file.accept(collectImportsVisitor)
collectImportsVisitor.collectedFqNames.forEach { collectImportsVisitor.collectedFqNames.forEach {
printer.printlnWithNoIndent("import ", it.asString()) printer.printlnWithNoIndent("import ", it.asString())
} }
file.acceptChildren(this) file.declarationList.forEach {
if (it !is JKPackageDeclaration) it.accept(this)
}
} }
override fun visitPackageDeclaration(packageDeclaration: JKPackageDeclaration) { override fun visitPackageDeclaration(packageDeclaration: JKPackageDeclaration) {
@@ -625,13 +628,9 @@ class NewCodeBuilder {
override fun visitClassBody(classBody: JKClassBody) { override fun visitClassBody(classBody: JKClassBody) {
val declarationsToPrint = classBody.declarations.filterNot { it is JKKtPrimaryConstructor } val declarationsToPrint = classBody.declarations.filterNot { it is JKKtPrimaryConstructor }
if (declarationsToPrint.isNotEmpty()) { printer.block(multiline = true) {
printer.block(multiline = true) { renderEnumConstants(declarationsToPrint.filterIsInstance())
renderEnumConstants(declarationsToPrint.filterIsInstance()) renderNonEnumClassDeclarations(declarationsToPrint.filterNot { it is JKEnumConstant })
renderNonEnumClassDeclarations(declarationsToPrint.filterNot { it is JKEnumConstant })
}
} else {
printer.println()
} }
} }