diff --git a/compiler/frontend/builtins/jet/.kotlin_class_names b/compiler/frontend/builtins/jet/.kotlin_class_names index 9730774eea0..14c2f9fcff6 100644 Binary files a/compiler/frontend/builtins/jet/.kotlin_class_names and b/compiler/frontend/builtins/jet/.kotlin_class_names differ diff --git a/compiler/frontend/builtins/jet/.kotlin_name_table b/compiler/frontend/builtins/jet/.kotlin_name_table index 459e6763360..66fd80f2114 100644 Binary files a/compiler/frontend/builtins/jet/.kotlin_name_table and b/compiler/frontend/builtins/jet/.kotlin_name_table differ diff --git a/compiler/frontend/builtins/jet/.kotlin_package b/compiler/frontend/builtins/jet/.kotlin_package index 104f218ca54..60c8fca1d67 100644 Binary files a/compiler/frontend/builtins/jet/.kotlin_package and b/compiler/frontend/builtins/jet/.kotlin_package differ diff --git a/compiler/frontend/builtins/jet/Char.kotlin_class b/compiler/frontend/builtins/jet/Char.kotlin_class index ab6607d04d3..83234cc77b8 100644 Binary files a/compiler/frontend/builtins/jet/Char.kotlin_class and b/compiler/frontend/builtins/jet/Char.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/CharArray.kotlin_class b/compiler/frontend/builtins/jet/CharArray.kotlin_class index af0fe5cc8f0..b17641f0963 100644 Binary files a/compiler/frontend/builtins/jet/CharArray.kotlin_class and b/compiler/frontend/builtins/jet/CharArray.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/CharIterator.kotlin_class b/compiler/frontend/builtins/jet/CharIterator.kotlin_class index 1d27898c159..189e544112b 100644 --- a/compiler/frontend/builtins/jet/CharIterator.kotlin_class +++ b/compiler/frontend/builtins/jet/CharIterator.kotlin_class @@ -1,9 +1,9 @@ -&!2 +&"2  Z 0B Z -&0LB +&0MB j Æ0B -! \ No newline at end of file +" \ No newline at end of file diff --git a/compiler/frontend/builtins/jet/CharProgression.kotlin_class b/compiler/frontend/builtins/jet/CharProgression.kotlin_class index c129da341af..8a99bf17b74 100644 Binary files a/compiler/frontend/builtins/jet/CharProgression.kotlin_class and b/compiler/frontend/builtins/jet/CharProgression.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/CharRange.kotlin_class b/compiler/frontend/builtins/jet/CharRange.kotlin_class index 9d1acb5f952..74846b51fe3 100644 Binary files a/compiler/frontend/builtins/jet/CharRange.kotlin_class and b/compiler/frontend/builtins/jet/CharRange.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/CharRange.object.kotlin_class b/compiler/frontend/builtins/jet/CharRange.object.kotlin_class index f604a57fb17..3af4f2066c1 100644 Binary files a/compiler/frontend/builtins/jet/CharRange.object.kotlin_class and b/compiler/frontend/builtins/jet/CharRange.object.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/CharSequence.kotlin_class b/compiler/frontend/builtins/jet/CharSequence.kotlin_class index d8444cecb74..0d60ce7de31 100644 Binary files a/compiler/frontend/builtins/jet/CharSequence.kotlin_class and b/compiler/frontend/builtins/jet/CharSequence.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Collection.kotlin_class b/compiler/frontend/builtins/jet/Collection.kotlin_class index 335a85012cd..f30a6efb2d9 100644 Binary files a/compiler/frontend/builtins/jet/Collection.kotlin_class and b/compiler/frontend/builtins/jet/Collection.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Enum.kotlin_class b/compiler/frontend/builtins/jet/Enum.kotlin_class index bbc9231d9e5..e9318ca1e5d 100644 Binary files a/compiler/frontend/builtins/jet/Enum.kotlin_class and b/compiler/frontend/builtins/jet/Enum.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Hashable.kotlin_class b/compiler/frontend/builtins/jet/Hashable.kotlin_class index 566c778ab17..0c6f281d938 100644 Binary files a/compiler/frontend/builtins/jet/Hashable.kotlin_class and b/compiler/frontend/builtins/jet/Hashable.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/InlineStrategy.object.kotlin_class b/compiler/frontend/builtins/jet/InlineStrategy.object.kotlin_class index d7c9186738d..097db3005a5 100644 Binary files a/compiler/frontend/builtins/jet/InlineStrategy.object.kotlin_class and b/compiler/frontend/builtins/jet/InlineStrategy.object.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Iterable.kotlin_class b/compiler/frontend/builtins/jet/Iterable.kotlin_class index 909005b4d09..61de568c57e 100644 Binary files a/compiler/frontend/builtins/jet/Iterable.kotlin_class and b/compiler/frontend/builtins/jet/Iterable.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/List.kotlin_class b/compiler/frontend/builtins/jet/List.kotlin_class index 93683650696..49147d94ee7 100644 Binary files a/compiler/frontend/builtins/jet/List.kotlin_class and b/compiler/frontend/builtins/jet/List.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Map.Entry.kotlin_class b/compiler/frontend/builtins/jet/Map.Entry.kotlin_class index 3ba5303352d..60bc72a6dff 100644 Binary files a/compiler/frontend/builtins/jet/Map.Entry.kotlin_class and b/compiler/frontend/builtins/jet/Map.Entry.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Map.kotlin_class b/compiler/frontend/builtins/jet/Map.kotlin_class index f25b08f12c0..af22c5a85c1 100644 Binary files a/compiler/frontend/builtins/jet/Map.kotlin_class and b/compiler/frontend/builtins/jet/Map.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/MutableCollection.kotlin_class b/compiler/frontend/builtins/jet/MutableCollection.kotlin_class index 78a81b6605c..19eb72bf471 100644 Binary files a/compiler/frontend/builtins/jet/MutableCollection.kotlin_class and b/compiler/frontend/builtins/jet/MutableCollection.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/MutableIterable.kotlin_class b/compiler/frontend/builtins/jet/MutableIterable.kotlin_class index 6cb11f7c097..d8a789c2ef6 100644 Binary files a/compiler/frontend/builtins/jet/MutableIterable.kotlin_class and b/compiler/frontend/builtins/jet/MutableIterable.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/MutableList.kotlin_class b/compiler/frontend/builtins/jet/MutableList.kotlin_class index b3101321bff..45a813641f7 100644 Binary files a/compiler/frontend/builtins/jet/MutableList.kotlin_class and b/compiler/frontend/builtins/jet/MutableList.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/MutableMap.MutableEntry.kotlin_class b/compiler/frontend/builtins/jet/MutableMap.MutableEntry.kotlin_class index faabc3d1910..269cd4cea49 100644 Binary files a/compiler/frontend/builtins/jet/MutableMap.MutableEntry.kotlin_class and b/compiler/frontend/builtins/jet/MutableMap.MutableEntry.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/MutableSet.kotlin_class b/compiler/frontend/builtins/jet/MutableSet.kotlin_class index a47c5080887..6ece288f98c 100644 Binary files a/compiler/frontend/builtins/jet/MutableSet.kotlin_class and b/compiler/frontend/builtins/jet/MutableSet.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Number.kotlin_class b/compiler/frontend/builtins/jet/Number.kotlin_class index fa727325b22..c9533d9b1f4 100644 --- a/compiler/frontend/builtins/jet/Number.kotlin_class +++ b/compiler/frontend/builtins/jet/Number.kotlin_class @@ -1,5 +1,5 @@ & 2 -(Z + Z &06B  Z &07B diff --git a/compiler/frontend/builtins/jet/Progression.kotlin_class b/compiler/frontend/builtins/jet/Progression.kotlin_class index 54362ffcb0f..25f08d9a990 100644 Binary files a/compiler/frontend/builtins/jet/Progression.kotlin_class and b/compiler/frontend/builtins/jet/Progression.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/PropertyMetadata.kotlin_class b/compiler/frontend/builtins/jet/PropertyMetadata.kotlin_class index a2b7e7cde6e..925803982bf 100644 --- a/compiler/frontend/builtins/jet/PropertyMetadata.kotlin_class +++ b/compiler/frontend/builtins/jet/PropertyMetadata.kotlin_class @@ -1,3 +1,3 @@ fÀ2 Z æ0aB -% \ No newline at end of file +& \ No newline at end of file diff --git a/compiler/frontend/builtins/jet/PropertyMetadataImpl.kotlin_class b/compiler/frontend/builtins/jet/PropertyMetadataImpl.kotlin_class index 629e734e597..27c13e5d412 100644 Binary files a/compiler/frontend/builtins/jet/PropertyMetadataImpl.kotlin_class and b/compiler/frontend/builtins/jet/PropertyMetadataImpl.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Set.kotlin_class b/compiler/frontend/builtins/jet/Set.kotlin_class index 5a7277d1eaf..bd044e0de89 100644 Binary files a/compiler/frontend/builtins/jet/Set.kotlin_class and b/compiler/frontend/builtins/jet/Set.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/String.kotlin_class b/compiler/frontend/builtins/jet/String.kotlin_class index 985871b7bbb..cba6174396b 100644 Binary files a/compiler/frontend/builtins/jet/String.kotlin_class and b/compiler/frontend/builtins/jet/String.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/Throwable.kotlin_class b/compiler/frontend/builtins/jet/Throwable.kotlin_class index 83a4eee37f5..d8ee7af5261 100644 --- a/compiler/frontend/builtins/jet/Throwable.kotlin_class +++ b/compiler/frontend/builtins/jet/Throwable.kotlin_class @@ -1,9 +1,9 @@ Æ2 Z0ÙB ÆZ 0ÚB -%Z 0ÛB +&Z 0ÛB j- +Æ0: × -%:Ø +&:Ø ÆB Æ \ No newline at end of file diff --git a/compiler/frontend/builtins/jet/deprecated.kotlin_class b/compiler/frontend/builtins/jet/deprecated.kotlin_class index 9f2bf073833..54ba1f65de5 100644 Binary files a/compiler/frontend/builtins/jet/deprecated.kotlin_class and b/compiler/frontend/builtins/jet/deprecated.kotlin_class differ diff --git a/compiler/frontend/builtins/jet/suppress.kotlin_class b/compiler/frontend/builtins/jet/suppress.kotlin_class index 884452e88f5..c88d805418a 100644 Binary files a/compiler/frontend/builtins/jet/suppress.kotlin_class and b/compiler/frontend/builtins/jet/suppress.kotlin_class differ diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index 9e5e8e9ef1a..3379b00b049 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -166,7 +166,7 @@ public final class ByteRange : jet.Range, jet.Progression { } } -public final class Char : jet.Number, jet.Comparable { +public final class Char : jet.Hashable, jet.Comparable { /*primary*/ private constructor Char() public final fun compareTo(/*0*/ other: jet.Byte): jet.Int public open override /*1*/ fun compareTo(/*0*/ other: jet.Char): jet.Int @@ -213,13 +213,13 @@ public final class Char : jet.Number, jet.Comparable { public final fun times(/*0*/ other: jet.Int): jet.Int public final fun times(/*0*/ other: jet.Long): jet.Long public final fun times(/*0*/ other: jet.Short): jet.Int - public open override /*1*/ fun toByte(): jet.Byte - public open override /*1*/ fun toChar(): jet.Char - public open override /*1*/ fun toDouble(): jet.Double - public open override /*1*/ fun toFloat(): jet.Float - public open override /*1*/ fun toInt(): jet.Int - public open override /*1*/ fun toLong(): jet.Long - public open override /*1*/ fun toShort(): jet.Short + public open fun toByte(): jet.Byte + public open fun toChar(): jet.Char + public open fun toDouble(): jet.Double + public open fun toFloat(): jet.Float + public open fun toInt(): jet.Int + public open fun toLong(): jet.Long + public open fun toShort(): jet.Short } public final class CharArray { diff --git a/compiler/testData/diagnostics/tests/numbers/characterIsNotANumber.kt b/compiler/testData/diagnostics/tests/numbers/characterIsNotANumber.kt new file mode 100644 index 00000000000..ec7e0155f29 --- /dev/null +++ b/compiler/testData/diagnostics/tests/numbers/characterIsNotANumber.kt @@ -0,0 +1,11 @@ +fun foo(n: Number) = n + +fun test() { + foo('a') + + val c = 'c' + foo(c) + + val d: Char? = 'd' + foo(d!!) +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index ada48004162..e6374cb3d94 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -4620,6 +4620,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/numbers"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("characterIsNotANumber.kt") + public void testCharacterIsNotANumber() throws Exception { + doTest("compiler/testData/diagnostics/tests/numbers/characterIsNotANumber.kt"); + } + @TestMetadata("doublesInSimpleConstraints.kt") public void testDoublesInSimpleConstraints() throws Exception { doTest("compiler/testData/diagnostics/tests/numbers/doublesInSimpleConstraints.kt"); diff --git a/idea/builtinsSrc/jet/Numbers.kt b/idea/builtinsSrc/jet/Numbers.kt index 52ddf64bc8d..64fb68c7bc2 100644 --- a/idea/builtinsSrc/jet/Numbers.kt +++ b/idea/builtinsSrc/jet/Numbers.kt @@ -328,7 +328,7 @@ public class Int private () : Number, Comparable { public override fun equals(other : Any?) : Boolean } -public class Char private () : Number, Comparable { +public class Char private () : Hashable, Comparable { public fun compareTo(other : Double) : Int public fun compareTo(other : Float) : Int public fun compareTo(other : Long) : Int @@ -384,13 +384,13 @@ public class Char private () : Number, Comparable { public fun plus() : Int public fun minus() : Int - public override fun toDouble() : Double - public override fun toFloat() : Float - public override fun toLong() : Long - public override fun toInt() : Int - public override fun toChar() : Char - public override fun toShort() : Short - public override fun toByte() : Byte + public fun toDouble() : Double + public fun toFloat() : Float + public fun toLong() : Long + public fun toInt() : Int + public fun toChar() : Char + public fun toShort() : Short + public fun toByte() : Byte public override fun hashCode() : Int public override fun equals(other : Any?) : Boolean