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,14 +628,10 @@ 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()
}
} }
override fun visitEmptyClassBody(emptyClassBody: JKEmptyClassBody) {} override fun visitEmptyClassBody(emptyClassBody: JKEmptyClassBody) {}