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

Commit 87aa5a4

Browse files
committed
共通化
1 parent cf7f5bb commit 87aa5a4

File tree

2 files changed

+4
-36
lines changed

2 files changed

+4
-36
lines changed

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

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,7 @@ sealed class FastKFunction<T> {
181181

182182
return if (parameters[0].kind == KParameter.Kind.INSTANCE) {
183183
instance.instanceOrThrow(KParameter.Kind.INSTANCE).let { nonNullInstance ->
184-
val instanceClazz = nonNullInstance::class
185-
186-
(parameters[0].type.classifier as KClass<*>).also {
187-
if (!it.isSuperclassOf(instanceClazz))
188-
throw IllegalArgumentException(
189-
"INSTANCE parameter required ${it.simpleName}, " +
190-
"but ${instanceClazz.simpleName} is present."
191-
)
192-
}
184+
checkInstanceClass(parameters[0].clazz, nonNullInstance::class)
193185

194186
val generator = BucketGenerator(parameters, instance)
195187
val valueParameters = parameters.subList(1, parameters.size)
@@ -199,15 +191,7 @@ sealed class FastKFunction<T> {
199191
} else {
200192
instance
201193
?.let {
202-
val instanceClazz = it::class
203-
204-
method.declaringClass.kotlin.also { requiredClazz ->
205-
if (!requiredClazz.isSuperclassOf(instanceClazz))
206-
throw IllegalArgumentException(
207-
"INSTANCE parameter required ${requiredClazz.simpleName}, " +
208-
"but ${instanceClazz.simpleName} is present."
209-
)
210-
}
194+
checkInstanceClass(method.declaringClass.kotlin, it::class)
211195

212196
InstanceFunction(function, method, it, BucketGenerator(parameters, null), parameters)
213197
}

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

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -106,28 +106,12 @@ sealed class SingleArgFastKFunction<T> {
106106
return when {
107107
parameters[0].kind == KParameter.Kind.INSTANCE ->
108108
instance.instanceOrThrow(KParameter.Kind.INSTANCE).let {
109-
val instanceClazz = it::class
110-
111-
method.declaringClass.kotlin.also { requiredClazz ->
112-
if (!requiredClazz.isSuperclassOf(instanceClazz))
113-
throw IllegalArgumentException(
114-
"INSTANCE parameter required ${requiredClazz.simpleName}, " +
115-
"but ${instanceClazz.simpleName} is present."
116-
)
117-
}
109+
checkInstanceClass(method.declaringClass.kotlin, it::class)
118110

119111
InstanceFunction(parameters[1], method, it)
120112
}
121113
instance != null -> {
122-
val instanceClazz = instance::class
123-
124-
method.declaringClass.kotlin.also {
125-
if (!it.isSuperclassOf(instanceClazz))
126-
throw IllegalArgumentException(
127-
"INSTANCE parameter required ${it.simpleName}, " +
128-
"but ${instanceClazz.simpleName} is present."
129-
)
130-
}
114+
checkInstanceClass(method.declaringClass.kotlin, instance::class)
131115

132116
InstanceFunction(parameters[0], method, instance)
133117
}

0 commit comments

Comments
 (0)