UFile (package = ) [public class CascadeIf {...]
    UClass (name = CascadeIf) [public class CascadeIf {...}]
        UMethod (name = foo) [public static fun foo(f: boolean, g: boolean, h: boolean) : int {...}]
            UParameter (name = f) [var f: boolean]
            UParameter (name = g) [var g: boolean]
            UParameter (name = h) [var h: boolean]
            UBlockExpression [{...}] = Nothing
                UDeclarationsExpression [var x: int = 0] = Undetermined
                    ULocalVariable (name = x) [var x: int = 0]
                        ULiteralExpression (value = 0) [0] = 0
                UDeclarationsExpression [var y: int = 1] = Undetermined
                    ULocalVariable (name = y) [var y: int = 1]
                        ULiteralExpression (value = 1) [1] = 1
                UDeclarationsExpression [var v: int = 2] = Undetermined
                    ULocalVariable (name = v) [var v: int = 2]
                        ULiteralExpression (value = 2) [2] = 2
                UDeclarationsExpression [var w: int = 3] = Undetermined
                    ULocalVariable (name = w) [var w: int = 3]
                        ULiteralExpression (value = 3) [3] = 3
                UDeclarationsExpression [var z: int] = Undetermined
                    ULocalVariable (name = z) [var z: int]
                UIfExpression [if (f) {...}] = Phi((var y = 1), (var x = 0), (var v = 2), (var w = 3))
                    USimpleNameReferenceExpression (identifier = f) [f] = Undetermined
                    UBlockExpression [{...}] = (var y = 1)
                        UBinaryExpression (operator = =) [z = y] = (var y = 1)
                            USimpleNameReferenceExpression (identifier = z) [z] = (var z = Undetermined)
                            USimpleNameReferenceExpression (identifier = y) [y] = (var y = 1)
                    UIfExpression [if (g) {...}] = Phi((var x = 0), (var v = 2), (var w = 3))
                        USimpleNameReferenceExpression (identifier = g) [g] = Undetermined
                        UBlockExpression [{...}] = (var x = 0)
                            UBinaryExpression (operator = =) [z = x] = (var x = 0)
                                USimpleNameReferenceExpression (identifier = z) [z] = (var z = Undetermined)
                                USimpleNameReferenceExpression (identifier = x) [x] = (var x = 0)
                        UIfExpression [if (h) {...}] = Phi((var v = 2), (var w = 3))
                            USimpleNameReferenceExpression (identifier = h) [h] = Undetermined
                            UBlockExpression [{...}] = (var v = 2)
                                UBinaryExpression (operator = =) [z = v] = (var v = 2)
                                    USimpleNameReferenceExpression (identifier = z) [z] = (var z = Undetermined)
                                    USimpleNameReferenceExpression (identifier = v) [v] = (var v = 2)
                            UBlockExpression [{...}] = (var w = 3)
                                UBinaryExpression (operator = =) [z = w] = (var w = 3)
                                    USimpleNameReferenceExpression (identifier = z) [z] = (var z = Undetermined)
                                    USimpleNameReferenceExpression (identifier = w) [w] = (var w = 3)
                UReturnExpression [return z] = Nothing
                    USimpleNameReferenceExpression (identifier = z) [z] = (var z = Phi((var y = 1), (var x = 0), (var v = 2), (var w = 3)))
