From 245b16dccc3ac8cfe437e393c7b2588c6ef4ee80 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 9 Dec 2014 01:29:11 +0300 Subject: [PATCH] Drop unneeded factory methods due to ABI version increase Either ReflectionFactory or direct creation is now used instead --- .../kotlin/reflect/jvm/internal/factory.kt | 39 ------------------- .../reflect/jvm/internal/foreignKClasses.kt | 4 +- .../src/kotlin/reflect/jvm/mapping.kt | 15 ++++--- .../src/kotlin/jvm/internal/Intrinsics.java | 7 ---- .../decompiler/stubBuilder/clsStubBuilding.kt | 1 - 5 files changed, 11 insertions(+), 55 deletions(-) delete mode 100644 core/reflection.jvm/src/kotlin/reflect/jvm/internal/factory.kt diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/factory.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/factory.kt deleted file mode 100644 index cad22694cf6..00000000000 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/factory.kt +++ /dev/null @@ -1,39 +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.reflect.jvm.internal - -import kotlin.reflect.* - -// TODO: drop these functions, use ReflectionFactory instead - -fun kClass(jClass: Class): KClassImpl = - KClassImpl(jClass, false) - -fun kPackage(jClass: Class<*>): KPackageImpl = - KPackageImpl(jClass) - -fun topLevelVariable(name: String, owner: KPackageImpl): KTopLevelVariableImpl = - KTopLevelVariableImpl(name, owner) - -fun mutableTopLevelVariable(name: String, owner: KPackageImpl): KMutableTopLevelVariableImpl = - KMutableTopLevelVariableImpl(name, owner) - -fun topLevelExtensionProperty(name: String, owner: KPackageImpl, receiver: Class): KTopLevelExtensionPropertyImpl = - KTopLevelExtensionPropertyImpl(name, owner, receiver) - -fun mutableTopLevelExtensionProperty(name: String, owner: KPackageImpl, receiver: Class): KMutableTopLevelExtensionPropertyImpl = - KMutableTopLevelExtensionPropertyImpl(name, owner, receiver) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt index 9959b82d9c9..e8037d40fbf 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/foreignKClasses.kt @@ -53,13 +53,13 @@ fun foreignKotlinClass(jClass: Class): KClassImpl { val newArray = arrayOfNulls>>(size + 1) // Don't use Arrays.copyOf because it works reflectively System.arraycopy(cached, 0, newArray, 0, size) - val newKClass = kClass(jClass) + val newKClass = KClassImpl(jClass, false) newArray[size] = WeakReference(newKClass) FOREIGN_K_CLASSES = FOREIGN_K_CLASSES.plus(name, newArray) return newKClass } - val newKClass = kClass(jClass) + val newKClass = KClassImpl(jClass, false) FOREIGN_K_CLASSES = FOREIGN_K_CLASSES.plus(name, WeakReference(newKClass)) return newKClass } diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/mapping.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/mapping.kt index 3dfa6c1307b..da2bc4efda3 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/mapping.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/mapping.kt @@ -17,6 +17,7 @@ package kotlin.reflect.jvm import java.lang.reflect.* +import kotlin.jvm.internal.Reflection import kotlin.reflect.* import kotlin.reflect.jvm.internal.* @@ -58,11 +59,13 @@ public val KMemberProperty<*, *>.javaField: Field? // Java reflection -> Kotlin reflection +// TODO: getstatic $kotlinClass or go to foreignKClasses public val Class.kotlin: KClass - get() = kClass(this) + get() = KClassImpl(this, false) +// TODO: getstatic $kotlinPackage public val Class<*>.kotlinPackage: KPackage - get() = kPackage(this) + get() = KPackageImpl(this) public val Field.kotlin: KProperty<*> @@ -73,12 +76,12 @@ public val Field.kotlin: KProperty<*> val static = Modifier.isStatic(modifiers) val final = Modifier.isFinal(modifiers) if (static) { - val kPackage = kPackage(clazz) - return if (final) topLevelVariable(name, kPackage) else mutableTopLevelVariable(name, kPackage) + val kPackage = clazz.kotlinPackage + return if (final) Reflection.topLevelVariable(name, kPackage) else Reflection.mutableTopLevelVariable(name, kPackage) } else { - val kClass = kClass(clazz as Class) - return if (final) kClass.memberProperty(name) else kClass.mutableMemberProperty(name) + val kClass = (clazz as Class).kotlin + return if (final) Reflection.memberProperty(name, kClass) else Reflection.mutableMemberProperty(name, kClass) } } diff --git a/core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java b/core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java index 4053fc9736a..63a79af2e1c 100644 --- a/core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java +++ b/core/runtime.jvm/src/kotlin/jvm/internal/Intrinsics.java @@ -16,7 +16,6 @@ package kotlin.jvm.internal; -import kotlin.IntRange; import kotlin.KotlinNullPointerException; import java.util.Arrays; @@ -94,12 +93,6 @@ public class Intrinsics { return first == null ? second == null : first.equals(second); } - // This method is not used from generated code anymore but kept for backwards compatibility - @Deprecated - public static IntRange arrayIndices(int length) { - return new IntRange(0, length - 1); - } - private static void throwUndefinedForReified() { throw new UnsupportedOperationException("You should not use functions with reified parameter without inline"); } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt index 0dd1a63a146..61156db965b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt @@ -43,7 +43,6 @@ import org.jetbrains.kotlin.psi.JetTypeReference import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.AnnotatedCallableKind import org.jetbrains.kotlin.serialization.ProtoBuf.Callable.CallableKind -import java.util.ArrayList fun createTopLevelClassStub(classId: ClassId, classProto: ProtoBuf.Class, context: ClsStubBuilderContext): KotlinFileStubImpl { val fileStub = createFileStub(classId.getPackageFqName())