diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java index 8aa01c26916..f639ff1700f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/IntrinsicMethods.java @@ -100,6 +100,7 @@ public class IntrinsicMethods { declareIntrinsicFunction(typeName, Name.identifier("dec"), 0, DEC); declareIntrinsicFunction(typeName, Name.identifier("hashCode"), 0, HASH_CODE); declareIntrinsicFunction(typeName, Name.identifier("equals"), 1, EQUALS); + declareIntrinsicFunction(typeName, Name.identifier("toString"), 0, TO_STRING); } declareBinaryOp(Name.identifier("plus"), IADD); @@ -116,6 +117,7 @@ public class IntrinsicMethods { declareIntrinsicFunction(Name.identifier("Boolean"), Name.identifier("not"), 0, new Not()); declareIntrinsicFunction(Name.identifier("Boolean"), Name.identifier("equals"), 1, EQUALS); + declareIntrinsicFunction(Name.identifier("Boolean"), Name.identifier("toString"), 0, TO_STRING); declareIntrinsicFunction(Name.identifier("String"), Name.identifier("plus"), 1, new Concat()); declareIntrinsicFunction(Name.identifier("CharSequence"), Name.identifier("get"), 1, new StringGetChar()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/JavaToKotlinMethodMapGenerated.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/JavaToKotlinMethodMapGenerated.java index de9d98188b4..85d3ec76653 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/JavaToKotlinMethodMapGenerated.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/JavaToKotlinMethodMapGenerated.java @@ -30,7 +30,8 @@ class JavaToKotlinMethodMapGenerated { put(b, "java.lang.Object", "Any", pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"), - pair("hashCode()", "fun hashCode(): jet.Int") + pair("hashCode()", "fun hashCode(): jet.Int"), + pair("toString()", "fun toString(): jet.String") ); put(b, "java.lang.String", "String", @@ -47,7 +48,8 @@ class JavaToKotlinMethodMapGenerated { put(b, "java.lang.Throwable", "Throwable", pair("getCause()", "fun getCause(): jet.Throwable?"), pair("getMessage()", "fun getMessage(): jet.String?"), - pair("printStackTrace()", "fun printStackTrace(): jet.Unit") + pair("printStackTrace()", "fun printStackTrace(): jet.Unit"), + pair("toString()", "fun toString(): jet.String") ); put(b, "java.lang.Comparable", "Comparable", @@ -58,12 +60,14 @@ class JavaToKotlinMethodMapGenerated { pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"), pair("hashCode()", "fun hashCode(): jet.Int"), pair("name()", "fun name(): jet.String"), - pair("ordinal()", "fun ordinal(): jet.Int") + pair("ordinal()", "fun ordinal(): jet.Int"), + pair("toString()", "fun toString(): jet.String") ); put(b, "java.lang.annotation.Annotation", "Annotation", pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"), - pair("hashCode()", "fun hashCode(): jet.Int") + pair("hashCode()", "fun hashCode(): jet.Int"), + pair("toString()", "fun toString(): jet.String") ); put(b, "java.lang.Iterable", "Iterable", diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/OperationsMapGenerated.kt b/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/OperationsMapGenerated.kt index 6ed76e2fb9f..f6305ec944d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/OperationsMapGenerated.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/OperationsMapGenerated.kt @@ -27,6 +27,7 @@ private val emptyUnaryFun: Function1 = { a -> 1.toLong() } private val unaryOperations: HashMap, Pair, Function1>> = hashMapOf, Pair, Function1>>( unaryOperation(BOOLEAN, "not", { a -> a.not() }, emptyUnaryFun), + unaryOperation(BOOLEAN, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(BYTE, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(BYTE, "minus", { a -> a.minus() }, { a -> a.minus() }), unaryOperation(BYTE, "toChar", { a -> a.toChar() }, emptyUnaryFun), @@ -36,6 +37,7 @@ private val unaryOperations: HashMap, Pair a.toFloat() }, emptyUnaryFun), unaryOperation(BYTE, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(BYTE, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(BYTE, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(CHAR, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(CHAR, "minus", { a -> a.minus() }, emptyUnaryFun), unaryOperation(CHAR, "toChar", { a -> a.toChar() }, emptyUnaryFun), @@ -45,6 +47,7 @@ private val unaryOperations: HashMap, Pair a.toFloat() }, emptyUnaryFun), unaryOperation(CHAR, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(CHAR, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(CHAR, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(DOUBLE, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(DOUBLE, "minus", { a -> a.minus() }, emptyUnaryFun), unaryOperation(DOUBLE, "toChar", { a -> a.toChar() }, emptyUnaryFun), @@ -54,6 +57,7 @@ private val unaryOperations: HashMap, Pair a.toFloat() }, emptyUnaryFun), unaryOperation(DOUBLE, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(DOUBLE, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(DOUBLE, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(FLOAT, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(FLOAT, "minus", { a -> a.minus() }, emptyUnaryFun), unaryOperation(FLOAT, "toChar", { a -> a.toChar() }, emptyUnaryFun), @@ -63,6 +67,7 @@ private val unaryOperations: HashMap, Pair a.toFloat() }, emptyUnaryFun), unaryOperation(FLOAT, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(FLOAT, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(FLOAT, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(INT, "inv", { a -> a.inv() }, emptyUnaryFun), unaryOperation(INT, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(INT, "minus", { a -> a.minus() }, { a -> a.minus() }), @@ -73,6 +78,7 @@ private val unaryOperations: HashMap, Pair a.toDouble() }, emptyUnaryFun), unaryOperation(INT, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(INT, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(INT, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(LONG, "inv", { a -> a.inv() }, emptyUnaryFun), unaryOperation(LONG, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(LONG, "minus", { a -> a.minus() }, { a -> a.minus() }), @@ -83,6 +89,7 @@ private val unaryOperations: HashMap, Pair a.toDouble() }, emptyUnaryFun), unaryOperation(LONG, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(LONG, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(LONG, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(SHORT, "toInt", { a -> a.toInt() }, emptyUnaryFun), unaryOperation(SHORT, "minus", { a -> a.minus() }, { a -> a.minus() }), unaryOperation(SHORT, "toChar", { a -> a.toChar() }, emptyUnaryFun), @@ -92,6 +99,7 @@ private val unaryOperations: HashMap, Pair a.toFloat() }, emptyUnaryFun), unaryOperation(SHORT, "toShort", { a -> a.toShort() }, emptyUnaryFun), unaryOperation(SHORT, "toByte", { a -> a.toByte() }, emptyUnaryFun), + unaryOperation(SHORT, "toString", { a -> a.toString() }, emptyUnaryFun), unaryOperation(STRING, "toString", { a -> a.toString() }, emptyUnaryFun) ) diff --git a/compiler/testData/codegen/box/classes/kt285.kt b/compiler/testData/codegen/box/classes/kt285.kt index 4b25f2b0f3d..4c47239d8ae 100644 --- a/compiler/testData/codegen/box/classes/kt285.kt +++ b/compiler/testData/codegen/box/classes/kt285.kt @@ -1,6 +1,6 @@ trait Trait { fun foo() = "O" - fun toString() = "K" + override fun toString() = "K" } class SimpleClass : Trait diff --git a/compiler/testData/codegen/box/classes/kt633.kt b/compiler/testData/codegen/box/classes/kt633.kt index fdcd66d7543..49e543404aa 100644 --- a/compiler/testData/codegen/box/classes/kt633.kt +++ b/compiler/testData/codegen/box/classes/kt633.kt @@ -1,5 +1,5 @@ class mInt(val i : Int) { - fun toString() : String = "mint: $i" + override fun toString() : String = "mint: $i" fun plus(i : Int) = mInt(this.i + i) fun inc() = mInt(i + 1) } diff --git a/compiler/testData/codegen/box/finally/finallyAndFinally.kt b/compiler/testData/codegen/box/finally/finallyAndFinally.kt index d264bad1724..340dec49541 100644 --- a/compiler/testData/codegen/box/finally/finallyAndFinally.kt +++ b/compiler/testData/codegen/box/finally/finallyAndFinally.kt @@ -5,7 +5,7 @@ class MyString { return this } - fun toString(): String { + override fun toString(): String { return s } } diff --git a/compiler/testData/codegen/box/finally/kt3894.kt b/compiler/testData/codegen/box/finally/kt3894.kt index 5e194ac12ee..c5422168c30 100644 --- a/compiler/testData/codegen/box/finally/kt3894.kt +++ b/compiler/testData/codegen/box/finally/kt3894.kt @@ -5,7 +5,7 @@ class MyString { return this } - fun toString(): String { + override fun toString(): String { return s } } diff --git a/compiler/testData/codegen/box/finally/loopAndFinally.kt b/compiler/testData/codegen/box/finally/loopAndFinally.kt index 57c3985027c..a091d152bab 100644 --- a/compiler/testData/codegen/box/finally/loopAndFinally.kt +++ b/compiler/testData/codegen/box/finally/loopAndFinally.kt @@ -7,7 +7,7 @@ class MyString { return this } - fun toString(): String { + override fun toString(): String { return s } } diff --git a/compiler/testData/codegen/box/finally/tryLoopTry.kt b/compiler/testData/codegen/box/finally/tryLoopTry.kt index ae417be7136..59a1b071b61 100644 --- a/compiler/testData/codegen/box/finally/tryLoopTry.kt +++ b/compiler/testData/codegen/box/finally/tryLoopTry.kt @@ -7,7 +7,7 @@ class MyString { return this } - fun toString(): String { + override fun toString(): String { return s } } diff --git a/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt b/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt index 5479025f59a..632670b783b 100644 --- a/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt +++ b/compiler/testData/codegen/box/localClasses/anonymousObjectInInitializer.kt @@ -3,7 +3,7 @@ class A { { a = object { - fun toString(): String = "OK" + override fun toString(): String = "OK" }.toString() } } diff --git a/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt b/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt index 54ae081e9a9..e5a27ccdbc4 100644 --- a/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt +++ b/compiler/testData/codegen/box/localClasses/anonymousObjectInParameterInitializer.kt @@ -1,6 +1,6 @@ class A( val a: String = object { - fun toString(): String = "OK" + override fun toString(): String = "OK" }.toString() ) diff --git a/compiler/testData/codegen/box/properties/kt1417.kt b/compiler/testData/codegen/box/properties/kt1417.kt index 95366a66a5d..665f45d22cd 100644 --- a/compiler/testData/codegen/box/properties/kt1417.kt +++ b/compiler/testData/codegen/box/properties/kt1417.kt @@ -3,7 +3,7 @@ package pack open class A(val value: String ) class B(value: String) : A(value) { - fun toString() = "B($value)"; + override fun toString() = "B($value)"; } fun box() = if (B("4").toString() == "B(4)") "OK" else "fail" diff --git a/compiler/testData/codegen/box/traits/kt2399.kt b/compiler/testData/codegen/box/traits/kt2399.kt index bb2f2d150a7..d53fc22bf53 100644 --- a/compiler/testData/codegen/box/traits/kt2399.kt +++ b/compiler/testData/codegen/box/traits/kt2399.kt @@ -7,7 +7,7 @@ class JsonArray { } class ProjectInfo { - public fun toString(): String = "OK" + override fun toString(): String = "OK" } public trait Parser { diff --git a/compiler/testData/codegen/box/traits/withRequiredPropertyViaBridge.kt b/compiler/testData/codegen/box/traits/withRequiredPropertyViaBridge.kt index aa2acc635a3..c07ce9735f9 100644 --- a/compiler/testData/codegen/box/traits/withRequiredPropertyViaBridge.kt +++ b/compiler/testData/codegen/box/traits/withRequiredPropertyViaBridge.kt @@ -4,7 +4,7 @@ trait Trait : Base { private val value : String get() = "OK" - fun toString() = object { + override fun toString() = object { fun foo() = value }.foo() } diff --git a/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyDeclared.kt b/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyDeclared.kt index f699fbaf727..f95ea92633c 100644 --- a/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyDeclared.kt +++ b/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyDeclared.kt @@ -1,5 +1,5 @@ data class A(val x: Int) { - fun toString(): String = "!" + override fun toString(): String = "!" } fun box(): String { diff --git a/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyInherited.kt b/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyInherited.kt index 945a5bcc9ad..b91111255d8 100644 --- a/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyInherited.kt +++ b/compiler/testData/codegen/boxWithStdlib/dataClasses/tostring/alreadyInherited.kt @@ -1,5 +1,5 @@ trait SuperTrait { - public fun toString(): String = "!" + override fun toString(): String = "!" } data class A(val x: Int): SuperTrait { diff --git a/compiler/testData/codegen/boxWithStdlib/regressions/kt1800.kt b/compiler/testData/codegen/boxWithStdlib/regressions/kt1800.kt index ee218005e4d..5cb3630e394 100644 --- a/compiler/testData/codegen/boxWithStdlib/regressions/kt1800.kt +++ b/compiler/testData/codegen/boxWithStdlib/regressions/kt1800.kt @@ -6,7 +6,7 @@ import java.util.ArrayList public class User(val firstName: String, val lastName: String, val age: Int) { - fun toString() = "$firstName $lastName, age $age" + override fun toString() = "$firstName $lastName, age $age" } public fun > Collection.testMin(): T? { diff --git a/compiler/testData/codegen/regressions/kt1846.kt b/compiler/testData/codegen/regressions/kt1846.kt index 0e56b1b605d..cb42e90883f 100644 --- a/compiler/testData/codegen/regressions/kt1846.kt +++ b/compiler/testData/codegen/regressions/kt1846.kt @@ -1,4 +1,4 @@ class A(private var v1: String) { private var v2 = v1 - fun toString(): String { return "A[v1=$v1,v2=$v2]" } + override fun toString(): String { return "A[v1=$v1,v2=$v2]" } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/Builders.kt b/compiler/testData/diagnostics/tests/Builders.kt index 80abb8d8b97..92aa4ba9992 100644 --- a/compiler/testData/diagnostics/tests/Builders.kt +++ b/compiler/testData/diagnostics/tests/Builders.kt @@ -52,7 +52,7 @@ fun main(args : Array) { trait Element { fun render(builder : StringBuilder, indent : String) - fun toString() : String? { + override fun toString() : String { val builder = StringBuilder() render(builder, "") return builder.toString() diff --git a/compiler/testData/diagnostics/tests/infos/Autocasts.kt b/compiler/testData/diagnostics/tests/infos/Autocasts.kt index ce0904651c2..b661293e910 100644 --- a/compiler/testData/diagnostics/tests/infos/Autocasts.kt +++ b/compiler/testData/diagnostics/tests/infos/Autocasts.kt @@ -183,7 +183,7 @@ fun returnFunctionLiteral(a: Any?): Function0 = fun mergeAutocasts(a: Any?) { if (a is String || a is Int) { a.compareTo("") - a.toString() + a.toString() } if (a is Int || a is String) { a.compareTo("") diff --git a/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.kt b/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.kt index 41d861d0ce8..e558db7df30 100644 --- a/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.kt +++ b/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.kt @@ -1,3 +1,3 @@ class Test(private val a: Int b: Int private val c: Int) { - fun toString() = "$a $c" + override fun toString() = "$a $c" } \ No newline at end of file diff --git a/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.txt b/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.txt index a7faeaf09f1..15b3bae7bec 100644 --- a/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.txt +++ b/compiler/testData/psi/recovery/MissingCommaInConstructorValueParameterList.txt @@ -53,6 +53,9 @@ JetFile: MissingCommaInConstructorValueParameterList.kt PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') FUN + MODIFIER_LIST + PsiElement(override)('override') + PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('toString') diff --git a/compiler/testData/recursiveProcessor/declarations.txt b/compiler/testData/recursiveProcessor/declarations.txt index fd7a197e007..dfe5a08d4cf 100644 --- a/compiler/testData/recursiveProcessor/declarations.txt +++ b/compiler/testData/recursiveProcessor/declarations.txt @@ -52,33 +52,44 @@ Trait:ClassDescriptorWithResolutionScopes a:ValueParameterDescriptor fake .equals:SimpleFunctionDescriptor fake .hashCode:SimpleFunctionDescriptor +fake .toString:SimpleFunctionDescriptor fake .equals:SimpleFunctionDescriptor fake .hashCode:SimpleFunctionDescriptor +fake .toString:SimpleFunctionDescriptor fake .equals:SimpleFunctionDescriptor fake .hashCode:SimpleFunctionDescriptor fake .nestedFunc:SimpleFunctionDescriptor +fake .toString:SimpleFunctionDescriptor fake .:PropertyGetterDescriptor fake .equals:SimpleFunctionDescriptor fake .hashCode:SimpleFunctionDescriptor fake .objFunc:SimpleFunctionDescriptor fake .objProp:PropertyDescriptor +fake .toString:SimpleFunctionDescriptor fake Class.:PropertyGetterDescriptor fake Class.equals:SimpleFunctionDescriptor fake Class.hashCode:SimpleFunctionDescriptor +fake Class.toString:SimpleFunctionDescriptor fake Class.traitFunc:SimpleFunctionDescriptor fake Class.traitProp:PropertyDescriptor fake NestedClass.equals:SimpleFunctionDescriptor fake NestedClass.hashCode:SimpleFunctionDescriptor +fake NestedClass.toString:SimpleFunctionDescriptor fake NestedObject.equals:SimpleFunctionDescriptor fake NestedObject.hashCode:SimpleFunctionDescriptor +fake NestedObject.toString:SimpleFunctionDescriptor fake NestedTrait.equals:SimpleFunctionDescriptor fake NestedTrait.hashCode:SimpleFunctionDescriptor +fake NestedTrait.toString:SimpleFunctionDescriptor fake Object.equals:SimpleFunctionDescriptor fake Object.hashCode:SimpleFunctionDescriptor +fake Object.toString:SimpleFunctionDescriptor fake Outer.equals:SimpleFunctionDescriptor fake Outer.hashCode:SimpleFunctionDescriptor +fake Outer.toString:SimpleFunctionDescriptor fake Trait.equals:SimpleFunctionDescriptor fake Trait.hashCode:SimpleFunctionDescriptor +fake Trait.toString:SimpleFunctionDescriptor func.this:ReceiverParameterDescriptor innerTest.:PropertyGetterDescriptor innerTest.:PropertyGetterDescriptor diff --git a/core/builtins/native/jet/Any.kt b/core/builtins/native/jet/Any.kt index c824db5c3f4..91915e06267 100644 --- a/core/builtins/native/jet/Any.kt +++ b/core/builtins/native/jet/Any.kt @@ -4,4 +4,6 @@ public open class Any { public open fun equals(other: Any?): Boolean public open fun hashCode(): Int + + public open fun toString(): String } diff --git a/core/builtins/native/jet/Library.kt b/core/builtins/native/jet/Library.kt index 141b8b81de2..93846c8d1ac 100644 --- a/core/builtins/native/jet/Library.kt +++ b/core/builtins/native/jet/Library.kt @@ -35,8 +35,6 @@ public trait CharSequence { public fun get(index : Int) : Char public val length : Int - - public fun toString() : String } public class String() : Comparable, CharSequence { @@ -44,7 +42,6 @@ public class String() : Comparable, CharSequence { public override fun compareTo(that : String) : Int public override fun get(index : Int) : Char - public override fun toString() : String public override val length: Int } diff --git a/core/builtins/src/jet/Progressions.kt b/core/builtins/src/jet/Progressions.kt index 507eb64195b..ed22d2bf40b 100644 --- a/core/builtins/src/jet/Progressions.kt +++ b/core/builtins/src/jet/Progressions.kt @@ -34,7 +34,7 @@ public class ByteProgression( override fun hashCode(): Int = 31 * (31 * start.toInt() + end) + increment - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class CharProgression( @@ -53,7 +53,7 @@ public class CharProgression( override fun hashCode(): Int = 31 * (31 * start.toInt() + end) + increment - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class ShortProgression( @@ -72,7 +72,7 @@ public class ShortProgression( override fun hashCode(): Int = 31 * (31 * start.toInt() + end) + increment - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class IntProgression( @@ -91,7 +91,7 @@ public class IntProgression( override fun hashCode(): Int = 31 * (31 * start + end) + increment - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class LongProgression( @@ -110,7 +110,7 @@ public class LongProgression( override fun hashCode(): Int = (31 * (31 * (start xor (start ushr 32)) + (end xor (end ushr 32))) + (increment xor (increment ushr 32))).toInt() - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class FloatProgression( @@ -130,7 +130,7 @@ public class FloatProgression( override fun hashCode(): Int = 31 * (31 * java.lang.Float.floatToIntBits(start) + java.lang.Float.floatToIntBits(end)) + java.lang.Float.floatToIntBits(increment) - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } public class DoubleProgression( @@ -157,6 +157,6 @@ public class DoubleProgression( return (31 * result + (temp xor (temp ushr 32))).toInt() } - fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" + override fun toString(): String = if (increment > 0) "$start..$end step $increment" else "$start downTo $end step ${-increment}" } diff --git a/core/builtins/src/jet/Range.kt b/core/builtins/src/jet/Range.kt index 27c5c0f42f4..99bed219a87 100644 --- a/core/builtins/src/jet/Range.kt +++ b/core/builtins/src/jet/Range.kt @@ -23,5 +23,5 @@ public trait Range> { public fun contains(item: T): Boolean - public fun toString(): String = "$start..$end" + override fun toString(): String = "$start..$end" } diff --git a/core/builtins/src/jet/Unit.kt b/core/builtins/src/jet/Unit.kt index 79602c81ba8..063ed70ed3c 100644 --- a/core/builtins/src/jet/Unit.kt +++ b/core/builtins/src/jet/Unit.kt @@ -17,7 +17,7 @@ package jet public class Unit private() { - fun toString() = "Unit.VALUE" + override fun toString() = "Unit.VALUE" class object { public val VALUE: Unit = Unit() diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/types/LazyJavaType.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/types/LazyJavaType.kt index 36bba761f99..e19801baaa5 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/types/LazyJavaType.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/types/LazyJavaType.kt @@ -49,13 +49,13 @@ abstract class LazyJavaType(storageManager: StorageManager) : AbstractJetType(), override fun getAnnotations() = Annotations.EMPTY - override fun toString(): String? { + override fun toString(): String { if (!_typeConstructor.isComputed()) { return "Type constructor is not computed" } if (!_arguments.isComputed()) { return "" + getConstructor() + "" } - return super.toString() + return super.toString()!! } } diff --git a/generators/src/org/jetbrains/jet/generators/builtins/progressions.kt b/generators/src/org/jetbrains/jet/generators/builtins/progressions.kt index 02eba150666..9f5d9648fb0 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/progressions.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/progressions.kt @@ -76,7 +76,7 @@ class GenerateProgressions(out: PrintWriter) : BuiltInsSourceGenerator(out) { override fun hashCode(): Int $hashCode - fun toString(): String = ${"if (increment > 0) \"\$start..\$end step \$increment\" else \"\$start downTo \$end step \${-increment}\""} + override fun toString(): String = ${"if (increment > 0) \"\$start..\$end step \$increment\" else \"\$start downTo \$end step \${-increment}\""} }""") out.println() } diff --git a/idea/testData/checker/infos/Autocasts.kt b/idea/testData/checker/infos/Autocasts.kt index e6bbb1ef9c8..832b815b92e 100644 --- a/idea/testData/checker/infos/Autocasts.kt +++ b/idea/testData/checker/infos/Autocasts.kt @@ -179,7 +179,7 @@ fun returnFunctionLiteral(a: Any?): Function0 = fun mergeAutocasts(a: Any?) { if (a is String || a is Int) { a.compareTo("") - a.toString() + a.toString() } if (a is Int || a is String) { a.compareTo("") diff --git a/idea/testData/codeInsight/overrideImplement/complexMultiOverride.kt.after b/idea/testData/codeInsight/overrideImplement/complexMultiOverride.kt.after index 336e46a593f..399577ad647 100644 --- a/idea/testData/codeInsight/overrideImplement/complexMultiOverride.kt.after +++ b/idea/testData/codeInsight/overrideImplement/complexMultiOverride.kt.after @@ -19,4 +19,7 @@ class C : Base() { return super.hashCode() } override val method: (String?) -> String = ? + override fun toString(): String { + return super.toString() + } } diff --git a/idea/testData/codeInsight/overrideImplement/inheritVisibilities.kt.after b/idea/testData/codeInsight/overrideImplement/inheritVisibilities.kt.after index f9eff471be9..cc572703c12 100644 --- a/idea/testData/codeInsight/overrideImplement/inheritVisibilities.kt.after +++ b/idea/testData/codeInsight/overrideImplement/inheritVisibilities.kt.after @@ -30,4 +30,7 @@ class C : A(), B { super.publicFun() } override val publicProperty: Int = 0 + override fun toString(): String { + return super.toString() + } } diff --git a/idea/testData/codeInsight/overrideImplement/multiOverride.kt.after b/idea/testData/codeInsight/overrideImplement/multiOverride.kt.after index ba0184c87f9..6b2bf1a20eb 100644 --- a/idea/testData/codeInsight/overrideImplement/multiOverride.kt.after +++ b/idea/testData/codeInsight/overrideImplement/multiOverride.kt.after @@ -17,4 +17,7 @@ class C : A { override fun hashCode(): Int { return super.hashCode() } + override fun toString(): String { + return super.toString() + } } diff --git a/idea/testData/codeInsight/overrideImplement/overrideRespectCaretPosition.kt.after b/idea/testData/codeInsight/overrideImplement/overrideRespectCaretPosition.kt.after index 0d9057949af..4282725f741 100644 --- a/idea/testData/codeInsight/overrideImplement/overrideRespectCaretPosition.kt.after +++ b/idea/testData/codeInsight/overrideImplement/overrideRespectCaretPosition.kt.after @@ -16,6 +16,9 @@ class C : A() { override fun hashCode(): Int { return super.hashCode() } + override fun toString(): String { + return super.toString() + } /* Some another comment diff --git a/idea/testData/resolve/builtins/toString.kt b/idea/testData/resolve/builtins/toString.kt index aa555c196f3..f3bb9de3a8a 100644 --- a/idea/testData/resolve/builtins/toString.kt +++ b/idea/testData/resolve/builtins/toString.kt @@ -1,2 +1,2 @@ val x = 5.toString() -//jet/Library.kt:toString +//jet/Any.kt:toString diff --git a/js/js.libraries/src/core/javalang.kt b/js/js.libraries/src/core/javalang.kt index 6ebcda3acb1..b3f51fa2d66 100644 --- a/js/js.libraries/src/core/javalang.kt +++ b/js/js.libraries/src/core/javalang.kt @@ -51,5 +51,5 @@ public class StringBuilder() : Appendable { //TODO //override fun append(csq: CharSequence?, start: Int, end: Int): StringBuilder = js.noImpl public fun append(obj: Any?): StringBuilder = js.noImpl - public fun toString(): String = js.noImpl + override fun toString(): String = js.noImpl } diff --git a/js/js.libraries/src/core/javautil.kt b/js/js.libraries/src/core/javautil.kt index 7aadb656938..83771e71776 100644 --- a/js/js.libraries/src/core/javautil.kt +++ b/js/js.libraries/src/core/javautil.kt @@ -49,7 +49,7 @@ public abstract class AbstractList() : AbstractCollection(), MutableList ( public fun component1(): A = first public fun component2(): B = second - public fun toString(): String = "($first, $second)" - + override fun toString(): String = "($first, $second)" } public class Triple ( @@ -21,5 +20,5 @@ public class Triple ( public fun component2(): B = second public fun component3(): C = third - public fun toString(): String = "($first, $second, $third)" + override fun toString(): String = "($first, $second, $third)" } \ No newline at end of file diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt b/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt index 9ff8ff50510..18f590baacd 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt +++ b/js/js.translator/src/org/jetbrains/k2js/translate/callTranslator/CallInfo.kt @@ -49,7 +49,7 @@ trait CallInfo { fun constructSafeCallIsNeeded(result: JsExpression): JsExpression - fun toString(): String { + override fun toString(): String { val location = DiagnosticUtils.atLocation(context.bindingContext(), callableDescriptor) val name = callableDescriptor.getName().asString() return "callableDescriptor: $name at $location; thisObject: $thisObject; receiverObject: $receiverObject" diff --git a/js/js.translator/testFiles/expression/function/cases/manglingAnyMethods.kt b/js/js.translator/testFiles/expression/function/cases/manglingAnyMethods.kt index 971ae2fdf98..7e24eafb27b 100644 --- a/js/js.translator/testFiles/expression/function/cases/manglingAnyMethods.kt +++ b/js/js.translator/testFiles/expression/function/cases/manglingAnyMethods.kt @@ -7,13 +7,13 @@ public fun toString(): String = "" public class PublicClass { override fun equals(a: Any?): Boolean = this.identityEquals(a) override fun hashCode(): Int = 0 - public fun toString(): String = "PublicClass" + override fun toString(): String = "PublicClass" } internal class InternalClass { override fun equals(a: Any?): Boolean = this.identityEquals(a) override fun hashCode(): Int = 1 - public fun toString(): String = "InternalClass" + override fun toString(): String = "InternalClass" // overloads public fun equals(a: Any?, b: Any?): Boolean = a == b @@ -24,7 +24,7 @@ internal class InternalClass { private class PrivateClass { override fun equals(a: Any?): Boolean = this.identityEquals(a) override fun hashCode(): Int = 2 - public fun toString(): String = "InternalClass" + override fun toString(): String = "InternalClass" // overloads public fun equals(a: Any?, b: Any?): Boolean = a == b diff --git a/js/js.translator/testFiles/expression/string/cases/kt2227_2.kt b/js/js.translator/testFiles/expression/string/cases/kt2227_2.kt index 9dda0350953..7ae8bfb2186 100644 --- a/js/js.translator/testFiles/expression/string/cases/kt2227_2.kt +++ b/js/js.translator/testFiles/expression/string/cases/kt2227_2.kt @@ -3,7 +3,7 @@ package foo var i = 0 class A() { - fun toString(): String { + override fun toString(): String { i++ return "bar" } diff --git a/js/js.translator/testFiles/expression/string/cases/objectToStringCallInTemplate.kt b/js/js.translator/testFiles/expression/string/cases/objectToStringCallInTemplate.kt index 7eab5902391..8d4598d7d7a 100644 --- a/js/js.translator/testFiles/expression/string/cases/objectToStringCallInTemplate.kt +++ b/js/js.translator/testFiles/expression/string/cases/objectToStringCallInTemplate.kt @@ -1,7 +1,7 @@ package foo class A(var i : Int) { - fun toString() = "a$i" + override fun toString() = "a$i" } fun box() : Boolean { diff --git a/js/js.translator/testFiles/expression/stringTemplates/cases/objectWithToString.kt b/js/js.translator/testFiles/expression/stringTemplates/cases/objectWithToString.kt index cae8f2a7da2..73e67172c62 100644 --- a/js/js.translator/testFiles/expression/stringTemplates/cases/objectWithToString.kt +++ b/js/js.translator/testFiles/expression/stringTemplates/cases/objectWithToString.kt @@ -1,7 +1,7 @@ package foo class Foo(val name: String) { - public fun toString(): String { + override fun toString(): String { return name + "S" } } diff --git a/js/js.translator/testFiles/webDemoExamples2/cases/builder.kt b/js/js.translator/testFiles/webDemoExamples2/cases/builder.kt index 02795b3c439..f55f677c64f 100644 --- a/js/js.translator/testFiles/webDemoExamples2/cases/builder.kt +++ b/js/js.translator/testFiles/webDemoExamples2/cases/builder.kt @@ -48,7 +48,7 @@ fun main(args: Array) { trait Element { fun render(builder: StringBuilder, indent: String) - fun toString(): String? { + override fun toString(): String { val builder = StringBuilder() render(builder, "") return builder.toString() diff --git a/libraries/sandbox/templatelib/src/TemplateHtml.kt b/libraries/sandbox/templatelib/src/TemplateHtml.kt index 6a0f23a1e67..a6cdbb0ac03 100644 --- a/libraries/sandbox/templatelib/src/TemplateHtml.kt +++ b/libraries/sandbox/templatelib/src/TemplateHtml.kt @@ -62,7 +62,7 @@ abstract class Tag(val name : String) : Element() { } - fun toString(): String { + override fun toString(): String { val builder = StringBuilder() appendTo(builder) return builder.toString()!! diff --git a/libraries/stdlib/src/kotlin/properties/Properties.kt b/libraries/stdlib/src/kotlin/properties/Properties.kt index 78dc550e692..dc072d2cd06 100644 --- a/libraries/stdlib/src/kotlin/properties/Properties.kt +++ b/libraries/stdlib/src/kotlin/properties/Properties.kt @@ -6,7 +6,7 @@ import java.util.ArrayList public class ChangeEvent(val source: Any, val name: String, val oldValue: Any?, val newValue: Any?) { var propogationId: Any? = null - public fun toString() : String = "ChangeEvent($name, $oldValue, $newValue)" + override fun toString(): String = "ChangeEvent($name, $oldValue, $newValue)" } public trait ChangeListener { diff --git a/libraries/stdlib/src/kotlin/template/Templates.kt b/libraries/stdlib/src/kotlin/template/Templates.kt index 816f61617f4..5540a5ea6d2 100644 --- a/libraries/stdlib/src/kotlin/template/Templates.kt +++ b/libraries/stdlib/src/kotlin/template/Templates.kt @@ -15,7 +15,7 @@ class StringTemplate(val values : Array) { /** * Converts the template into a String */ - public fun toString() : String { + override fun toString() : String { val out = StringBuilder() forEach{ out.append(it) } return out.toString() @@ -93,7 +93,7 @@ public open class ToStringFormatter : Formatter { var nullString : String = "null" - public open fun toString() : String = "ToStringFormatter" + override fun toString() : String = "ToStringFormatter" public override fun format(out : Appendable, value : Any?) { if (value == null) { @@ -121,7 +121,7 @@ public val defaultLocale : Locale = Locale.getDefault() */ public open class LocaleFormatter(val locale : Locale = defaultLocale) : ToStringFormatter() { - public override fun toString() : String = "LocaleFormatter{$locale}" + override fun toString() : String = "LocaleFormatter{$locale}" public var numberFormat : NumberFormat = NumberFormat.getInstance(locale)!! @@ -151,7 +151,7 @@ public open class LocaleFormatter(val locale : Locale = defaultLocale) : ToStrin */ public class HtmlFormatter(locale : Locale = defaultLocale) : LocaleFormatter(locale) { - public override fun toString() : String = "HtmlFormatter{$locale}" + override fun toString() : String = "HtmlFormatter{$locale}" public override fun format(out : Appendable, value : Any?) { if (value is Node) { diff --git a/libraries/stdlib/test/CompareTest.kt b/libraries/stdlib/test/CompareTest.kt index fb3eb51c314..9d9b4949507 100644 --- a/libraries/stdlib/test/CompareTest.kt +++ b/libraries/stdlib/test/CompareTest.kt @@ -5,7 +5,7 @@ import kotlin.test.* import org.junit.Test class Item(val name: String, val rating: Int): Comparable { - fun toString() = "Item($name, $rating)" + override fun toString() = "Item($name, $rating)" public override fun compareTo(other: Item): Int { return compareBy(this, other, { rating }, { name }) diff --git a/libraries/stdlib/test/ListTest.kt b/libraries/stdlib/test/ListTest.kt index 13852412e76..d3af926b534 100644 --- a/libraries/stdlib/test/ListTest.kt +++ b/libraries/stdlib/test/ListTest.kt @@ -6,7 +6,7 @@ import org.junit.Test as test class ListTest { - test fun toString() { + test fun _toString() { val data = arrayList("foo", "bar") assertEquals("[foo, bar]", data.toString()) } diff --git a/libraries/stdlib/test/properties/PropertiesTest.kt b/libraries/stdlib/test/properties/PropertiesTest.kt index b31dab87288..32a2865ee9d 100644 --- a/libraries/stdlib/test/properties/PropertiesTest.kt +++ b/libraries/stdlib/test/properties/PropertiesTest.kt @@ -22,7 +22,7 @@ class Customer() : ChangeSupport() { $city = value } - fun toString() = "Customer($name, $city)" + override fun toString() = "Customer($name, $city)" } class MyChangeListener() : ChangeListener { diff --git a/libraries/stdlib/test/regressions/kt1202.kt b/libraries/stdlib/test/regressions/kt1202.kt index 40b810791e2..83eafec9c2d 100644 --- a/libraries/stdlib/test/regressions/kt1202.kt +++ b/libraries/stdlib/test/regressions/kt1202.kt @@ -33,7 +33,7 @@ class Failure(val message : String) : ParseResult { } open class Token(val text : String) { - fun toString() = text + override fun toString() = text } object LPAR : Token("(") object RPAR : Token(")") diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt index 64c6845e307..92767928096 100644 --- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt +++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt @@ -934,7 +934,7 @@ abstract class KNamed(val name: String, model: KModel, declarationDescriptor: De open fun equals(other: KPackage) = name == other.name - open fun toString() = name + override fun toString() = name } @@ -957,7 +957,7 @@ class KPackage(model: KModel, val descriptor: PackageFragmentDescriptor, fun equals(other: KPackage) = name == other.name - fun toString() = "KPackage($name)" + override fun toString() = "KPackage($name)" fun getClass(descriptor: ClassDescriptor): KClass { val name = descriptor.getName().asString() @@ -1089,7 +1089,7 @@ class KClass( fun equals(other: KClass) = name == other.name - fun toString() = "$kind($name)" + override fun toString() = "$kind($name)" fun isApi(): Boolean { val visibility = descriptor.getVisibility() @@ -1185,7 +1185,7 @@ class KFunction(val descriptor: CallableDescriptor, val owner: KClassOrPackage, fun equals(other: KFunction) = name == other.name && this.parameterTypeText == other.parameterTypeText && this.extensionClass == other.extensionClass && this.owner == other.owner - fun toString() = "fun $name($parameterTypeText): $returnType" + override fun toString() = "fun $name($parameterTypeText): $returnType" public val link: String = "$name($parameterTypeText)" @@ -1212,13 +1212,13 @@ class KProperty(val owner: KClassOrPackage, val descriptor: PropertyDescriptor, return visibility.isPublicAPI() } - fun toString() = "property $name" + override fun toString() = "property $name" } class KParameter(val descriptor: ValueParameterDescriptor, val name: String, var aType: KType): KAnnotated(aType.model, aType.declarationDescriptor) { - fun toString() = "$name: ${aType.name}" + override fun toString() = "$name: ${aType.name}" fun isVarArg(): Boolean = descriptor.getVarargElementType() != null @@ -1237,12 +1237,12 @@ class KTypeParameter(val name: String, model: KModel, var extends: List = arrayList()): KAnnotated(model, descriptor) { - fun toString() = "$name" + override fun toString() = "$name" } class KAnnotation(var klass: KClass): KAnnotated(klass.model, klass.descriptor) { // TODO add some parameter values? - fun toString() = "@$klass.simpleName" + override fun toString() = "@$klass.simpleName" } diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/templates/SearchXmlTemplate.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/templates/SearchXmlTemplate.kt index 8a38f98260e..50e460b3bb5 100644 --- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/templates/SearchXmlTemplate.kt +++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/templates/SearchXmlTemplate.kt @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.doc.model.* class SearchXmlTemplate(val model: KModel): KDocTemplate() { class Search(val name: String, val href: String, val kind: String) { - fun toString() = "Search($name, $href, $kind)" + override fun toString() = "Search($name, $href, $kind)" } override fun render() { diff --git a/libraries/tools/kdoc/src/test/sample/Hello.kt b/libraries/tools/kdoc/src/test/sample/Hello.kt index 69368bd37b4..49f4a969152 100644 --- a/libraries/tools/kdoc/src/test/sample/Hello.kt +++ b/libraries/tools/kdoc/src/test/sample/Hello.kt @@ -2,7 +2,7 @@ package sample /** A Comment */ public class Person(val name: String, val city: String) { - fun toString(): String = "Person($name, $city)" + override fun toString(): String = "Person($name, $city)" public fun hello(): String = "Hello $name" }