From 6ea6e4ab9852399cf627444b55d83e2ff6d744b4 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Sat, 24 Dec 2016 22:45:08 +0300 Subject: [PATCH] KJS: move println to kotlin.io; import kotlin.io by default in Default platform --- .../resolve/jvm/platform/JvmPlatform.kt | 1 - .../kotlin/resolve/TargetPlatform.kt | 1 + .../navigation/NavigateToStdlibSourceTest.kt | 4 +- .../lookupTracker/classifierMembers/foo.kt | 10 +-- .../lookupTracker/classifierMembers/usages.kt | 18 ++--- .../conventions/delegateProperty.kt | 4 +- .../conventions/mathematicalLike.kt | 8 +- .../expressionType/inferredType.kt | 4 +- .../incremental/lookupTracker/java/usages.kt | 22 +++--- .../lookupTracker/packageDeclarations/foo1.kt | 6 +- .../syntheticProperties/usages.kt | 14 ++-- js/js.libraries/src/core/console.kt | 76 ++++++++++++------- js/js.libraries/src/core/core.kt | 9 --- js/js.libraries/src/js/kotlin_lib.js | 8 -- .../test/rhino/RhinoSystemOutputChecker.java | 4 +- .../kotlin/js/test/rhino/RhinoUtils.java | 11 ++- .../kotlin/js/facade/K2JSTranslator.java | 3 - js/js.translator/testData/box/native/print.js | 1 + js/js.translator/testData/box/native/print.kt | 12 +-- 19 files changed, 112 insertions(+), 104 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt index bec71168e1d..f079eddab16 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt @@ -29,7 +29,6 @@ object JvmPlatform : TargetPlatform("JVM") { add(ImportPath("java.lang.*")) add(ImportPath("kotlin.jvm.*")) - add(ImportPath("kotlin.io.*")) fun addAllClassifiersFromScope(scope: MemberScope) { for (descriptor in scope.getContributedDescriptors(DescriptorKindFilter.CLASSIFIERS, MemberScope.ALL_NAME_FILTER)) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 4d907442565..06979814e2a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -45,6 +45,7 @@ abstract class TargetPlatform(val platformName: String) { add(ImportPath("kotlin.ranges.*")) add(ImportPath("kotlin.sequences.*")) add(ImportPath("kotlin.text.*")) + add(ImportPath("kotlin.io.*")) } override val platformConfigurator = diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToStdlibSourceTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToStdlibSourceTest.kt index 3c7d079a661..bc6d26dda4c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToStdlibSourceTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToStdlibSourceTest.kt @@ -37,11 +37,11 @@ class NavigateToStdlibSourceTest : KotlinCodeInsightTestCase() { } fun testRefToPrintlnWithJS() { - doTest("core.kt", ModuleKind.KOTLIN_JAVASCRIPT) + doTest("console.kt", ModuleKind.KOTLIN_JAVASCRIPT) } fun testRefToPrintlnWithJSAndJVM() { - doTest("core.kt", ModuleKind.KOTLIN_JAVASCRIPT, ModuleKind.KOTLIN_JVM_WITH_STDLIB_SOURCES) + doTest("console.kt", ModuleKind.KOTLIN_JAVASCRIPT, ModuleKind.KOTLIN_JVM_WITH_STDLIB_SOURCES) } private fun doTest(sourceFileName: String, mainModule: ModuleKind, additionalModule: ModuleKind? = null) { diff --git a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt index 97a888a3418..2ead2958fd8 100644 --- a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt +++ b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt @@ -18,9 +18,9 @@ import bar.* /*c:foo.A*/foo() /*p:foo(A) p:kotlin(Int)*/this./*c:foo.A*/a /*p:foo(A)*/this./*c:foo.A*/foo() - /*c:foo.A c:foo.A(getBaz) c:foo.A(getBAZ) c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/baz() - /*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(Int)*/Companion./*c:foo.A.Companion*/a - /*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(String)*/O./*c:foo.A.O*/v = /*p:kotlin(String)*/"OK" + /*c:foo.A c:foo.A(getBaz) c:foo.A(getBAZ) c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/baz() + /*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(Int)*/Companion./*c:foo.A.Companion*/a + /*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(String)*/O./*c:foo.A.O*/v = /*p:kotlin(String)*/"OK" } class B { @@ -64,8 +64,8 @@ import bar.* val a = /*p:kotlin(Int)*/1 fun foo() { /*c:foo.E p:kotlin(Int)*/a - /*c:foo.E p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(Int)*/Y./*c:foo.E*/a + /*c:foo.E p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(Int)*/Y./*c:foo.E*/a /*c:foo.E*/foo() - /*c:foo.E p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/X./*c:foo.E*/foo() + /*c:foo.E p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/X./*c:foo.E*/foo() } } diff --git a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt index 24f571473f3..3e5c2a88daa 100644 --- a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt +++ b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt @@ -18,8 +18,8 @@ import bar.* /*p:foo*/A./*c:foo.A*/Companion./*c:foo.A.Companion*/baz() /*p:foo c:foo.A(O)*/A./*c:foo.A.Companion c:foo.A*/O /*p:foo p:kotlin(String)*/A./*c:foo.A*/O./*c:foo.A.O*/v = /*p:kotlin(String)*/"OK" - /*p:foo*/A./*c:foo.A.Companion c:foo.A c:foo.A.Companion(getVala) c:foo.A.Companion(getVALA) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/vala - /*p:foo*/A./*c:foo.A c:foo.A.Companion c:foo.A.Companion(getVara) c:foo.A.Companion(getVARA) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/vara() + /*p:foo*/A./*c:foo.A.Companion c:foo.A c:foo.A.Companion(getVala) c:foo.A.Companion(getVALA) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/vala + /*p:foo*/A./*c:foo.A c:foo.A.Companion c:foo.A.Companion(getVara) c:foo.A.Companion(getVARA) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/vara() /*p:foo(I) p:kotlin(Int)*/i./*c:foo.I*/a = /*p:kotlin(Int)*/2 /*p:foo p:kotlin(Int)*/Obj./*c:foo.Obj*/a @@ -31,13 +31,13 @@ import bar.* val iii = /*p:foo p:foo(I)*/Obj./*c:foo.Obj*/bar() /*p:foo(I)*/iii./*c:foo.I*/foo() - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/X - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(Int)*/E./*c:foo.E*/X./*c:foo.E*/a - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/Y./*c:foo.E*/foo() - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(Array)*/E./*c:foo.E*/values() - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/valueOf(/*p:kotlin(String)*/"") - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/foo - /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/bar() + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:foo.E*/X + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(Int)*/E./*c:foo.E*/X./*c:foo.E*/a + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:foo.E*/Y./*c:foo.E*/foo() + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(Array)*/E./*c:foo.E*/values() + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:foo.E*/valueOf(/*p:kotlin(String)*/"") + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:foo.E*/foo + /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:foo.E*/bar() } /*p:foo*/fun classifiers( diff --git a/jps-plugin/testData/incremental/lookupTracker/conventions/delegateProperty.kt b/jps-plugin/testData/incremental/lookupTracker/conventions/delegateProperty.kt index 2ce83a59781..2cc7762c327 100644 --- a/jps-plugin/testData/incremental/lookupTracker/conventions/delegateProperty.kt +++ b/jps-plugin/testData/incremental/lookupTracker/conventions/delegateProperty.kt @@ -20,8 +20,8 @@ import kotlin.reflect./*p:kotlin.reflect*/KProperty } -/*p:foo.bar*/val x1 by /*p:foo.bar c:foo.bar.D1(provideDelegate) c:foo.bar.D1(getProvideDelegate) c:foo.bar.D1(getPROVIDEDelegate) p:foo.bar(provideDelegate) p:kotlin(provideDelegate) p:kotlin.annotation(provideDelegate) p:kotlin.collections(provideDelegate) p:kotlin.ranges(provideDelegate) p:kotlin.sequences(provideDelegate) p:kotlin.text(provideDelegate) p:java.lang(provideDelegate) p:kotlin.jvm(provideDelegate) p:kotlin.io(provideDelegate) c:foo.bar.D1(getValue)*/D1() -/*p:foo.bar*/var y1 by /*p:foo.bar c:foo.bar.D1(provideDelegate) c:foo.bar.D1(getProvideDelegate) c:foo.bar.D1(getPROVIDEDelegate) p:foo.bar(provideDelegate) p:kotlin(provideDelegate) p:kotlin.annotation(provideDelegate) p:kotlin.collections(provideDelegate) p:kotlin.ranges(provideDelegate) p:kotlin.sequences(provideDelegate) p:kotlin.text(provideDelegate) p:java.lang(provideDelegate) p:kotlin.jvm(provideDelegate) p:kotlin.io(provideDelegate) c:foo.bar.D1(getValue) c:foo.bar.D1(setValue) c:foo.bar.D1(getSetValue) c:foo.bar.D1(getSETValue) p:foo.bar(setValue)*/D1() +/*p:foo.bar*/val x1 by /*p:foo.bar c:foo.bar.D1(provideDelegate) c:foo.bar.D1(getProvideDelegate) c:foo.bar.D1(getPROVIDEDelegate) p:foo.bar(provideDelegate) p:kotlin(provideDelegate) p:kotlin.annotation(provideDelegate) p:kotlin.collections(provideDelegate) p:kotlin.ranges(provideDelegate) p:kotlin.sequences(provideDelegate) p:kotlin.text(provideDelegate) p:kotlin.io(provideDelegate) p:java.lang(provideDelegate) p:kotlin.jvm(provideDelegate) c:foo.bar.D1(getValue)*/D1() +/*p:foo.bar*/var y1 by /*p:foo.bar c:foo.bar.D1(provideDelegate) c:foo.bar.D1(getProvideDelegate) c:foo.bar.D1(getPROVIDEDelegate) p:foo.bar(provideDelegate) p:kotlin(provideDelegate) p:kotlin.annotation(provideDelegate) p:kotlin.collections(provideDelegate) p:kotlin.ranges(provideDelegate) p:kotlin.sequences(provideDelegate) p:kotlin.text(provideDelegate) p:kotlin.io(provideDelegate) p:java.lang(provideDelegate) p:kotlin.jvm(provideDelegate) c:foo.bar.D1(getValue) c:foo.bar.D1(setValue) c:foo.bar.D1(getSetValue) c:foo.bar.D1(getSETValue) p:foo.bar(setValue)*/D1() /*p:foo.bar*/val x2 by /*p:foo.bar c:foo.bar.D2(provideDelegate) c:foo.bar.D2(getProvideDelegate) c:foo.bar.D2(getPROVIDEDelegate) p:foo.bar(provideDelegate) c:foo.bar.D2(getValue) c:foo.bar.D2(getGetValue) c:foo.bar.D2(getGETValue) p:foo.bar(getValue)*/D2() /*p:foo.bar*/var y2 by /*p:foo.bar c:foo.bar.D2(provideDelegate) c:foo.bar.D2(getProvideDelegate) c:foo.bar.D2(getPROVIDEDelegate) p:foo.bar(provideDelegate) c:foo.bar.D2(getValue) c:foo.bar.D2(getGetValue) c:foo.bar.D2(getGETValue) p:foo.bar(getValue) c:foo.bar.D2(setValue)*/D2() diff --git a/jps-plugin/testData/incremental/lookupTracker/conventions/mathematicalLike.kt b/jps-plugin/testData/incremental/lookupTracker/conventions/mathematicalLike.kt index e5d11c6df21..db09b619fef 100644 --- a/jps-plugin/testData/incremental/lookupTracker/conventions/mathematicalLike.kt +++ b/jps-plugin/testData/incremental/lookupTracker/conventions/mathematicalLike.kt @@ -17,8 +17,8 @@ package foo.bar /*p:foo.bar(A)*/a /*c:foo.bar.A(divAssign) c:foo.bar.A(getDivAssign) c:foo.bar.A(getDIVAssign) p:foo.bar(divAssign)*//= /*p:kotlin(Int)*/b // for var - /*p:foo.bar(A)*/d /*c:foo.bar.A(plusAssign) c:foo.bar.A(getPlusAssign) c:foo.bar.A(getPLUSAssign) p:foo.bar(plusAssign) p:kotlin(plusAssign) p:kotlin.annotation(plusAssign) p:kotlin.collections(plusAssign) p:kotlin.ranges(plusAssign) p:kotlin.sequences(plusAssign) p:kotlin.text(plusAssign) p:java.lang(plusAssign) p:kotlin.jvm(plusAssign) p:kotlin.io(plusAssign) c:foo.bar.A(plus)*/+= /*p:kotlin(Int)*/b - /*p:foo.bar(A)*/d /*c:foo.bar.A(minusAssign) c:foo.bar.A(getMinusAssign) c:foo.bar.A(getMINUSAssign) p:foo.bar(minusAssign) p:kotlin(minusAssign) p:kotlin.annotation(minusAssign) p:kotlin.collections(minusAssign) p:kotlin.ranges(minusAssign) p:kotlin.sequences(minusAssign) p:kotlin.text(minusAssign) p:java.lang(minusAssign) p:kotlin.jvm(minusAssign) p:kotlin.io(minusAssign) c:foo.bar.A(minus) c:foo.bar.A(getMinus) c:foo.bar.A(getMINUS) p:foo.bar(minus)*/-= /*p:kotlin(Int)*/b - /*p:foo.bar(A)*/d /*c:foo.bar.A(timesAssign) c:foo.bar.A(times) c:foo.bar.A(getTimes) c:foo.bar.A(getTIMES) p:foo.bar(times) p:kotlin(times) p:kotlin.annotation(times) p:kotlin.collections(times) p:kotlin.ranges(times) p:kotlin.sequences(times) p:kotlin.text(times) p:java.lang(times) p:kotlin.jvm(times) p:kotlin.io(times)*/*= /*p:kotlin(Int)*/b - /*p:foo.bar(A)*/d /*c:foo.bar.A(divAssign) c:foo.bar.A(getDivAssign) c:foo.bar.A(getDIVAssign) p:foo.bar(divAssign) c:foo.bar.A(div) c:foo.bar.A(getDiv) c:foo.bar.A(getDIV) p:foo.bar(div) p:kotlin(div) p:kotlin.annotation(div) p:kotlin.collections(div) p:kotlin.ranges(div) p:kotlin.sequences(div) p:kotlin.text(div) p:java.lang(div) p:kotlin.jvm(div) p:kotlin.io(div)*//= /*p:kotlin(Int)*/b + /*p:foo.bar(A)*/d /*c:foo.bar.A(plusAssign) c:foo.bar.A(getPlusAssign) c:foo.bar.A(getPLUSAssign) p:foo.bar(plusAssign) p:kotlin(plusAssign) p:kotlin.annotation(plusAssign) p:kotlin.collections(plusAssign) p:kotlin.ranges(plusAssign) p:kotlin.sequences(plusAssign) p:kotlin.text(plusAssign) p:kotlin.io(plusAssign) p:java.lang(plusAssign) p:kotlin.jvm(plusAssign) c:foo.bar.A(plus)*/+= /*p:kotlin(Int)*/b + /*p:foo.bar(A)*/d /*c:foo.bar.A(minusAssign) c:foo.bar.A(getMinusAssign) c:foo.bar.A(getMINUSAssign) p:foo.bar(minusAssign) p:kotlin(minusAssign) p:kotlin.annotation(minusAssign) p:kotlin.collections(minusAssign) p:kotlin.ranges(minusAssign) p:kotlin.sequences(minusAssign) p:kotlin.text(minusAssign) p:kotlin.io(minusAssign) p:java.lang(minusAssign) p:kotlin.jvm(minusAssign) c:foo.bar.A(minus) c:foo.bar.A(getMinus) c:foo.bar.A(getMINUS) p:foo.bar(minus)*/-= /*p:kotlin(Int)*/b + /*p:foo.bar(A)*/d /*c:foo.bar.A(timesAssign) c:foo.bar.A(times) c:foo.bar.A(getTimes) c:foo.bar.A(getTIMES) p:foo.bar(times) p:kotlin(times) p:kotlin.annotation(times) p:kotlin.collections(times) p:kotlin.ranges(times) p:kotlin.sequences(times) p:kotlin.text(times) p:kotlin.io(times) p:java.lang(times) p:kotlin.jvm(times)*/*= /*p:kotlin(Int)*/b + /*p:foo.bar(A)*/d /*c:foo.bar.A(divAssign) c:foo.bar.A(getDivAssign) c:foo.bar.A(getDIVAssign) p:foo.bar(divAssign) c:foo.bar.A(div) c:foo.bar.A(getDiv) c:foo.bar.A(getDIV) p:foo.bar(div) p:kotlin(div) p:kotlin.annotation(div) p:kotlin.collections(div) p:kotlin.ranges(div) p:kotlin.sequences(div) p:kotlin.text(div) p:kotlin.io(div) p:java.lang(div) p:kotlin.jvm(div)*//= /*p:kotlin(Int)*/b } diff --git a/jps-plugin/testData/incremental/lookupTracker/expressionType/inferredType.kt b/jps-plugin/testData/incremental/lookupTracker/expressionType/inferredType.kt index 58e483e5988..79cd22fc7b1 100644 --- a/jps-plugin/testData/incremental/lookupTracker/expressionType/inferredType.kt +++ b/jps-plugin/testData/incremental/lookupTracker/expressionType/inferredType.kt @@ -6,8 +6,8 @@ package foo /*p:foo*/fun getA() = /*p:foo*/A() /*p:foo*/fun getB() = /*p:foo*/B() -/*p:foo*/fun getListOfA() = /*p:foo p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin.collections(List) p:foo(A)*/listOf(/*p:foo*/A()) -/*p:foo*/fun getListOfB() = /*p:foo p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin.collections(List) p:foo(B)*/listOf(/*p:foo*/B()) +/*p:foo*/fun getListOfA() = /*p:foo p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin.collections(List) p:foo(A)*/listOf(/*p:foo*/A()) +/*p:foo*/fun getListOfB() = /*p:foo p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin.collections(List) p:foo(B)*/listOf(/*p:foo*/B()) /*p:foo*/fun useListOfA(a: /*p:foo*/List) {} /*p:foo*/fun useListOfB(b: /*p:foo*/List) {} diff --git a/jps-plugin/testData/incremental/lookupTracker/java/usages.kt b/jps-plugin/testData/incremental/lookupTracker/java/usages.kt index 47b6ca1eb83..37749d69847 100644 --- a/jps-plugin/testData/incremental/lookupTracker/java/usages.kt +++ b/jps-plugin/testData/incremental/lookupTracker/java/usages.kt @@ -11,27 +11,27 @@ import baz.* /*p:bar(C)*/c./*c:bar.C*/func() /*p:bar(C) c:bar.C(B)*/c./*c:bar.C*/B() - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(String)*/C./*c:bar.C*/sfield - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(String)*/C./*c:bar.C*/sfield = /*p:kotlin(String)*/"new" - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/sfunc() - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io c:bar.C(S)*/C./*c:bar.C*/S() + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(String)*/C./*c:bar.C*/sfield + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(String)*/C./*c:bar.C*/sfield = /*p:kotlin(String)*/"new" + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/C./*c:bar.C*/sfunc() + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm c:bar.C(S)*/C./*c:bar.C*/S() // inherited from I /*p:bar(C)*/c./*c:bar.C*/ifunc() - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(String)*/C./*c:bar.C*/isfield + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(String)*/C./*c:bar.C*/isfield // expected error: Unresolved reference: IS - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/IS() + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/C./*c:bar.C*/IS() val i: /*p:foo*/I = /*p:bar(C)*/c /*p:foo(I)*/i./*c:foo.I*/ifunc() - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(String)*/I./*c:foo.I*/isfield - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io c:foo.I(IS)*/I./*c:foo.I*/IS() + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(String)*/I./*c:foo.I*/isfield + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm c:foo.I(IS)*/I./*c:foo.I*/IS() - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/F - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:kotlin(Int)*/E./*c:baz.E*/F./*c:baz.E*/field - /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/S./*c:baz.E*/func() + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:baz.E*/F + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:kotlin(Int)*/E./*c:baz.E*/F./*c:baz.E*/field + /*p:foo p:baz p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/E./*c:baz.E*/S./*c:baz.E*/func() } /*p:foo*/fun classifiers( diff --git a/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt b/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt index 67c1b46dcbe..f90afa55617 100644 --- a/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt +++ b/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt @@ -4,7 +4,7 @@ import bar.* import baz./*p:baz*/C /*p:foo*/val a = /*p:foo p:bar*/A() -/*p:foo*/var b: /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/baz./*p:baz*/B = /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:baz(B)*/baz./*p:baz*/B() +/*p:foo*/var b: /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/baz./*p:baz*/B = /*p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:baz(B)*/baz./*p:baz*/B() /*p:foo*/fun function(p: /*p:foo p:bar*/B): /*p:foo p:bar*/B /*p:kotlin(Nothing)*/{ /*p:foo p:bar(A)*/a @@ -12,6 +12,6 @@ import baz./*p:baz*/C } /*p:foo*/fun /*p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:foo*/Array, e: /*p:foo*/MyEnum, c: /**???*/C): /*p:foo*/MyInterface /*p:kotlin(Nothing)*/{ - /*c:foo.MyClass c:foo.MyClass(getB) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io p:baz(B)*/b - /*p:kotlin(Nothing)*/return /*c:foo.MyClass p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/MyClass() + /*c:foo.MyClass c:foo.MyClass(getB) p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm p:baz(B)*/b + /*p:kotlin(Nothing)*/return /*c:foo.MyClass p:foo p:bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/MyClass() } diff --git a/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/usages.kt b/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/usages.kt index 56d26e3edb1..ccd908bb387 100644 --- a/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/usages.kt +++ b/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/usages.kt @@ -8,23 +8,23 @@ import foo./*p:foo*/KotlinClass val k = /*p:foo*/KotlinClass() /*p:(JavaClass) p:kotlin(Int)*/j./*c:JavaClass*/getFoo() - /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getSetFoo) c:JavaClass(getSETFoo) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/setFoo(2) + /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getSetFoo) c:JavaClass(getSETFoo) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/setFoo(2) /*p:(JavaClass) p:kotlin(Int)*/j./*c:JavaClass c:JavaClass(getFoo) c:JavaClass(getFOO) c:JavaClass(setFoo)*/foo = /*p:kotlin(Int)*/2 /*p:(JavaClass) p:kotlin(Int)*/j./*c:JavaClass c:JavaClass(getFoo) c:JavaClass(getFOO) c:JavaClass(setFoo)*/foo /*p:(JavaClass) p:kotlin(String)*/j./*c:JavaClass c:JavaClass(getBar) c:JavaClass(getBAR) c:JavaClass(setBar)*/bar /*p:(JavaClass) p:kotlin(String)*/j./*c:JavaClass c:JavaClass(getBar) c:JavaClass(getBAR) c:JavaClass(setBar)*/bar = /*p:kotlin(String)*/"" - /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/bazBaz - /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/bazBaz = /*p:kotlin(String)*/"" + /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/bazBaz + /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/bazBaz = /*p:kotlin(String)*/"" /*p:(JavaClass)*/j./*c:JavaClass*/setBoo(2) - /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBoo) c:JavaClass(getBOO) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io*/boo = /*p:kotlin(Int)*/2 + /*p:(JavaClass)*/j./*c:JavaClass c:JavaClass(getBoo) c:JavaClass(getBOO) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm*/boo = /*p:kotlin(Int)*/2 /*p:foo(KotlinClass) p:kotlin(Int)*/k./*c:foo.KotlinClass c:JavaClass*/getFoo() // getFoo may be an inner class in JavaClass /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:JavaClass*/setFoo(2) /*p:foo(KotlinClass) p:kotlin(Int)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getFoo) c:foo.KotlinClass(getFOO) c:foo.KotlinClass(setFoo)*/foo = /*p:kotlin(Int)*/2 /*p:foo(KotlinClass) p:kotlin(Int)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getFoo) c:foo.KotlinClass(getFOO) c:foo.KotlinClass(setFoo)*/foo /*p:foo(KotlinClass) p:kotlin(String)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBar) c:foo.KotlinClass(getBAR) c:foo.KotlinClass(setBar)*/bar /*p:foo(KotlinClass) p:kotlin(String)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBar) c:foo.KotlinClass(getBAR) c:foo.KotlinClass(setBar)*/bar = /*p:kotlin(String)*/"" - /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io c:JavaClass*/bazBaz - /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io c:JavaClass*/bazBaz = /*p:kotlin(String)*/"" + /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm c:JavaClass*/bazBaz + /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm c:JavaClass*/bazBaz = /*p:kotlin(String)*/"" /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:JavaClass*/setBoo(2) - /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBoo) c:foo.KotlinClass(getBOO) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:java.lang p:kotlin.jvm p:kotlin.io c:JavaClass*/boo = /*p:kotlin(Int)*/2 + /*p:foo(KotlinClass)*/k./*c:foo.KotlinClass c:foo.KotlinClass(getBoo) c:foo.KotlinClass(getBOO) p:foo.bar p:kotlin p:kotlin.annotation p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io p:java.lang p:kotlin.jvm c:JavaClass*/boo = /*p:kotlin(Int)*/2 } diff --git a/js/js.libraries/src/core/console.kt b/js/js.libraries/src/core/console.kt index 966312c80fe..d6088814564 100644 --- a/js/js.libraries/src/core/console.kt +++ b/js/js.libraries/src/core/console.kt @@ -14,45 +14,52 @@ * limitations under the License. */ -@JsName("BaseOutput") -internal abstract class BaseOutput { - @JsName("println") - open fun println(a: Any?) { - if (jsTypeOf(a) != "undefined") { - print(a) - } +package kotlin.io + +private abstract class BaseOutput { + open fun println() { print("\n") } - @JsName("print") - abstract fun print(a: Any?) + open fun println(message: Any?) { + print(message) + println() + } + + abstract fun print(message: Any?) - @JsName("flush") open fun flush() {} } +/** JsName used to make the declaration available outside of module to test it */ @JsName("NodeJsOutput") -internal class NodeJsOutput(val outputStream: dynamic) : BaseOutput() { - override fun print(a: dynamic) = outputStream.write(a) +private class NodeJsOutput(val outputStream: dynamic) : BaseOutput() { + override fun print(message: Any?) = outputStream.write(message) } +/** JsName used to make the declaration available outside of module to test it */ @JsName("OutputToConsoleLog") -internal class OutputToConsoleLog : BaseOutput() { - override fun print(a: Any?) { - console.log(a) +private class OutputToConsoleLog : BaseOutput() { + override fun print(message: Any?) { + console.log(message) } - override fun println(a: Any?) { - console.log(if (jsTypeOf(a) != "undefined") a else "") + override fun println(message: Any?) { + console.log(message) + } + + override fun println() { + console.log() } } +/** JsName used to make the declaration available outside of module to test it and use at try.kotl.in */ @JsName("BufferedOutput") -internal open class BufferedOutput : BaseOutput() { +private open class BufferedOutput : BaseOutput() { var buffer = "" - override fun print(a: Any?) { - buffer += String(a) + override fun print(message: Any?) { + buffer += String(message) } override fun flush() { @@ -60,10 +67,11 @@ internal open class BufferedOutput : BaseOutput() { } } +/** JsName used to make the declaration available outside of module to test it */ @JsName("BufferedOutputToConsoleLog") -internal class BufferedOutputToConsoleLog : BufferedOutput() { - override fun print(a: Any?) { - var s = String(a) +private class BufferedOutputToConsoleLog : BufferedOutput() { + override fun print(message: Any?) { + var s = String(message) val i = s.lastIndexOf('\n') if (i >= 0) { buffer += s.substring(0, i) @@ -79,10 +87,26 @@ internal class BufferedOutputToConsoleLog : BufferedOutput() { } } -@JsName("out") -internal var `out` = { +/** JsName used to make the declaration available outside of module to test it and use at try.kotl.in */ +@JsName("output") +private var output = run { val isNode: Boolean = js("typeof process !== 'undefined' && process.versions && !!process.versions.node") if (isNode) NodeJsOutput(js("process.stdout")) else BufferedOutputToConsoleLog() -}() +} private inline fun String(value: Any?): String = js("String")(value) + +/** Prints a newline to the standard output stream. */ +public fun println() { + output.println() +} + +/** Prints the given message and newline to the standard output stream. */ +public fun println(message: Any?) { + output.println(message) +} + +/** Prints the given message to the standard output stream. */ +public fun print(message: Any?) { + output.print(message) +} diff --git a/js/js.libraries/src/core/core.kt b/js/js.libraries/src/core/core.kt index 183e52c109d..20974d94d48 100644 --- a/js/js.libraries/src/core/core.kt +++ b/js/js.libraries/src/core/core.kt @@ -8,15 +8,6 @@ public external fun eval(expr: String): dynamic = noImpl public external val undefined: Nothing? = noImpl -@library -public fun println() {} - -@library -public fun println(s: Any?) {} - -@library -public fun print(s: Any?) {} - //TODO: consistent parseInt public external fun parseInt(s: String, radix: Int = noImpl): Int = noImpl diff --git a/js/js.libraries/src/js/kotlin_lib.js b/js/js.libraries/src/js/kotlin_lib.js index db2da145784..4a97b0c57ff 100644 --- a/js/js.libraries/src/js/kotlin_lib.js +++ b/js/js.libraries/src/js/kotlin_lib.js @@ -274,14 +274,6 @@ Kotlin.arrayDeepHashCode = function (arr) { return result; }; -Kotlin.println = function (s) { - Kotlin.out.println(s); -}; - -Kotlin.print = function (s) { - Kotlin.out.print(s); -}; - Kotlin.collectionsSort = function (mutableList, comparator) { var boundComparator = void 0; if (comparator !== void 0) { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoSystemOutputChecker.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoSystemOutputChecker.java index 7d0789a851f..89ebe9592ff 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoSystemOutputChecker.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoSystemOutputChecker.java @@ -17,10 +17,10 @@ package org.jetbrains.kotlin.js.test.rhino; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.js.facade.K2JSTranslator; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; +import static org.jetbrains.kotlin.js.test.rhino.RhinoUtils.GET_KOTLIN_OUTPUT; import static org.junit.Assert.assertTrue; public final class RhinoSystemOutputChecker implements RhinoResultChecker { @@ -44,7 +44,7 @@ public final class RhinoSystemOutputChecker implements RhinoResultChecker { @NotNull private static String getSystemOutput(@NotNull Context context, @NotNull Scriptable scope) { - Object output = context.evaluateString(scope, K2JSTranslator.GET_SYSTEM_OUT, "test", 0, null); + Object output = context.evaluateString(scope, GET_KOTLIN_OUTPUT, "test", 0, null); RhinoUtils.flushSystemOut(context, scope); assertTrue("Output should be a string.", output instanceof String); return (String) output; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java index 8d51c662057..0fc9da724e0 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java @@ -22,7 +22,6 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.js.config.EcmaVersion; -import org.jetbrains.kotlin.js.facade.K2JSTranslator; import org.jetbrains.kotlin.utils.ExceptionUtilsKt; import org.mozilla.javascript.*; @@ -47,7 +46,11 @@ public final class RhinoUtils { public static final int OPTIMIZATION_OFF = -1; - public static final int OPTIMIZATION_DEFAULT = 0; + private static final int OPTIMIZATION_DEFAULT = 0; + + private static final String SETUP_KOTLIN_OUTPUT = "kotlin.kotlin.io.output = new kotlin.kotlin.io.BufferedOutput();"; + private static final String FLUSH_KOTLIN_OUTPUT = "kotlin.kotlin.io.output.flush();"; + public static final String GET_KOTLIN_OUTPUT = "kotlin.kotlin.io.output.buffer;"; @NotNull private static final Map versionToScope = ContainerUtil.newHashMap(); @@ -140,7 +143,7 @@ public final class RhinoUtils { Scriptable scope = getScope(ecmaVersion, context, jsLibraries); putGlobalVariablesIntoScope(scope, variables); - context.evaluateString(scope, "kotlin.out = new kotlin.BufferedOutput();", "setup Kotlin.out", 0, null); + context.evaluateString(scope, SETUP_KOTLIN_OUTPUT, "setup kotlin output", 0, null); for (String filename : fileNames) { runFileWithRhino(filename, context, scope); @@ -219,7 +222,7 @@ public final class RhinoUtils { } static void flushSystemOut(@NotNull Context context, @NotNull Scriptable scope) { - context.evaluateString(scope, K2JSTranslator.FLUSH_SYSTEM_OUT, "test", 0, null); + context.evaluateString(scope, FLUSH_KOTLIN_OUTPUT, "test", 0, null); } @Nullable diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/facade/K2JSTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/facade/K2JSTranslator.java index 36e3050937d..6b65486a71d 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/facade/K2JSTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/facade/K2JSTranslator.java @@ -47,9 +47,6 @@ import static org.jetbrains.kotlin.js.translate.utils.ExpandIsCallsKt.expandIsCa */ public final class K2JSTranslator { - public static final String FLUSH_SYSTEM_OUT = "kotlin.out.flush();\n"; - public static final String GET_SYSTEM_OUT = "kotlin.out.buffer;\n"; - @NotNull private final JsConfig config; diff --git a/js/js.translator/testData/box/native/print.js b/js/js.translator/testData/box/native/print.js index f1350986721..e4016639dbf 100644 --- a/js/js.translator/testData/box/native/print.js +++ b/js/js.translator/testData/box/native/print.js @@ -2,6 +2,7 @@ var buffer = ""; function writeToBuffer(a) { var type = typeof a; + if (type === "undefined") return; if (type !== "string") throw Error("Expected string argument type, but got: " + type); buffer += a; diff --git a/js/js.translator/testData/box/native/print.kt b/js/js.translator/testData/box/native/print.kt index 01005f149d8..17f9cc3a4c2 100644 --- a/js/js.translator/testData/box/native/print.kt +++ b/js/js.translator/testData/box/native/print.kt @@ -27,7 +27,7 @@ external var buffer: String = noImpl fun test(expected: String, initCode: String, getResult: () -> String) { buffer = "" - eval("kotlin.out = new $initCode") + eval("kotlin.kotlin.io.output = new $initCode") print("Hello") print(", World") @@ -44,19 +44,19 @@ fun test(expected: String, initCode: String, getResult: () -> String) { } fun box(): String { - test(EXPECTED, "kotlin.NodeJsOutput(outputStream)") { + test(EXPECTED, "kotlin.kotlin.io.NodeJsOutput(outputStream)") { buffer } - test(EXPECTED_NEWLINE_FOR_EACH, "kotlin.OutputToConsoleLog()") { + test(EXPECTED_NEWLINE_FOR_EACH, "kotlin.kotlin.io.OutputToConsoleLog()") { buffer } - test(EXPECTED, "kotlin.BufferedOutput()") { - eval("kotlin.out.buffer") as String + test(EXPECTED, "kotlin.kotlin.io.BufferedOutput()") { + eval("kotlin.kotlin.io.output.buffer") as String } - test(EXPECTED, "kotlin.BufferedOutputToConsoleLog()") { + test(EXPECTED, "kotlin.kotlin.io.BufferedOutputToConsoleLog()") { buffer }