-
Notifications
You must be signed in to change notification settings - Fork 43
Closed
Labels
featureNew feature or requestNew feature or request
Description
By their nature; all member-functions of RpcService implementations should be suspending.
During development, it may be a common mistake to omit suspend, in which case the developer-user is faced with a potentially confusing error at compile time:
e: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering
File being compiled: /Users/user/Projects/project/shared/src/commonMain/kotlin/com/project/shared/domain/service/SomeService.kt
The root cause java.lang.RuntimeException was thrown at: org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:47)
...
<long stack trace>
Describe the solution you'd like
Compiler plugin or KSP part of kotlinx.rpc should detect the presence of non suspend functions and throw a more meaningful error e.g:
The function 'getUser' in com.company.project.service.UserService is not suspending, only suspending functions are allowed in RPC service implementations.
Jire, xxfast and DennisTsar
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request