From 63535393e7fe6a1b92860b21b618e26c7b251fab Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Mon, 14 Nov 2016 00:54:31 +0300 Subject: [PATCH] Move Comparator to kotlin.comparisons and make it imported by default. #KT-2084 --- .../kotlin/resolve/TargetPlatform.kt | 1 + js/js.libraries/src/core/Comparator.kt | 26 +++++++++++++++++++ js/js.libraries/src/core/javautil.kt | 8 ------ .../src/kotlin/comparisons/TypeAliases.kt | 5 ++++ 4 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 js/js.libraries/src/core/Comparator.kt create mode 100644 libraries/stdlib/src/kotlin/comparisons/TypeAliases.kt diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 0bddedd6caf..d799a9339db 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -43,6 +43,7 @@ abstract class TargetPlatform(val platformName: String) { add(ImportPath("kotlin.ranges.*")) add(ImportPath("kotlin.sequences.*")) add(ImportPath("kotlin.text.*")) + add(ImportPath("kotlin.comparisons.Comparator")) } override val platformConfigurator = diff --git a/js/js.libraries/src/core/Comparator.kt b/js/js.libraries/src/core/Comparator.kt new file mode 100644 index 00000000000..c7573b9499d --- /dev/null +++ b/js/js.libraries/src/core/Comparator.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package kotlin.comparisons + + +public interface Comparator { + @JsName("compare") fun compare(a: T, b: T): Int +} + +public inline fun Comparator(crossinline comparison: (T, T) -> Int): Comparator = object : Comparator { + override fun compare(a: T, b: T): Int = comparison(a, b) +} diff --git a/js/js.libraries/src/core/javautil.kt b/js/js.libraries/src/core/javautil.kt index d891d72dab4..970f73cf229 100644 --- a/js/js.libraries/src/core/javautil.kt +++ b/js/js.libraries/src/core/javautil.kt @@ -16,14 +16,6 @@ package java.util -interface Comparator { - @JsName("compare") fun compare(a: T, b: T): Int -} - -inline fun Comparator(crossinline comparison: (T, T) -> Int): Comparator = object : Comparator { - override fun compare(a: T, b: T): Int = comparison(a, b) -} - // TODO: Not supported // typealias Date = kotlin.js.Date diff --git a/libraries/stdlib/src/kotlin/comparisons/TypeAliases.kt b/libraries/stdlib/src/kotlin/comparisons/TypeAliases.kt new file mode 100644 index 00000000000..6de84b9087d --- /dev/null +++ b/libraries/stdlib/src/kotlin/comparisons/TypeAliases.kt @@ -0,0 +1,5 @@ +@file:kotlin.jvm.JvmVersion + +package kotlin.comparisons + +public typealias Comparator = java.util.Comparator