diff --git a/src/org/jetbrains/jet/j2k/ast/File.java b/src/org/jetbrains/jet/j2k/ast/File.java index c3d924a569d..da873d9419b 100644 --- a/src/org/jetbrains/jet/j2k/ast/File.java +++ b/src/org/jetbrains/jet/j2k/ast/File.java @@ -22,9 +22,11 @@ public class File extends Node { @NotNull @Override public String toKotlin() { + final String common = AstUtil.joinNodes(myImports, N) + N2 + AstUtil.joinNodes(myClasses, N) + N; + if (myPackageName.isEmpty()) + return common; return "namespace" + SPACE + myPackageName + SPACE + "{" + N + - AstUtil.joinNodes(myImports, N) + N2 + - AstUtil.joinNodes(myClasses, N) + N + + common + "}"; } } diff --git a/test/org/jetbrains/jet/j2k/JavaToKotlinConverterTest.java b/test/org/jetbrains/jet/j2k/JavaToKotlinConverterTest.java index 7c91759fc90..51cb41ace6b 100644 --- a/test/org/jetbrains/jet/j2k/JavaToKotlinConverterTest.java +++ b/test/org/jetbrains/jet/j2k/JavaToKotlinConverterTest.java @@ -44,7 +44,7 @@ public class JavaToKotlinConverterTest extends LightDaemonAnalyzerTestCase { if (javaFile.getParent().endsWith("/expression")) actual = expressionToKotlin(javaCode); else if (javaFile.getParent().endsWith("/statement")) actual = statementToKotlin(javaCode); else if (javaFile.getParent().endsWith("/method")) actual = methodToKotlin(javaCode); - else if (javaFile.getParent().endsWith("/class")) actual = classToKotlin(javaCode); + else if (javaFile.getParent().endsWith("/class")) actual = fileToKotlin(javaCode); else if (javaFile.getParent().endsWith("/file")) actual = fileToKotlin(javaCode); assert !actual.equals("") : "Specify what is it: file, class, method, statement or expression"; @@ -100,25 +100,15 @@ public class JavaToKotlinConverterTest extends LightDaemonAnalyzerTestCase { configureFromFileText("test.java", text); } + @NotNull protected String fileToKotlin(String text) throws IOException { configureFromText(text); return prettify(Converter.fileToFile((PsiJavaFile) myFile).toKotlin()); } - @NotNull - protected String classToKotlin(String text) throws IOException { - configureFromText(text); - - PsiJavaFile javaFile = (PsiJavaFile) myFile; - - String result = prettify(Converter.fileToFile(javaFile).toKotlin()).replaceAll("namespace \\{", ""); - result = result.substring(0, result.lastIndexOf("}")); - return prettify(result); - } - @NotNull protected String methodToKotlin(String text) throws IOException { - String result = classToKotlin("final class C {" + text + "}") + String result = fileToKotlin("final class C {" + text + "}") .replaceAll("class C\\(\\) \\{", ""); result = result.substring(0, result.lastIndexOf("}")); return prettify(result); diff --git a/testData/ast/callChainExpression/file/libraryFieldCall.kt b/testData/ast/callChainExpression/file/libraryFieldCall.kt index a2964383fe6..868d83f109a 100644 --- a/testData/ast/callChainExpression/file/libraryFieldCall.kt +++ b/testData/ast/callChainExpression/file/libraryFieldCall.kt @@ -1,4 +1,3 @@ -namespace { open class Library() { class object { val ourOut : PrintStream? @@ -8,5 +7,4 @@ open class User() { open fun main() : Unit { Library.ourOut?.print() } -} } \ No newline at end of file diff --git a/testData/ast/callChainExpression/file/libraryMethodCall.kt b/testData/ast/callChainExpression/file/libraryMethodCall.kt index 6edfbe4c62e..3c0ee4c68a4 100644 --- a/testData/ast/callChainExpression/file/libraryMethodCall.kt +++ b/testData/ast/callChainExpression/file/libraryMethodCall.kt @@ -1,4 +1,3 @@ -namespace { open class Library() { class object { open fun call() : Unit { @@ -13,5 +12,4 @@ open fun main() : Unit { Library.call() Library.getString()?.isEmpty() } -} } \ No newline at end of file diff --git a/testData/ast/callChainExpression/file/libraryMethodCallFromInstance.kt b/testData/ast/callChainExpression/file/libraryMethodCallFromInstance.kt index c51089095b2..b8a02f01152 100644 --- a/testData/ast/callChainExpression/file/libraryMethodCallFromInstance.kt +++ b/testData/ast/callChainExpression/file/libraryMethodCallFromInstance.kt @@ -1,4 +1,3 @@ -namespace { open class Library() { open fun call() : Unit { } @@ -14,5 +13,4 @@ lib?.getString()?.isEmpty() Library().call() Library().getString()?.isEmpty() } -} } \ No newline at end of file diff --git a/testData/ast/callChainExpression/file/libraryStringFieldCall.kt b/testData/ast/callChainExpression/file/libraryStringFieldCall.kt index 5a349644206..bced464f750 100644 --- a/testData/ast/callChainExpression/file/libraryStringFieldCall.kt +++ b/testData/ast/callChainExpression/file/libraryStringFieldCall.kt @@ -1,4 +1,3 @@ -namespace { open class Library() { public val myString : String? } @@ -6,5 +5,4 @@ open class User() { open fun main() : Unit { Library.myString?.isEmpty() } -} } \ No newline at end of file diff --git a/testData/ast/class/file/privateInit.kt b/testData/ast/class/file/privateInit.kt index 9b62ed9464a..30b43c541d0 100644 --- a/testData/ast/class/file/privateInit.kt +++ b/testData/ast/class/file/privateInit.kt @@ -1,6 +1,4 @@ -namespace { public open class MyClass() { open private fun init(arg1 : Int, arg2 : Int, arg3 : Int) : Unit { } -} } \ No newline at end of file diff --git a/testData/ast/file/file/packageWithClasses.kt b/testData/ast/file/file/packageWithClasses.kt index cee28676b2a..4ed94efde09 100644 --- a/testData/ast/file/file/packageWithClasses.kt +++ b/testData/ast/file/file/packageWithClasses.kt @@ -1,6 +1,4 @@ -namespace { class A() { } class B() { -} } \ No newline at end of file diff --git a/testData/ast/function/file/override.kt b/testData/ast/function/file/override.kt index 3e876fa6a4e..7a355e48c06 100644 --- a/testData/ast/function/file/override.kt +++ b/testData/ast/function/file/override.kt @@ -1,4 +1,3 @@ -namespace { open class A() { open fun a() : Unit { } @@ -6,5 +5,4 @@ open fun a() : Unit { class B() : A { override fun a() : Unit { } -} } \ No newline at end of file diff --git a/testData/ast/function/file/overrideAndOpen.kt b/testData/ast/function/file/overrideAndOpen.kt index 9d8da0fbbbb..ee0eca7b214 100644 --- a/testData/ast/function/file/overrideAndOpen.kt +++ b/testData/ast/function/file/overrideAndOpen.kt @@ -1,4 +1,3 @@ -namespace { open class A() { open fun foo() : Unit { } @@ -10,5 +9,4 @@ override fun foo() : Unit { open class C() : B { override fun foo() : Unit { } -} } \ No newline at end of file diff --git a/testData/ast/superExpression/file/classAdotSuperFoo.kt b/testData/ast/superExpression/file/classAdotSuperFoo.kt index 09bf6db3f67..bdff091103c 100644 --- a/testData/ast/superExpression/file/classAdotSuperFoo.kt +++ b/testData/ast/superExpression/file/classAdotSuperFoo.kt @@ -1,4 +1,3 @@ -namespace { open class Base() { open fun foo() : Unit } @@ -8,5 +7,4 @@ open fun test() : Unit { super@A.foo() } } -} } \ No newline at end of file diff --git a/testData/ast/thisExpression/file/classAdotThisFoo.kt b/testData/ast/thisExpression/file/classAdotThisFoo.kt index 201ba4f7bd7..92197edc7c6 100644 --- a/testData/ast/thisExpression/file/classAdotThisFoo.kt +++ b/testData/ast/thisExpression/file/classAdotThisFoo.kt @@ -1,4 +1,3 @@ -namespace { open class Base() { open fun foo() : Unit { } @@ -9,5 +8,4 @@ open fun test() : Unit { this@A.foo() } } -} } \ No newline at end of file