From c796e5338b425345a63cfce85755f6233a62bd75 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 31 Jan 2018 07:04:43 +0300 Subject: [PATCH] Move runtime.jvm sources to stdlib/jvm/runtime Update path in kotlin-runtime Update path in kotlin-mock-runtime-for-tests --- .../src/kotlin/TypeCastException.java | 26 ------ .../KotlinReflectionNotSupportedError.java | 35 -------- .../jvm/internal/CollectionToArray.java | 87 ------------------- .../jvm/internal/markers/KMappedMarker.java | 20 ----- .../internal/markers/KMutableIterable.java | 20 ----- .../internal/markers/KMutableIterator.java | 20 ----- .../jvm/internal/markers/KMutableList.java | 20 ----- .../jvm/internal/markers/KMutableMap.java | 22 ----- .../jvm/internal/markers/KMutableSet.java | 20 ----- libraries/stdlib/build.gradle | 8 +- .../kotlin/KotlinNullPointerException.kt | 7 +- .../stdlib/jvm/runtime}/kotlin/Metadata.kt | 0 .../kotlin/NoWhenBranchMatchedException.kt | 15 ++-- .../stdlib/jvm/runtime}/kotlin/TypeAliases.kt | 0 .../jvm/runtime/kotlin/TypeCastException.kt | 7 +- .../UninitializedPropertyAccessException.kt | 0 .../runtime}/kotlin/jvm/JvmClassMapping.kt | 0 .../jvm/KotlinReflectionNotSupportedError.kt | 21 ++--- .../runtime}/kotlin/jvm/PurelyImplements.kt | 0 .../jvm/annotations/JvmFlagAnnotations.kt | 0 .../jvm/annotations/JvmPlatformAnnotations.kt | 0 .../kotlin/jvm/functions/Functions.kt | 0 .../kotlin/jvm/internal/ArrayIterator.kt | 0 .../kotlin/jvm/internal/ArrayIterators.kt | 0 .../jvm/internal/CallableReference.java | 0 .../ClassBasedDeclarationContainer.kt | 0 .../kotlin/jvm/internal/ClassReference.kt | 0 .../kotlin/jvm/internal/CollectionToArray.kt | 81 +++++++++++++++++ .../internal/DefaultConstructorMarker.java | 0 .../kotlin/jvm/internal/FunctionBase.java | 0 .../kotlin/jvm/internal/FunctionImpl.java | 0 .../jvm/internal/FunctionReference.java | 0 .../jvm/internal/FunctionReferenceImpl.java | 0 .../kotlin/jvm/internal/InlineMarker.java | 0 .../kotlin/jvm/internal/Intrinsics.java | 0 .../runtime}/kotlin/jvm/internal/Lambda.kt | 0 .../jvm/internal/MagicApiIntrinsics.java | 0 .../internal/MutablePropertyReference.java | 0 .../internal/MutablePropertyReference0.java | 0 .../MutablePropertyReference0Impl.java | 0 .../internal/MutablePropertyReference1.java | 0 .../MutablePropertyReference1Impl.java | 0 .../internal/MutablePropertyReference2.java | 0 .../MutablePropertyReference2Impl.java | 0 .../kotlin/jvm/internal/PackageReference.kt | 0 .../jvm/internal/PrimitiveCompanionObjects.kt | 0 .../jvm/internal/PrimitiveSpreadBuilders.kt | 0 .../jvm/internal/PropertyReference.java | 0 .../jvm/internal/PropertyReference0.java | 0 .../jvm/internal/PropertyReference0Impl.java | 0 .../jvm/internal/PropertyReference1.java | 0 .../jvm/internal/PropertyReference1Impl.java | 0 .../jvm/internal/PropertyReference2.java | 0 .../jvm/internal/PropertyReference2Impl.java | 0 .../jvm/runtime}/kotlin/jvm/internal/Ref.java | 0 .../kotlin/jvm/internal/Reflection.java | 0 .../jvm/internal/ReflectionFactory.java | 0 .../kotlin/jvm/internal/SpreadBuilder.java | 0 .../kotlin/jvm/internal/TypeIntrinsics.java | 0 .../jvm/internal/localVariableReferences.kt | 0 .../kotlin/jvm/internal/markers/KMarkers.kt | 24 +++++ .../jvm/runtime}/kotlin/text/TypeAliases.kt | 0 .../src/kotlin/collections/Collections.kt | 4 +- .../reference-public-api/kotlin-runtime.txt | 6 +- .../kotlin-stdlib-runtime-merged.txt | 6 +- libraries/tools/runtime/build.gradle | 6 +- .../mock-runtime-for-test/build.gradle.kts | 24 +---- 67 files changed, 143 insertions(+), 336 deletions(-) delete mode 100644 core/runtime.jvm/src/kotlin/TypeCastException.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/KotlinReflectionNotSupportedError.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/CollectionToArray.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMappedMarker.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterable.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterator.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableList.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableMap.java delete mode 100644 core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableSet.java rename core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableCollection.java => libraries/stdlib/jvm/runtime/kotlin/KotlinNullPointerException.kt (79%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/Metadata.kt (100%) rename core/runtime.jvm/src/kotlin/KotlinNullPointerException.java => libraries/stdlib/jvm/runtime/kotlin/NoWhenBranchMatchedException.kt (68%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/TypeAliases.kt (100%) rename core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableListIterator.java => libraries/stdlib/jvm/runtime/kotlin/TypeCastException.kt (80%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/UninitializedPropertyAccessException.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/JvmClassMapping.kt (100%) rename core/runtime.jvm/src/kotlin/NoWhenBranchMatchedException.java => libraries/stdlib/jvm/runtime/kotlin/jvm/KotlinReflectionNotSupportedError.kt (58%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/PurelyImplements.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/annotations/JvmFlagAnnotations.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/annotations/JvmPlatformAnnotations.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/functions/Functions.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/ArrayIterator.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/ArrayIterators.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/CallableReference.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/ClassBasedDeclarationContainer.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/ClassReference.kt (100%) create mode 100644 libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CollectionToArray.kt rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/DefaultConstructorMarker.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/FunctionBase.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/FunctionImpl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/FunctionReference.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/FunctionReferenceImpl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/InlineMarker.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/Intrinsics.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/Lambda.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MagicApiIntrinsics.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference0.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference0Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference1.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference1Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference2.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/MutablePropertyReference2Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PackageReference.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PrimitiveCompanionObjects.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PrimitiveSpreadBuilders.kt (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference0.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference0Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference1.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference1Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference2.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/PropertyReference2Impl.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/Ref.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/Reflection.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/ReflectionFactory.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/SpreadBuilder.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/TypeIntrinsics.java (100%) rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/jvm/internal/localVariableReferences.kt (100%) create mode 100644 libraries/stdlib/jvm/runtime/kotlin/jvm/internal/markers/KMarkers.kt rename {core/runtime.jvm/src => libraries/stdlib/jvm/runtime}/kotlin/text/TypeAliases.kt (100%) diff --git a/core/runtime.jvm/src/kotlin/TypeCastException.java b/core/runtime.jvm/src/kotlin/TypeCastException.java deleted file mode 100644 index 0205b1088a7..00000000000 --- a/core/runtime.jvm/src/kotlin/TypeCastException.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2010-2015 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; - -public class TypeCastException extends ClassCastException { - public TypeCastException() { - } - - public TypeCastException(String message) { - super(message); - } -} diff --git a/core/runtime.jvm/src/kotlin/jvm/KotlinReflectionNotSupportedError.java b/core/runtime.jvm/src/kotlin/jvm/KotlinReflectionNotSupportedError.java deleted file mode 100644 index 1ed8d97c1de..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/KotlinReflectionNotSupportedError.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm; - -public class KotlinReflectionNotSupportedError extends Error { - public KotlinReflectionNotSupportedError() { - super("Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath"); - } - - public KotlinReflectionNotSupportedError(String message) { - super(message); - } - - public KotlinReflectionNotSupportedError(String message, Throwable cause) { - super(message, cause); - } - - public KotlinReflectionNotSupportedError(Throwable cause) { - super(cause); - } -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/CollectionToArray.java b/core/runtime.jvm/src/kotlin/jvm/internal/CollectionToArray.java deleted file mode 100644 index b4f0b25df9a..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/CollectionToArray.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; - -public class CollectionToArray { - // Based on the implementation from AbstractCollection - - @SuppressWarnings("SSBasedInspection") - private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0]; - - public static Object[] toArray(Collection collection) { - int size = collection.size(); - if (size == 0) return EMPTY_OBJECT_ARRAY; - - Object[] r = new Object[size]; - Iterator it = collection.iterator(); - for (int i = 0; i < size; i++) { - if (!it.hasNext()) { - // fewer elements than expected - return Arrays.copyOf(r, i); - } - r[i] = it.next(); - } - return it.hasNext() ? finishToArray(r, it) : r; - } - - public static T[] toArray(Collection collection, T[] a) { - // Estimate size of array; be prepared to see more or fewer elements - int size = collection.size(); - T[] r = a.length >= size ? a : - (T[])java.lang.reflect.Array - .newInstance(a.getClass().getComponentType(), size); - Iterator it = collection.iterator(); - - for (int i = 0; i < r.length; i++) { - if (! it.hasNext()) { // fewer elements than expected - if (a != r) - return Arrays.copyOf(r, i); - r[i] = null; // null-terminate - return r; - } - r[i] = (T)it.next(); - } - return it.hasNext() ? finishToArray(r, it) : r; - } - - private static T[] finishToArray(T[] r, Iterator it) { - int i = r.length; - while (it.hasNext()) { - int cap = r.length; - if (i == cap) { - int newCap = ((cap / 2) + 1) * 3; - if (newCap <= cap) { // integer overflow - if (cap == Integer.MAX_VALUE) - throw new OutOfMemoryError - ("Required array size too large"); - newCap = Integer.MAX_VALUE; - } - r = Arrays.copyOf(r, newCap); - } - r[i++] = (T)it.next(); - } - // trim if overallocated - return (i == r.length) ? r : Arrays.copyOf(r, i); - } - - private CollectionToArray() { - } -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMappedMarker.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMappedMarker.java deleted file mode 100644 index a0aeed85715..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMappedMarker.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMappedMarker { -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterable.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterable.java deleted file mode 100644 index e4c16678484..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterable.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMutableIterable extends KMappedMarker { -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterator.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterator.java deleted file mode 100644 index c7e281e32f1..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableIterator.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMutableIterator extends KMappedMarker { -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableList.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableList.java deleted file mode 100644 index 808692bf5e4..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableList.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMutableList extends KMutableCollection { -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableMap.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableMap.java deleted file mode 100644 index c86b9344477..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableMap.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMutableMap extends KMappedMarker { - interface Entry extends KMappedMarker { - } -} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableSet.java b/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableSet.java deleted file mode 100644 index c4727726840..00000000000 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableSet.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2015 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.jvm.internal.markers; - -public interface KMutableSet extends KMutableCollection { -} diff --git a/libraries/stdlib/build.gradle b/libraries/stdlib/build.gradle index 2c1ed424a9d..178b376ef3f 100644 --- a/libraries/stdlib/build.gradle +++ b/libraries/stdlib/build.gradle @@ -21,13 +21,7 @@ sourceSets { builtins { java { srcDir "${rootDir}/core/builtins/src" - srcDir "${rootDir}/core/runtime.jvm/src" - exclude 'org/jetbrains/annotations/**' - } - kotlin { - srcDir "${rootDir}/core/builtins/src" - srcDir "${rootDir}/core/runtime.jvm/src" - exclude 'org/jetbrains/annotations/**' + srcDir "jvm/runtime" } } main { diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableCollection.java b/libraries/stdlib/jvm/runtime/kotlin/KotlinNullPointerException.kt similarity index 79% rename from core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableCollection.java rename to libraries/stdlib/jvm/runtime/kotlin/KotlinNullPointerException.kt index fac4f6c8302..25336174357 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableCollection.java +++ b/libraries/stdlib/jvm/runtime/kotlin/KotlinNullPointerException.kt @@ -14,7 +14,10 @@ * limitations under the License. */ -package kotlin.jvm.internal.markers; +package kotlin -public interface KMutableCollection extends KMutableIterable { +public open class KotlinNullPointerException : NullPointerException { + constructor() + + constructor(message: String?) : super(message) } diff --git a/core/runtime.jvm/src/kotlin/Metadata.kt b/libraries/stdlib/jvm/runtime/kotlin/Metadata.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/Metadata.kt rename to libraries/stdlib/jvm/runtime/kotlin/Metadata.kt diff --git a/core/runtime.jvm/src/kotlin/KotlinNullPointerException.java b/libraries/stdlib/jvm/runtime/kotlin/NoWhenBranchMatchedException.kt similarity index 68% rename from core/runtime.jvm/src/kotlin/KotlinNullPointerException.java rename to libraries/stdlib/jvm/runtime/kotlin/NoWhenBranchMatchedException.kt index e6477acf380..3f0455f1150 100644 --- a/core/runtime.jvm/src/kotlin/KotlinNullPointerException.java +++ b/libraries/stdlib/jvm/runtime/kotlin/NoWhenBranchMatchedException.kt @@ -14,13 +14,14 @@ * limitations under the License. */ -package kotlin; +package kotlin -public class KotlinNullPointerException extends NullPointerException { - public KotlinNullPointerException() { - } +public open class NoWhenBranchMatchedException : RuntimeException { + constructor() - public KotlinNullPointerException(String message) { - super(message); - } + constructor(message: String?) : super(message) + + constructor(message: String?, cause: Throwable?) : super(message, cause) + + constructor(cause: Throwable?) : super(cause) } diff --git a/core/runtime.jvm/src/kotlin/TypeAliases.kt b/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/TypeAliases.kt rename to libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableListIterator.java b/libraries/stdlib/jvm/runtime/kotlin/TypeCastException.kt similarity index 80% rename from core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableListIterator.java rename to libraries/stdlib/jvm/runtime/kotlin/TypeCastException.kt index 6f061f14ad9..2d70056d1cb 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/markers/KMutableListIterator.java +++ b/libraries/stdlib/jvm/runtime/kotlin/TypeCastException.kt @@ -14,7 +14,10 @@ * limitations under the License. */ -package kotlin.jvm.internal.markers; +package kotlin -public interface KMutableListIterator extends KMutableIterator { +public open class TypeCastException : ClassCastException { + constructor() + + constructor(message: String?) : super(message) } diff --git a/core/runtime.jvm/src/kotlin/UninitializedPropertyAccessException.kt b/libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/UninitializedPropertyAccessException.kt rename to libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/JvmClassMapping.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/JvmClassMapping.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt diff --git a/core/runtime.jvm/src/kotlin/NoWhenBranchMatchedException.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/KotlinReflectionNotSupportedError.kt similarity index 58% rename from core/runtime.jvm/src/kotlin/NoWhenBranchMatchedException.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/KotlinReflectionNotSupportedError.kt index 54f27b93b59..7466061db07 100644 --- a/core/runtime.jvm/src/kotlin/NoWhenBranchMatchedException.java +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/KotlinReflectionNotSupportedError.kt @@ -14,21 +14,16 @@ * limitations under the License. */ -package kotlin; +package kotlin.jvm -public class NoWhenBranchMatchedException extends RuntimeException { - public NoWhenBranchMatchedException() { - } +import java.lang.Error - public NoWhenBranchMatchedException(String message) { - super(message); - } +public open class KotlinReflectionNotSupportedError : Error { + constructor() : super("Kotlin reflection implementation is not found at runtime. Make sure you have kotlin-reflect.jar in the classpath") - public NoWhenBranchMatchedException(String message, Throwable cause) { - super(message, cause); - } + constructor(message: String?) : super(message) - public NoWhenBranchMatchedException(Throwable cause) { - super(cause); - } + constructor(message: String?, cause: Throwable?) : super(message, cause) + + constructor(cause: Throwable?) : super(cause) } diff --git a/core/runtime.jvm/src/kotlin/jvm/PurelyImplements.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/PurelyImplements.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/PurelyImplements.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/PurelyImplements.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/annotations/JvmFlagAnnotations.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/annotations/JvmFlagAnnotations.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/annotations/JvmPlatformAnnotations.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/annotations/JvmPlatformAnnotations.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/functions/Functions.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/functions/Functions.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterator.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterator.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterator.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/ArrayIterators.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/CallableReference.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CallableReference.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/CallableReference.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CallableReference.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ClassBasedDeclarationContainer.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ClassBasedDeclarationContainer.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/ClassBasedDeclarationContainer.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ClassBasedDeclarationContainer.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ClassReference.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ClassReference.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/ClassReference.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ClassReference.kt diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CollectionToArray.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CollectionToArray.kt new file mode 100644 index 00000000000..1efd78ec54b --- /dev/null +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/CollectionToArray.kt @@ -0,0 +1,81 @@ +/* + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +@file:JvmName("CollectionToArray") + +package kotlin.jvm.internal + +import java.lang.reflect.Array as JavaArray +import java.lang.NullPointerException as JavaNPE +import java.util.Arrays + +private val EMPTY = emptyArray() // shared empty array +private const val MAX_SIZE = Int.MAX_VALUE - 2 // empirically maximal array size that can be allocated without exceeding VM limits + +@JvmName("toArray") +fun collectionToArray(collection: Collection<*>): Array = + toArrayImpl( + collection, + empty = { EMPTY }, + alloc = { size -> arrayOfNulls(size) }, + trim = { result, size -> Arrays.copyOf(result, size) } + ) + +// Note: Array here can have any reference array JVM type at run time +@JvmName("toArray") +fun collectionToArray(collection: Collection<*>, a: Array?): Array { + // Collection.toArray contract requires that NullPointerException is thrown when array is null + if (a == null) throw JavaNPE() + return toArrayImpl( + collection, + empty = { + if (a.size > 0) a[0] = null + a + }, + alloc = { size -> + @Suppress("UNCHECKED_CAST") + if (size <= a.size) a else JavaArray.newInstance(a.javaClass.componentType, size) as Array + }, + trim = { result, size -> + if (result === a) { + a[size] = null + a + } else + Arrays.copyOf(result, size) + } + ) +} + +private inline fun toArrayImpl( + collection: Collection<*>, + empty: () -> Array, + alloc: (Int) -> Array, + trim: (Array, Int) -> Array +): Array { + val size = collection.size + if (size == 0) return empty() // quick path on zero size + val iter = collection.iterator() // allocate iterator for non-empty collection + if (!iter.hasNext()) return empty() // size was > 0, but no actual elements + var result = alloc(size) // use size as a guess to allocate result array + var i = 0 + // invariant: iter.hasNext is true && i < result.size + while (true) { + result[i++] = iter.next() + if (i >= result.size) { + if (!iter.hasNext()) return result // perfect match of array size + // array size was too small -- grow array (invariant: i == result.size > 0 here) + // now grow at a factor of 1.5 (we expect this to be extremely rare, but still use fast code) + // note that corner case here is when i == 1 (should get newSize == 2) + var newSize = (i * 3 + 1) ushr 1 + if (newSize <= i) { // detect overflow in the above line + if (i >= MAX_SIZE) throw OutOfMemoryError() // exceeded max array that VM can allocate + newSize = MAX_SIZE // try max array size that VM can allocate + } + result = Arrays.copyOf(result, newSize) + } else { + if (!iter.hasNext()) return trim(result, i) // ended too early (allocated array too big) + } + } +} diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/DefaultConstructorMarker.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/DefaultConstructorMarker.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/DefaultConstructorMarker.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/DefaultConstructorMarker.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionBase.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/FunctionBase.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionBase.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionImpl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/FunctionImpl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionImpl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionReference.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionReference.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/FunctionReference.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionReference.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/FunctionReferenceImpl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionReferenceImpl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/FunctionReferenceImpl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/FunctionReferenceImpl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/InlineMarker.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/InlineMarker.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/InlineMarker.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/InlineMarker.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Intrinsics.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Intrinsics.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/Lambda.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/Lambda.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Lambda.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MagicApiIntrinsics.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MagicApiIntrinsics.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MagicApiIntrinsics.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MagicApiIntrinsics.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference0.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference0.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference0.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference0.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference0Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference0Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference0Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference0Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference1.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference1.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference1Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference1Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference1Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference2.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference2.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference2Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/MutablePropertyReference2Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/MutablePropertyReference2Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PackageReference.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PackageReference.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PackageReference.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PackageReference.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PrimitiveCompanionObjects.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PrimitiveCompanionObjects.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PrimitiveCompanionObjects.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PrimitiveCompanionObjects.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PrimitiveSpreadBuilders.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PrimitiveSpreadBuilders.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PrimitiveSpreadBuilders.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PrimitiveSpreadBuilders.kt diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference0.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference0.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference0.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference0.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference0Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference0Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference0Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference0Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference1.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference1.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference1Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference1Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference1Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference2.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference2.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference2Impl.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2Impl.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/PropertyReference2Impl.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/PropertyReference2Impl.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/Ref.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Ref.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/Ref.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Ref.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/Reflection.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Reflection.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/Reflection.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/Reflection.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/ReflectionFactory.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ReflectionFactory.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/ReflectionFactory.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ReflectionFactory.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/SpreadBuilder.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/SpreadBuilder.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/SpreadBuilder.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/TypeIntrinsics.java b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/TypeIntrinsics.java similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/TypeIntrinsics.java rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/TypeIntrinsics.java diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/localVariableReferences.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/localVariableReferences.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/jvm/internal/localVariableReferences.kt rename to libraries/stdlib/jvm/runtime/kotlin/jvm/internal/localVariableReferences.kt diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/markers/KMarkers.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/markers/KMarkers.kt new file mode 100644 index 00000000000..b2d562449b9 --- /dev/null +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/markers/KMarkers.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package kotlin.jvm.internal.markers + +interface KMappedMarker + +interface KMutableIterable : KMappedMarker + +interface KMutableCollection : KMutableIterable + +interface KMutableList : KMutableCollection + +interface KMutableIterator : KMappedMarker + +interface KMutableListIterator : KMutableIterator + +interface KMutableMap : KMappedMarker { + interface Entry : KMappedMarker +} + +interface KMutableSet : KMutableCollection \ No newline at end of file diff --git a/core/runtime.jvm/src/kotlin/text/TypeAliases.kt b/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt similarity index 100% rename from core/runtime.jvm/src/kotlin/text/TypeAliases.kt rename to libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt diff --git a/libraries/stdlib/src/kotlin/collections/Collections.kt b/libraries/stdlib/src/kotlin/collections/Collections.kt index 31b681a8fc7..454c9ef2f48 100644 --- a/libraries/stdlib/src/kotlin/collections/Collections.kt +++ b/libraries/stdlib/src/kotlin/collections/Collections.kt @@ -228,12 +228,12 @@ internal fun List.optimizeReadOnlyList() = when (size) { @JvmVersion @kotlin.internal.InlineOnly internal inline fun copyToArrayImpl(collection: Collection<*>): Array = - kotlin.jvm.internal.CollectionToArray.toArray(collection) + kotlin.jvm.internal.collectionToArray(collection) @JvmVersion @kotlin.internal.InlineOnly internal inline fun copyToArrayImpl(collection: Collection<*>, array: Array): Array = - kotlin.jvm.internal.CollectionToArray.toArray(collection, array) + kotlin.jvm.internal.collectionToArray(collection, array as Array) as Array // copies typed varargs array to array of objects @JvmVersion diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt index bc527c8748c..56b9a880b53 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-runtime.txt @@ -445,9 +445,9 @@ public final class kotlin/jvm/internal/ClassReference : kotlin/jvm/internal/Clas public fun toString ()Ljava/lang/String; } -public class kotlin/jvm/internal/CollectionToArray { - public static fun toArray (Ljava/util/Collection;)[Ljava/lang/Object; - public static fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; +public final class kotlin/jvm/internal/CollectionToArray { + public static final fun toArray (Ljava/util/Collection;)[Ljava/lang/Object; + public static final fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; } public final class kotlin/jvm/internal/DoubleCompanionObject { diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index a190731f1a2..43f9314c86c 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -2495,9 +2495,9 @@ public final class kotlin/jvm/internal/ClassReference : kotlin/jvm/internal/Clas public fun toString ()Ljava/lang/String; } -public class kotlin/jvm/internal/CollectionToArray { - public static fun toArray (Ljava/util/Collection;)[Ljava/lang/Object; - public static fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; +public final class kotlin/jvm/internal/CollectionToArray { + public static final fun toArray (Ljava/util/Collection;)[Ljava/lang/Object; + public static final fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; } public final class kotlin/jvm/internal/DoubleCompanionObject { diff --git a/libraries/tools/runtime/build.gradle b/libraries/tools/runtime/build.gradle index c45d829d047..27125b9072b 100644 --- a/libraries/tools/runtime/build.gradle +++ b/libraries/tools/runtime/build.gradle @@ -15,11 +15,7 @@ sourceSets { if(!System.properties.'idea.active') { java { srcDir "${rootDir}/core/builtins/src" - srcDir "${rootDir}/core/runtime.jvm/src" - exclude 'org/jetbrains/annotations/**' - } - kotlin { - exclude 'org/jetbrains/annotations/**' + srcDir "${rootDir}/libraries/stdlib/jvm/runtime" } } } diff --git a/prepare/mock-runtime-for-test/build.gradle.kts b/prepare/mock-runtime-for-test/build.gradle.kts index d04024e2c40..45a942afb29 100644 --- a/prepare/mock-runtime-for-test/build.gradle.kts +++ b/prepare/mock-runtime-for-test/build.gradle.kts @@ -15,24 +15,16 @@ sourceSets { "main" { java.apply { srcDir(File(buildDir, "src")) -// srcDir(File(rootDir, "core", "runtime.jvm", "src")) -// .include("kotlin/TypeAliases.kt", -// "kotlin/text/TypeAliases.kt") -// srcDir(File(rootDir, "libraries", "stdlib", "src")) -// .include("kotlin/collections/TypeAliases.kt", -// "kotlin/jvm/JvmVersion.kt", -// "kotlin/util/Standard.kt", -// "kotlin/internal/Annotations.kt") } } "test" {} } val copySources by task { - from(File(rootDir, "core", "runtime.jvm", "src")) + from(project(":kotlin-stdlib").projectDir.resolve("jvm/runtime")) .include("kotlin/TypeAliases.kt", "kotlin/text/TypeAliases.kt") - from(File(rootDir, "libraries", "stdlib", "src")) + from(project(":kotlin-stdlib").projectDir.resolve("src")) .include("kotlin/collections/TypeAliases.kt", "kotlin/jvm/JvmVersion.kt", "kotlin/util/Standard.kt", @@ -57,18 +49,6 @@ tasks.withType { val jar = runtimeJar { dependsOn(":core:builtins:serialize") from(fileTree("${rootProject.extra["distDir"]}/builtins")) { include("kotlin/**") } -// dependsOn(":kotlin-stdlib:classes") -// project(":kotlin-stdlib").let { p -> -// p.pluginManager.withPlugin("java") { -// from(p.the().sourceSets.getByName("main").output) { -// include("kotlin/**/TypeAliases*.class", -// "kotlin/jvm/JvmVersion.class", -// "kotlin/StandardKt*.class", -// "kotlin/NotImplementedError*.class", -// "kotlin/internal/*.class") -// } -// } -// } } val distDir: String by rootProject.extra