FILE: safeCallsWithUnaryOperators.kt
    public? final? fun foo(): R|kotlin/Unit| {
        a#?.{ $subj$.b# }++
        a#?.{ $subj$.b# }?.{ $subj$.c# }++
        a#?.{ $subj$.b# }.c#++
        a#?.{  {
            lval <array>: <implicit> = $subj$.b#
            lval <index_0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }
         }
        a#?.{ $subj$.b# }?.{  {
            lval <array>: <implicit> = $subj$.c#
            lval <index_0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }
         }
        lval <array>: <implicit> = a#?.{ $subj$.b# }.c#
        lval <index_0>: <implicit> = IntegerLiteral(0)
        lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
        R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
        R|<local>/<unary>|
        a#?.{  {
            lval <array>: <implicit> = $subj$.b#.get#(IntegerLiteral(0))
            lval <index_0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }
         }
        a#?.{ $subj$.b# }?.{  {
            lval <array>: <implicit> = $subj$.c#.get#(IntegerLiteral(0))
            lval <index_0>: <implicit> = IntegerLiteral(0)
            lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
            R|<local>/<unary>|
        }
         }
        lval <array>: <implicit> = a#?.{ $subj$.b# }.c#.get#(IntegerLiteral(0))
        lval <index_0>: <implicit> = IntegerLiteral(0)
        lval <unary>: <implicit> = R|<local>/<array>|.get#(R|<local>/<index_0>|)
        R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<unary>|.inc#())
        R|<local>/<unary>|
        a#?.{ $subj$.b# }.d#()++
    }
    public? final? fun foo2(): R|kotlin/Unit| {
        ++a#?.{ $subj$.b# }
        ++a#?.{ $subj$.b# }?.{ $subj$.c# }
        ++a#?.{ $subj$.b# }.c#
        a#?.{  {
            lval <array>: <implicit> = $subj$.b#
            lval <index_0>: <implicit> = IntegerLiteral(0)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
            R|<local>/<array>|.get#(R|<local>/<index_0>|)
        }
         }
        a#?.{ $subj$.b# }?.{  {
            lval <array>: <implicit> = $subj$.c#
            lval <index_0>: <implicit> = IntegerLiteral(0)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
            R|<local>/<array>|.get#(R|<local>/<index_0>|)
        }
         }
        lval <array>: <implicit> = a#?.{ $subj$.b# }.c#
        lval <index_0>: <implicit> = IntegerLiteral(0)
        R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
        R|<local>/<array>|.get#(R|<local>/<index_0>|)
        a#?.{  {
            lval <array>: <implicit> = $subj$.b#.get#(IntegerLiteral(0))
            lval <index_0>: <implicit> = IntegerLiteral(0)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
            R|<local>/<array>|.get#(R|<local>/<index_0>|)
        }
         }
        a#?.{ $subj$.b# }?.{  {
            lval <array>: <implicit> = $subj$.c#.get#(IntegerLiteral(0))
            lval <index_0>: <implicit> = IntegerLiteral(0)
            R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
            R|<local>/<array>|.get#(R|<local>/<index_0>|)
        }
         }
        lval <array>: <implicit> = a#?.{ $subj$.b# }.c#.get#(IntegerLiteral(0))
        lval <index_0>: <implicit> = IntegerLiteral(0)
        R|<local>/<array>|.set#(R|<local>/<index_0>|, R|<local>/<array>|.get#(R|<local>/<index_0>|).inc#())
        R|<local>/<array>|.get#(R|<local>/<index_0>|)
        ++a#?.{ $subj$.b# }.d#()
    }
