FILE: unary.kt
    public? final? fun test(): R|kotlin/Unit| {
        lvar x: <implicit> = IntegerLiteral(0)
        lval x1: <implicit> =  {
            lval <unary>: <implicit> = x#
            x# = R|<local>/<unary>|.inc#()
            R|<local>/<unary>|
        }

        lval x2: <implicit> =  {
            x# = x#.inc#()
            x#
        }

        lval x3: <implicit> =  {
            x# = x#.dec#()
            x#
        }

        lval x4: <implicit> =  {
            lval <unary>: <implicit> = x#
            x# = R|<local>/<unary>|.dec#()
            R|<local>/<unary>|
        }

        when () {
            ==(x#, IntegerLiteral(0)).not#() ->  {
                println#(String(000))
            }
        }

    }
    public? final? class X : R|kotlin/Any| {
        public? [ContainingClassKey=X] constructor([CorrespondingProperty=/X.i] i: Int): R|X| {
            super<R|kotlin/Any|>()
        }

        public? final? [IsFromPrimaryConstructor=true] val i: Int = R|<local>/i|
            [ContainingClassKey=X] public? get(): Int

    }
    public? final? fun test2(x: X): R|kotlin/Unit| {
        lval x1: <implicit> =  {
            lval <receiver>: <implicit> = x#
            lval <unary>: <implicit> = R|<local>/<receiver>|.i#
            R|<local>/<receiver>|.i# = R|<local>/<unary>|.inc#()
            R|<local>/<unary>|
        }

        lval x2: <implicit> =  {
            lval <receiver>: <implicit> = x#
            lval <unary-result>: <implicit> = R|<local>/<receiver>|.i#.inc#()
            R|<local>/<receiver>|.i# = R|<local>/<unary-result>|
            R|<local>/<unary-result>|
        }

    }
    public? final? fun test3(arr: Array<Int>): R|kotlin/Unit| {
        lval x1: <implicit> =  {
            lval <array>: <implicit> = arr#
            lval <index0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index0>|)
            R|<local>/<array>|.set#(R|<local>/<index0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }

        lval x2: <implicit> =  {
            lval <array>: <implicit> = arr#
            lval <index0>: <implicit> = IntegerLiteral(1)
            lval <unary-result>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index0>|).inc#()
            R|<local>/<array>|.set#(R|<local>/<index0>|, R|<local>/<unary-result>|)
            R|<local>/<unary-result>|
        }

    }
    public? final? class Y : R|kotlin/Any| {
        public? [ContainingClassKey=Y] constructor([CorrespondingProperty=/Y.arr] arr: Array<Int>): R|Y| {
            super<R|kotlin/Any|>()
        }

        public? final? [IsFromPrimaryConstructor=true] val arr: Array<Int> = R|<local>/arr|
            [ContainingClassKey=Y] public? get(): Array<Int>

    }
    public? final? fun test4(y: Y): R|kotlin/Unit| {
        lval x1: <implicit> =  {
            lval <array>: <implicit> = y#.arr#
            lval <index0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index0>|)
            R|<local>/<array>|.set#(R|<local>/<index0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }

        lval x2: <implicit> =  {
            lval <array>: <implicit> = y#.arr#
            lval <index0>: <implicit> = IntegerLiteral(1)
            lval <unary-result>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index0>|).inc#()
            R|<local>/<array>|.set#(R|<local>/<index0>|, R|<local>/<unary-result>|)
            R|<local>/<unary-result>|
        }

    }
