From 59d3731b935d9236cfb073c2299a37389de37500 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 17 Mar 2015 16:45:27 +0300 Subject: [PATCH] Document generated K*Functions --- .../src/kotlin/reflect/KExtensionFunctions.kt | 23 +++++++++++++++++++ .../builtins/src/kotlin/reflect/KFunctions.kt | 23 +++++++++++++++++++ .../src/kotlin/reflect/KMemberFunctions.kt | 23 +++++++++++++++++++ .../kotlin/generators/builtins/functions.kt | 20 ++++++++-------- 4 files changed, 79 insertions(+), 10 deletions(-) diff --git a/core/builtins/src/kotlin/reflect/KExtensionFunctions.kt b/core/builtins/src/kotlin/reflect/KExtensionFunctions.kt index 2643e83d14c..3ea1b55e5a4 100644 --- a/core/builtins/src/kotlin/reflect/KExtensionFunctions.kt +++ b/core/builtins/src/kotlin/reflect/KExtensionFunctions.kt @@ -18,26 +18,49 @@ package kotlin.reflect +/** An extension function with introspection capabilities that takes 0 arguments. */ public trait KExtensionFunction0 : ExtensionFunction0 +/** An extension function with introspection capabilities that takes 1 argument. */ public trait KExtensionFunction1 : ExtensionFunction1 +/** An extension function with introspection capabilities that takes 2 arguments. */ public trait KExtensionFunction2 : ExtensionFunction2 +/** An extension function with introspection capabilities that takes 3 arguments. */ public trait KExtensionFunction3 : ExtensionFunction3 +/** An extension function with introspection capabilities that takes 4 arguments. */ public trait KExtensionFunction4 : ExtensionFunction4 +/** An extension function with introspection capabilities that takes 5 arguments. */ public trait KExtensionFunction5 : ExtensionFunction5 +/** An extension function with introspection capabilities that takes 6 arguments. */ public trait KExtensionFunction6 : ExtensionFunction6 +/** An extension function with introspection capabilities that takes 7 arguments. */ public trait KExtensionFunction7 : ExtensionFunction7 +/** An extension function with introspection capabilities that takes 8 arguments. */ public trait KExtensionFunction8 : ExtensionFunction8 +/** An extension function with introspection capabilities that takes 9 arguments. */ public trait KExtensionFunction9 : ExtensionFunction9 +/** An extension function with introspection capabilities that takes 10 arguments. */ public trait KExtensionFunction10 : ExtensionFunction10 +/** An extension function with introspection capabilities that takes 11 arguments. */ public trait KExtensionFunction11 : ExtensionFunction11 +/** An extension function with introspection capabilities that takes 12 arguments. */ public trait KExtensionFunction12 : ExtensionFunction12 +/** An extension function with introspection capabilities that takes 13 arguments. */ public trait KExtensionFunction13 : ExtensionFunction13 +/** An extension function with introspection capabilities that takes 14 arguments. */ public trait KExtensionFunction14 : ExtensionFunction14 +/** An extension function with introspection capabilities that takes 15 arguments. */ public trait KExtensionFunction15 : ExtensionFunction15 +/** An extension function with introspection capabilities that takes 16 arguments. */ public trait KExtensionFunction16 : ExtensionFunction16 +/** An extension function with introspection capabilities that takes 17 arguments. */ public trait KExtensionFunction17 : ExtensionFunction17 +/** An extension function with introspection capabilities that takes 18 arguments. */ public trait KExtensionFunction18 : ExtensionFunction18 +/** An extension function with introspection capabilities that takes 19 arguments. */ public trait KExtensionFunction19 : ExtensionFunction19 +/** An extension function with introspection capabilities that takes 20 arguments. */ public trait KExtensionFunction20 : ExtensionFunction20 +/** An extension function with introspection capabilities that takes 21 arguments. */ public trait KExtensionFunction21 : ExtensionFunction21 +/** An extension function with introspection capabilities that takes 22 arguments. */ public trait KExtensionFunction22 : ExtensionFunction22 diff --git a/core/builtins/src/kotlin/reflect/KFunctions.kt b/core/builtins/src/kotlin/reflect/KFunctions.kt index 66d08c45c02..c5397f68eb8 100644 --- a/core/builtins/src/kotlin/reflect/KFunctions.kt +++ b/core/builtins/src/kotlin/reflect/KFunctions.kt @@ -18,26 +18,49 @@ package kotlin.reflect +/** A function with introspection capabilities that takes 0 arguments. */ public trait KFunction0 : Function0 +/** A function with introspection capabilities that takes 1 argument. */ public trait KFunction1 : Function1 +/** A function with introspection capabilities that takes 2 arguments. */ public trait KFunction2 : Function2 +/** A function with introspection capabilities that takes 3 arguments. */ public trait KFunction3 : Function3 +/** A function with introspection capabilities that takes 4 arguments. */ public trait KFunction4 : Function4 +/** A function with introspection capabilities that takes 5 arguments. */ public trait KFunction5 : Function5 +/** A function with introspection capabilities that takes 6 arguments. */ public trait KFunction6 : Function6 +/** A function with introspection capabilities that takes 7 arguments. */ public trait KFunction7 : Function7 +/** A function with introspection capabilities that takes 8 arguments. */ public trait KFunction8 : Function8 +/** A function with introspection capabilities that takes 9 arguments. */ public trait KFunction9 : Function9 +/** A function with introspection capabilities that takes 10 arguments. */ public trait KFunction10 : Function10 +/** A function with introspection capabilities that takes 11 arguments. */ public trait KFunction11 : Function11 +/** A function with introspection capabilities that takes 12 arguments. */ public trait KFunction12 : Function12 +/** A function with introspection capabilities that takes 13 arguments. */ public trait KFunction13 : Function13 +/** A function with introspection capabilities that takes 14 arguments. */ public trait KFunction14 : Function14 +/** A function with introspection capabilities that takes 15 arguments. */ public trait KFunction15 : Function15 +/** A function with introspection capabilities that takes 16 arguments. */ public trait KFunction16 : Function16 +/** A function with introspection capabilities that takes 17 arguments. */ public trait KFunction17 : Function17 +/** A function with introspection capabilities that takes 18 arguments. */ public trait KFunction18 : Function18 +/** A function with introspection capabilities that takes 19 arguments. */ public trait KFunction19 : Function19 +/** A function with introspection capabilities that takes 20 arguments. */ public trait KFunction20 : Function20 +/** A function with introspection capabilities that takes 21 arguments. */ public trait KFunction21 : Function21 +/** A function with introspection capabilities that takes 22 arguments. */ public trait KFunction22 : Function22 diff --git a/core/builtins/src/kotlin/reflect/KMemberFunctions.kt b/core/builtins/src/kotlin/reflect/KMemberFunctions.kt index 8c5987b250d..f1676ca4be5 100644 --- a/core/builtins/src/kotlin/reflect/KMemberFunctions.kt +++ b/core/builtins/src/kotlin/reflect/KMemberFunctions.kt @@ -18,26 +18,49 @@ package kotlin.reflect +/** A member function with introspection capabilities that takes 0 arguments. */ public trait KMemberFunction0 : ExtensionFunction0 +/** A member function with introspection capabilities that takes 1 argument. */ public trait KMemberFunction1 : ExtensionFunction1 +/** A member function with introspection capabilities that takes 2 arguments. */ public trait KMemberFunction2 : ExtensionFunction2 +/** A member function with introspection capabilities that takes 3 arguments. */ public trait KMemberFunction3 : ExtensionFunction3 +/** A member function with introspection capabilities that takes 4 arguments. */ public trait KMemberFunction4 : ExtensionFunction4 +/** A member function with introspection capabilities that takes 5 arguments. */ public trait KMemberFunction5 : ExtensionFunction5 +/** A member function with introspection capabilities that takes 6 arguments. */ public trait KMemberFunction6 : ExtensionFunction6 +/** A member function with introspection capabilities that takes 7 arguments. */ public trait KMemberFunction7 : ExtensionFunction7 +/** A member function with introspection capabilities that takes 8 arguments. */ public trait KMemberFunction8 : ExtensionFunction8 +/** A member function with introspection capabilities that takes 9 arguments. */ public trait KMemberFunction9 : ExtensionFunction9 +/** A member function with introspection capabilities that takes 10 arguments. */ public trait KMemberFunction10 : ExtensionFunction10 +/** A member function with introspection capabilities that takes 11 arguments. */ public trait KMemberFunction11 : ExtensionFunction11 +/** A member function with introspection capabilities that takes 12 arguments. */ public trait KMemberFunction12 : ExtensionFunction12 +/** A member function with introspection capabilities that takes 13 arguments. */ public trait KMemberFunction13 : ExtensionFunction13 +/** A member function with introspection capabilities that takes 14 arguments. */ public trait KMemberFunction14 : ExtensionFunction14 +/** A member function with introspection capabilities that takes 15 arguments. */ public trait KMemberFunction15 : ExtensionFunction15 +/** A member function with introspection capabilities that takes 16 arguments. */ public trait KMemberFunction16 : ExtensionFunction16 +/** A member function with introspection capabilities that takes 17 arguments. */ public trait KMemberFunction17 : ExtensionFunction17 +/** A member function with introspection capabilities that takes 18 arguments. */ public trait KMemberFunction18 : ExtensionFunction18 +/** A member function with introspection capabilities that takes 19 arguments. */ public trait KMemberFunction19 : ExtensionFunction19 +/** A member function with introspection capabilities that takes 20 arguments. */ public trait KMemberFunction20 : ExtensionFunction20 +/** A member function with introspection capabilities that takes 21 arguments. */ public trait KMemberFunction21 : ExtensionFunction21 +/** A member function with introspection capabilities that takes 22 arguments. */ public trait KMemberFunction22 : ExtensionFunction22 diff --git a/generators/src/org/jetbrains/kotlin/generators/builtins/functions.kt b/generators/src/org/jetbrains/kotlin/generators/builtins/functions.kt index 9d8270898dd..0378588c559 100644 --- a/generators/src/org/jetbrains/kotlin/generators/builtins/functions.kt +++ b/generators/src/org/jetbrains/kotlin/generators/builtins/functions.kt @@ -16,23 +16,24 @@ package org.jetbrains.kotlin.generators.builtins.functions -import java.io.PrintWriter import org.jetbrains.kotlin.generators.builtins.functions.FunctionKind.* -import org.jetbrains.kotlin.generators.builtins.generateBuiltIns.* +import org.jetbrains.kotlin.generators.builtins.generateBuiltIns.BuiltInsSourceGenerator +import java.io.PrintWriter val MAX_PARAM_COUNT = 22 enum class FunctionKind( private val classNamePrefix: String, - val docPrefix: String?, + val docPrefix: String, val hasReceiverParameter: Boolean, private val superClassNamePrefix: String? ) { FUNCTION : FunctionKind("Function", "A function", false, null) EXTENSION_FUNCTION : FunctionKind("ExtensionFunction", "An extension function", true, null) - K_FUNCTION : FunctionKind("KFunction", null, false, "Function") - K_MEMBER_FUNCTION : FunctionKind("KMemberFunction", null, true, "ExtensionFunction") - K_EXTENSION_FUNCTION : FunctionKind("KExtensionFunction", null, true, "ExtensionFunction") + + K_FUNCTION : FunctionKind("KFunction", "A function with introspection capabilities", false, "Function") + K_MEMBER_FUNCTION : FunctionKind("KMemberFunction", "A member function with introspection capabilities", true, "ExtensionFunction") + K_EXTENSION_FUNCTION : FunctionKind("KExtensionFunction", "An extension function with introspection capabilities", true, "ExtensionFunction") fun getFileName() = (if (isReflection()) "reflect/" else "") + classNamePrefix + "s.kt" fun getClassName(i: Int) = classNamePrefix + i @@ -63,7 +64,7 @@ class GenerateFunctions(out: PrintWriter, val kind: FunctionKind) : BuiltInsSour override fun generateBody() { for (i in 0..MAX_PARAM_COUNT) { - generateDocumentation(kind.docPrefix, i) + generateDocumentation(i) out.print("public trait " + kind.getClassName(i)) generateTypeParameters(i, true) generateSuperClass(i) @@ -71,10 +72,9 @@ class GenerateFunctions(out: PrintWriter, val kind: FunctionKind) : BuiltInsSour } } - fun generateDocumentation(docPrefix: String?, i: Int) { - if (docPrefix == null) return + fun generateDocumentation(i: Int) { val suffix = if (i == 1) "" else "s" - out.println("/** $docPrefix that takes $i argument${suffix}. */") + out.println("/** ${kind.docPrefix} that takes $i argument${suffix}. */") } fun generateSuperClass(i: Int) {