diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/reflect/ReflectionTypes.kt b/compiler/frontend/src/org/jetbrains/jet/lang/reflect/ReflectionTypes.kt index 1339a9ead6b..1fb06a91b18 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/reflect/ReflectionTypes.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/reflect/ReflectionTypes.kt @@ -30,9 +30,8 @@ public class ReflectionTypes(private val module: ModuleDescriptor) { private val kotlinReflect: JetScope by Delegates.lazy { // TODO: handle errors gracefully (error types) val kotlin = module.getPackage(FqName("kotlin")) ?: error("Package kotlin not found in $module") - // TODO: move K*FunctionN under kotlin.reflect.* - // val reflect = kotlin.getMemberScope().getPackage(Name.identifier("reflect")) ?: error("Package reflect not found in $kotlin") - kotlin.getMemberScope() + val reflect = kotlin.getMemberScope().getPackage(Name.identifier("reflect")) ?: error("Package reflect not found in $kotlin") + reflect.getMemberScope() } fun find(className: String): ClassDescriptor { diff --git a/core/reflection/src/kotlin/KExtensionFunctions.kt b/core/reflection/src/kotlin/reflect/KExtensionFunctions.kt similarity index 99% rename from core/reflection/src/kotlin/KExtensionFunctions.kt rename to core/reflection/src/kotlin/reflect/KExtensionFunctions.kt index 719b7ca7102..e20fbc443a9 100644 --- a/core/reflection/src/kotlin/KExtensionFunctions.kt +++ b/core/reflection/src/kotlin/reflect/KExtensionFunctions.kt @@ -16,7 +16,7 @@ // Auto-generated file. DO NOT EDIT! -package kotlin +package kotlin.reflect public trait KExtensionFunction0 : ExtensionFunction0 public trait KExtensionFunction1 : ExtensionFunction1 diff --git a/core/reflection/src/kotlin/KFunctions.kt b/core/reflection/src/kotlin/reflect/KFunctions.kt similarity index 99% rename from core/reflection/src/kotlin/KFunctions.kt rename to core/reflection/src/kotlin/reflect/KFunctions.kt index 5799cc48eb2..0eb0ccad8d9 100644 --- a/core/reflection/src/kotlin/KFunctions.kt +++ b/core/reflection/src/kotlin/reflect/KFunctions.kt @@ -16,7 +16,7 @@ // Auto-generated file. DO NOT EDIT! -package kotlin +package kotlin.reflect public trait KFunction0 : Function0 public trait KFunction1 : Function1 diff --git a/core/reflection/src/kotlin/KMemberFunctions.kt b/core/reflection/src/kotlin/reflect/KMemberFunctions.kt similarity index 99% rename from core/reflection/src/kotlin/KMemberFunctions.kt rename to core/reflection/src/kotlin/reflect/KMemberFunctions.kt index 69652b87e3d..0d73b8d85b4 100644 --- a/core/reflection/src/kotlin/KMemberFunctions.kt +++ b/core/reflection/src/kotlin/reflect/KMemberFunctions.kt @@ -16,7 +16,7 @@ // Auto-generated file. DO NOT EDIT! -package kotlin +package kotlin.reflect public trait KMemberFunction0 : ExtensionFunction0 public trait KMemberFunction1 : ExtensionFunction1 diff --git a/generators/src/org/jetbrains/jet/generators/builtins/functions.kt b/generators/src/org/jetbrains/jet/generators/builtins/functions.kt index 4852ab27b8a..b38a3c17d04 100644 --- a/generators/src/org/jetbrains/jet/generators/builtins/functions.kt +++ b/generators/src/org/jetbrains/jet/generators/builtins/functions.kt @@ -33,7 +33,7 @@ enum class FunctionKind( K_MEMBER_FUNCTION : FunctionKind("KMemberFunction", true, "ExtensionFunction") K_EXTENSION_FUNCTION : FunctionKind("KExtensionFunction", true, "ExtensionFunction") - fun getFileName() = classNamePrefix + "s.kt" + fun getFileName() = (if (isReflection()) "reflect/" else "") + classNamePrefix + "s.kt" fun getImplFileName() = (if (isReflection()) "reflect/" else "") + classNamePrefix + "sImpl.kt" fun getClassName(i: Int) = classNamePrefix + i fun getImplClassName(i: Int) = classNamePrefix + "Impl" + i @@ -43,6 +43,8 @@ enum class FunctionKind( } abstract class GenerateFunctionsBase(out: PrintWriter, val kind: FunctionKind): BuiltInsSourceGenerator(out) { + override fun getPackage() = if (kind.isReflection()) "kotlin.reflect" else "kotlin" + fun generateTypeParameters(i: Int, variance: Boolean) { out.print("<") if (kind.hasReceiverParameter) { @@ -102,11 +104,6 @@ class GenerateFunctions(out: PrintWriter, kind: FunctionKind) : GenerateFunction } class GenerateFunctionsImpl(out: PrintWriter, kind: FunctionKind) : GenerateFunctionsBase(out, kind) { - override fun getPackage() = when (kind) { - FUNCTION, EXTENSION_FUNCTION -> "kotlin" - K_FUNCTION, K_MEMBER_FUNCTION, K_EXTENSION_FUNCTION -> "kotlin.reflect" - } - override fun generateBody() { out.println("import java.io.Serializable") out.println()