Skip to content

StackOverflowError on circular reference #376

@a8t3r

Description

@a8t3r

Describe the bug
The following code fragment fails with java.lang.StackOverflowError

@Rpc
interface BoxService {
    suspend fun complex(filter: ComplexFilter): String
}

data class ComplexFilter(
    val a: SimpleFilter?,
    val b: ComplexFilter?
)

data class SimpleFilter(val text: String)

stacktrace:

e: java.lang.StackOverflowError
        at org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext.getSession(CheckerContext.kt:55)
        at kotlinx.rpc.codegen.checkers.FirRpcStrictModeClassChecker.checkSerializableTypes(FirRpcStrictModeClassChecker.kt:116)
        at kotlinx.rpc.codegen.checkers.FirRpcStrictModeClassChecker.checkSerializableTypes(FirRpcStrictModeClassChecker.kt:151)
        at kotlinx.rpc.codegen.checkers.FirRpcStrictModeClassChecker.checkSerializableTypes(FirRpcStrictModeClassChecker.kt:151)

To Reproduce
paste the code block above into tests/compiler-plugin-tests/src/testData/box/simple.kt and run tests

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions