diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JvmFunctionImplTypes.java b/compiler/backend/src/org/jetbrains/jet/codegen/JvmFunctionImplTypes.java index 0cf312e4d07..99c82023d92 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JvmFunctionImplTypes.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JvmFunctionImplTypes.java @@ -80,15 +80,16 @@ public class JvmFunctionImplTypes { @NotNull private List getKFunctionsImplList() { if (kFunctionsList == null) { - MutablePackageFragmentDescriptor reflect = - new MutablePackageFragmentDescriptor(DescriptorUtils.getContainingModule(functionImpl), new FqName("kotlin.reflect")); + MutablePackageFragmentDescriptor packageFragment = new MutablePackageFragmentDescriptor( + DescriptorUtils.getContainingModule(functionImpl), new FqName("kotlin.reflect.jvm.internal") + ); ImmutableList.Builder builder = ImmutableList.builder(); for (int i = 0; i < KotlinBuiltIns.FUNCTION_TRAIT_COUNT; i++) { builder.add(new KFunctions( - createKFunctionImpl(reflect, "KFunctionImpl" + i, reflectionTypes.getKFunction(i)), - createKFunctionImpl(reflect, "KMemberFunctionImpl" + i, reflectionTypes.getKMemberFunction(i)), - createKFunctionImpl(reflect, "KExtensionFunctionImpl" + i, reflectionTypes.getKExtensionFunction(i)) + createKFunctionImpl(packageFragment, "KFunction" + i + "Impl", reflectionTypes.getKFunction(i)), + createKFunctionImpl(packageFragment, "KMemberFunction" + i + "Impl", reflectionTypes.getKMemberFunction(i)), + createKFunctionImpl(packageFragment, "KExtensionFunction" + i + "Impl", reflectionTypes.getKExtensionFunction(i)) )); } kFunctionsList = builder.build(); diff --git a/compiler/testData/codegen/boxWithStdlib/callableReference/function/toString.kt b/compiler/testData/codegen/boxWithStdlib/callableReference/function/toString.kt index a004bc8ff86..148ee943a8a 100644 --- a/compiler/testData/codegen/boxWithStdlib/callableReference/function/toString.kt +++ b/compiler/testData/codegen/boxWithStdlib/callableReference/function/toString.kt @@ -9,15 +9,15 @@ fun A.baz() {} fun box(): String { val f = "${::foo}" - if (f != "kotlin.reflect.KFunctionImpl1") return "Fail foo: $f" + if (f != "kotlin.reflect.jvm.internal.KFunction1Impl") return "Fail foo: $f" val nameOfA = (A() as java.lang.Object).getClass().getName() val g = "${A::bar}" - if (g != "kotlin.reflect.KMemberFunctionImpl0<$nameOfA, java.lang.String>") return "Fail bar: $g" + if (g != "kotlin.reflect.jvm.internal.KMemberFunction0Impl<$nameOfA, java.lang.String>") return "Fail bar: $g" val h = "${A::baz}" - if (h != "kotlin.reflect.KExtensionFunctionImpl0<$nameOfA, kotlin.Unit>") return "Fail baz: $h" + if (h != "kotlin.reflect.jvm.internal.KExtensionFunction0Impl<$nameOfA, kotlin.Unit>") return "Fail baz: $h" return "OK" } diff --git a/core/runtime.jvm/src/kotlin/reflect/KExtensionFunctionsImpl.kt b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KExtensionFunctionsImpl.kt similarity index 80% rename from core/runtime.jvm/src/kotlin/reflect/KExtensionFunctionsImpl.kt rename to core/runtime.jvm/src/kotlin/reflect/jvm/internal/KExtensionFunctionsImpl.kt index b27be01047b..65b076ef0bc 100644 --- a/core/runtime.jvm/src/kotlin/reflect/KExtensionFunctionsImpl.kt +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KExtensionFunctionsImpl.kt @@ -16,76 +16,76 @@ // Auto-generated file. DO NOT EDIT! -package kotlin.reflect +package kotlin.reflect.jvm.internal import java.io.Serializable -public abstract class KExtensionFunctionImpl0 : KExtensionFunction0, Serializable { +public abstract class KExtensionFunction0Impl : KExtensionFunction0, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl1 : KExtensionFunction1, Serializable { +public abstract class KExtensionFunction1Impl : KExtensionFunction1, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl2 : KExtensionFunction2, Serializable { +public abstract class KExtensionFunction2Impl : KExtensionFunction2, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl3 : KExtensionFunction3, Serializable { +public abstract class KExtensionFunction3Impl : KExtensionFunction3, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl4 : KExtensionFunction4, Serializable { +public abstract class KExtensionFunction4Impl : KExtensionFunction4, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl5 : KExtensionFunction5, Serializable { +public abstract class KExtensionFunction5Impl : KExtensionFunction5, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl6 : KExtensionFunction6, Serializable { +public abstract class KExtensionFunction6Impl : KExtensionFunction6, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl7 : KExtensionFunction7, Serializable { +public abstract class KExtensionFunction7Impl : KExtensionFunction7, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl8 : KExtensionFunction8, Serializable { +public abstract class KExtensionFunction8Impl : KExtensionFunction8, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl9 : KExtensionFunction9, Serializable { +public abstract class KExtensionFunction9Impl : KExtensionFunction9, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl10 : KExtensionFunction10, Serializable { +public abstract class KExtensionFunction10Impl : KExtensionFunction10, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl11 : KExtensionFunction11, Serializable { +public abstract class KExtensionFunction11Impl : KExtensionFunction11, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl12 : KExtensionFunction12, Serializable { +public abstract class KExtensionFunction12Impl : KExtensionFunction12, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl13 : KExtensionFunction13, Serializable { +public abstract class KExtensionFunction13Impl : KExtensionFunction13, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl14 : KExtensionFunction14, Serializable { +public abstract class KExtensionFunction14Impl : KExtensionFunction14, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl15 : KExtensionFunction15, Serializable { +public abstract class KExtensionFunction15Impl : KExtensionFunction15, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl16 : KExtensionFunction16, Serializable { +public abstract class KExtensionFunction16Impl : KExtensionFunction16, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl17 : KExtensionFunction17, Serializable { +public abstract class KExtensionFunction17Impl : KExtensionFunction17, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl18 : KExtensionFunction18, Serializable { +public abstract class KExtensionFunction18Impl : KExtensionFunction18, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl19 : KExtensionFunction19, Serializable { +public abstract class KExtensionFunction19Impl : KExtensionFunction19, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl20 : KExtensionFunction20, Serializable { +public abstract class KExtensionFunction20Impl : KExtensionFunction20, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl21 : KExtensionFunction21, Serializable { +public abstract class KExtensionFunction21Impl : KExtensionFunction21, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KExtensionFunctionImpl22 : KExtensionFunction22, Serializable { +public abstract class KExtensionFunction22Impl : KExtensionFunction22, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } diff --git a/core/runtime.jvm/src/kotlin/reflect/KFunctionsImpl.kt b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KFunctionsImpl.kt similarity index 78% rename from core/runtime.jvm/src/kotlin/reflect/KFunctionsImpl.kt rename to core/runtime.jvm/src/kotlin/reflect/jvm/internal/KFunctionsImpl.kt index 40f990bdbbf..fa8c3c5bf0c 100644 --- a/core/runtime.jvm/src/kotlin/reflect/KFunctionsImpl.kt +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KFunctionsImpl.kt @@ -16,76 +16,76 @@ // Auto-generated file. DO NOT EDIT! -package kotlin.reflect +package kotlin.reflect.jvm.internal import java.io.Serializable -public abstract class KFunctionImpl0 : KFunction0, Serializable { +public abstract class KFunction0Impl : KFunction0, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl1 : KFunction1, Serializable { +public abstract class KFunction1Impl : KFunction1, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl2 : KFunction2, Serializable { +public abstract class KFunction2Impl : KFunction2, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl3 : KFunction3, Serializable { +public abstract class KFunction3Impl : KFunction3, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl4 : KFunction4, Serializable { +public abstract class KFunction4Impl : KFunction4, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl5 : KFunction5, Serializable { +public abstract class KFunction5Impl : KFunction5, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl6 : KFunction6, Serializable { +public abstract class KFunction6Impl : KFunction6, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl7 : KFunction7, Serializable { +public abstract class KFunction7Impl : KFunction7, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl8 : KFunction8, Serializable { +public abstract class KFunction8Impl : KFunction8, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl9 : KFunction9, Serializable { +public abstract class KFunction9Impl : KFunction9, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl10 : KFunction10, Serializable { +public abstract class KFunction10Impl : KFunction10, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl11 : KFunction11, Serializable { +public abstract class KFunction11Impl : KFunction11, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl12 : KFunction12, Serializable { +public abstract class KFunction12Impl : KFunction12, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl13 : KFunction13, Serializable { +public abstract class KFunction13Impl : KFunction13, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl14 : KFunction14, Serializable { +public abstract class KFunction14Impl : KFunction14, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl15 : KFunction15, Serializable { +public abstract class KFunction15Impl : KFunction15, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl16 : KFunction16, Serializable { +public abstract class KFunction16Impl : KFunction16, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl17 : KFunction17, Serializable { +public abstract class KFunction17Impl : KFunction17, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl18 : KFunction18, Serializable { +public abstract class KFunction18Impl : KFunction18, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl19 : KFunction19, Serializable { +public abstract class KFunction19Impl : KFunction19, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl20 : KFunction20, Serializable { +public abstract class KFunction20Impl : KFunction20, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl21 : KFunction21, Serializable { +public abstract class KFunction21Impl : KFunction21, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KFunctionImpl22 : KFunction22, Serializable { +public abstract class KFunction22Impl : KFunction22, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } diff --git a/core/runtime.jvm/src/kotlin/reflect/KMemberFunctionsImpl.kt b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionsImpl.kt similarity index 80% rename from core/runtime.jvm/src/kotlin/reflect/KMemberFunctionsImpl.kt rename to core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionsImpl.kt index d5d80905596..af64bae9e27 100644 --- a/core/runtime.jvm/src/kotlin/reflect/KMemberFunctionsImpl.kt +++ b/core/runtime.jvm/src/kotlin/reflect/jvm/internal/KMemberFunctionsImpl.kt @@ -16,76 +16,76 @@ // Auto-generated file. DO NOT EDIT! -package kotlin.reflect +package kotlin.reflect.jvm.internal import java.io.Serializable -public abstract class KMemberFunctionImpl0 : KMemberFunction0, Serializable { +public abstract class KMemberFunction0Impl : KMemberFunction0, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl1 : KMemberFunction1, Serializable { +public abstract class KMemberFunction1Impl : KMemberFunction1, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl2 : KMemberFunction2, Serializable { +public abstract class KMemberFunction2Impl : KMemberFunction2, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl3 : KMemberFunction3, Serializable { +public abstract class KMemberFunction3Impl : KMemberFunction3, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl4 : KMemberFunction4, Serializable { +public abstract class KMemberFunction4Impl : KMemberFunction4, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl5 : KMemberFunction5, Serializable { +public abstract class KMemberFunction5Impl : KMemberFunction5, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl6 : KMemberFunction6, Serializable { +public abstract class KMemberFunction6Impl : KMemberFunction6, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl7 : KMemberFunction7, Serializable { +public abstract class KMemberFunction7Impl : KMemberFunction7, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl8 : KMemberFunction8, Serializable { +public abstract class KMemberFunction8Impl : KMemberFunction8, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl9 : KMemberFunction9, Serializable { +public abstract class KMemberFunction9Impl : KMemberFunction9, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl10 : KMemberFunction10, Serializable { +public abstract class KMemberFunction10Impl : KMemberFunction10, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl11 : KMemberFunction11, Serializable { +public abstract class KMemberFunction11Impl : KMemberFunction11, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl12 : KMemberFunction12, Serializable { +public abstract class KMemberFunction12Impl : KMemberFunction12, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl13 : KMemberFunction13, Serializable { +public abstract class KMemberFunction13Impl : KMemberFunction13, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl14 : KMemberFunction14, Serializable { +public abstract class KMemberFunction14Impl : KMemberFunction14, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl15 : KMemberFunction15, Serializable { +public abstract class KMemberFunction15Impl : KMemberFunction15, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl16 : KMemberFunction16, Serializable { +public abstract class KMemberFunction16Impl : KMemberFunction16, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl17 : KMemberFunction17, Serializable { +public abstract class KMemberFunction17Impl : KMemberFunction17, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl18 : KMemberFunction18, Serializable { +public abstract class KMemberFunction18Impl : KMemberFunction18, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl19 : KMemberFunction19, Serializable { +public abstract class KMemberFunction19Impl : KMemberFunction19, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl20 : KMemberFunction20, Serializable { +public abstract class KMemberFunction20Impl : KMemberFunction20, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl21 : KMemberFunction21, Serializable { +public abstract class KMemberFunction21Impl : KMemberFunction21, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } -public abstract class KMemberFunctionImpl22 : KMemberFunction22, Serializable { +public abstract class KMemberFunction22Impl : KMemberFunction22, Serializable { override fun toString() = "${getClass().getGenericSuperclass()}" } diff --git a/generators/src/org/jetbrains/jet/generators/builtins/functions.kt b/generators/src/org/jetbrains/jet/generators/builtins/functions.kt index 461db07513b..2b4dacb2c86 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/functions.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/functions.kt @@ -34,9 +34,9 @@ enum class FunctionKind( K_EXTENSION_FUNCTION : FunctionKind("KExtensionFunction", true, "ExtensionFunction") fun getFileName() = (if (isReflection()) "reflect/" else "") + classNamePrefix + "s.kt" - fun getImplFileName() = "reflect/" + classNamePrefix + "sImpl.kt" + fun getImplFileName() = "reflect/jvm/internal/${classNamePrefix}sImpl.kt" fun getClassName(i: Int) = classNamePrefix + i - fun getImplClassName(i: Int) = classNamePrefix + "Impl" + i + fun getImplClassName(i: Int) = classNamePrefix + i + "Impl" fun getSuperClassName(i: Int) = superClassNamePrefix?.plus(i) fun isReflection() = superClassNamePrefix != null @@ -103,7 +103,9 @@ class GenerateFunctions(out: PrintWriter, kind: FunctionKind) : GenerateFunction } } -class GenerateFunctionsImpl(out: PrintWriter, kind: FunctionKind) : GenerateFunctionsBase(out, kind) { +class GenerateKFunctionsImpl(out: PrintWriter, kind: FunctionKind) : GenerateFunctionsBase(out, kind) { + override fun getPackage() = "kotlin.reflect.jvm.internal" + override fun generateBody() { out.println("import java.io.Serializable") out.println() diff --git a/generators/src/org/jetbrains/jet/generators/builtins/generateBuiltIns.kt b/generators/src/org/jetbrains/jet/generators/builtins/generateBuiltIns.kt index 5a8fc43c3ed..b3952068cbf 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/generateBuiltIns.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/generateBuiltIns.kt @@ -61,7 +61,7 @@ fun generateBuiltIns(generate: (File, (PrintWriter) -> BuiltInsSourceGenerator) for (kind in FunctionKind.values()) { if (kind.isReflection()) { generate(File(REFLECTION_DIR, kind.getFileName())) { GenerateFunctions(it, kind) } - generate(File(RUNTIME_JVM_DIR, kind.getImplFileName()), { GenerateFunctionsImpl(it, kind) }) + generate(File(RUNTIME_JVM_DIR, kind.getImplFileName()), { GenerateKFunctionsImpl(it, kind) }) } else { generate(File(BUILT_INS_SRC_DIR, kind.getFileName())) { GenerateFunctions(it, kind) }