Detect inline cycles faster

E.g. in the following code

    fun x() {}
    inline fun f() { x(); g() }
    inline fun g() { x(); f() }

the old implementation of inline cycle detection bailed out after
generating 3 calls of x() in each function, while the new one stops
after 2. In other words, code generation for a single function is no
longer reentered.
This commit is contained in:
pyos
2020-03-17 16:48:58 +01:00
committed by max-kammerer
parent 39372c06cf
commit 72b80ef158
17 changed files with 122 additions and 132 deletions
@@ -0,0 +1,6 @@
/suspendInlineCycle.kt:8:5: error: the 'inlineFun2' invocation is a part of inline cycle
inlineFun2(p)
^
/suspendInlineCycle.kt:13:5: error: the 'inlineFun1' invocation is a part of inline cycle
inlineFun1(p)
^