Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit b3412f2

Browse files
committed
ネスト下げ
1 parent 8325d6d commit b3412f2

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

src/main/kotlin/com/mapk/fastkfunction/FastKFunction.kt

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -130,32 +130,30 @@ sealed class FastKFunction<T> {
130130

131131
private fun <T> topLevelFunctionOf(
132132
function: KFunction<T>, instance: Any?, parameters: List<KParameter>, method: Method
133-
): FastKFunction<T> {
134-
return when {
135-
parameters[0].kind == KParameter.Kind.EXTENSION_RECEIVER -> {
136-
// KParameter.Kind.EXTENSION_RECEIVERの要求が有れば確定で拡張関数
137-
// 対象が拡張関数ならinstanceはreceiver、指定が無ければエラー
138-
instance ?: throw IllegalArgumentException(
139-
"Function requires EXTENSION_RECEIVER instance, but is not present."
140-
)
133+
): FastKFunction<T> = when {
134+
// KParameter.Kind.EXTENSION_RECEIVERの要求が有れば確定で拡張関数
135+
parameters[0].kind == KParameter.Kind.EXTENSION_RECEIVER -> {
136+
// 対象が拡張関数ならinstanceはreceiver、指定が無ければエラー
137+
instance ?: throw IllegalArgumentException(
138+
"Function requires EXTENSION_RECEIVER instance, but is not present."
139+
)
141140

141+
val generator = BucketGenerator(parameters, instance)
142+
val valueParameters = parameters.subList(1, parameters.size)
143+
144+
TopLevelExtensionFunction(function, method, instance, generator, valueParameters)
145+
}
146+
// javaMethodのパラメータサイズとKFunctionのパラメータサイズが違う場合も拡張関数
147+
// インスタンスが設定されていれば高速呼び出し、そうじゃなければ通常の関数呼び出し
148+
method.parameters.size != parameters.size -> instance
149+
?.let {
142150
val generator = BucketGenerator(parameters, instance)
143151
val valueParameters = parameters.subList(1, parameters.size)
144152

145153
TopLevelExtensionFunction(function, method, instance, generator, valueParameters)
146-
}
147-
// javaMethodのパラメータサイズとKFunctionのパラメータサイズが違う場合も拡張関数
148-
// インスタンスが設定されていれば高速呼び出し、そうじゃなければ通常の関数呼び出し
149-
method.parameters.size != parameters.size -> instance
150-
?.let {
151-
val generator = BucketGenerator(parameters, instance)
152-
val valueParameters = parameters.subList(1, parameters.size)
153-
154-
TopLevelExtensionFunction(function, method, instance, generator, valueParameters)
155-
} ?: Function(function, parameters)
156-
// トップレベル関数
157-
else -> TopLevelFunction(function, method, parameters)
158-
}
154+
} ?: Function(function, parameters)
155+
// トップレベル関数
156+
else -> TopLevelFunction(function, method, parameters)
159157
}
160158

161159
private fun <T> instanceFunctionOf(

0 commit comments

Comments
 (0)