Skip to content

Commit 9bab9ed

Browse files
committed
Fix build more
1 parent f2fbf68 commit 9bab9ed

File tree

1 file changed

+23
-1
lines changed
  • kt/processor/src/main/kotlin/com/github/ephemient/aoc2022/processor

1 file changed

+23
-1
lines changed

kt/processor/src/main/kotlin/com/github/ephemient/aoc2022/processor/MainProcessor.kt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.google.devtools.ksp.processing.SymbolProcessorProvider
1212
import com.google.devtools.ksp.symbol.KSAnnotated
1313
import com.google.devtools.ksp.symbol.KSClassDeclaration
1414
import com.google.devtools.ksp.symbol.KSFunctionDeclaration
15+
import com.google.devtools.ksp.symbol.Modifier
1516
import com.squareup.kotlinpoet.ARRAY
1617
import com.squareup.kotlinpoet.AnnotationSpec
1718
import com.squareup.kotlinpoet.ClassName
@@ -118,7 +119,28 @@ class MainProcessor(
118119
FunSpec.builder(it.simpleName.asString())
119120
.addAnnotation(ClassName("kotlinx.benchmark", "Benchmark"))
120121
.returns(it.returnType?.resolve()?.toTypeName() ?: UNIT)
121-
.addStatement("return %T(lines).%N()", container.toClassName(), it.simpleName.asString())
122+
.addCode(
123+
buildCodeBlock {
124+
if (Modifier.SUSPEND in it.modifiers) {
125+
beginControlFlow(
126+
"return %M",
127+
MemberName("kotlinx.coroutines", "runBlocking")
128+
)
129+
addStatement(
130+
"%T(lines).%N()",
131+
container.toClassName(),
132+
it.simpleName.asString(),
133+
)
134+
endControlFlow()
135+
} else {
136+
addStatement(
137+
"return %T(lines).%N()",
138+
container.toClassName(),
139+
it.simpleName.asString(),
140+
)
141+
}
142+
}
143+
)
122144
.build()
123145
}.orEmpty()
124146
)

0 commit comments

Comments
 (0)