UFile (package = ) [public final enum EnumChoice {...]
    UClass (name = EnumChoice) [public final enum EnumChoice {...}]
        UEnumConstant (name = FIRST) [FIRST] = NON-EVALUATED
            USimpleNameReferenceExpression (identifier = EnumChoice) [EnumChoice] = external EnumChoice()
        UEnumConstant (name = SECOND) [SECOND] = NON-EVALUATED
            USimpleNameReferenceExpression (identifier = EnumChoice) [EnumChoice] = external EnumChoice()
        UMethod (name = foo) [public fun foo(flag: boolean) : EnumChoice {...}]
            UParameter (name = flag) [var flag: boolean]
            UBlockExpression [{...}] = Nothing
                UDeclarationsExpression [var result: EnumChoice] = Undetermined
                    ULocalVariable (name = result) [var result: EnumChoice]
                UIfExpression [if (flag) {...}] = Phi(FIRST (enum entry), SECOND (enum entry))
                    USimpleNameReferenceExpression (identifier = flag) [flag] = Undetermined
                    UBlockExpression [{...}] = FIRST (enum entry)
                        UBinaryExpression (operator = =) [result = FIRST] = FIRST (enum entry)
                            USimpleNameReferenceExpression (identifier = result) [result] = (var result = Undetermined)
                            USimpleNameReferenceExpression (identifier = FIRST) [FIRST] = FIRST (enum entry)
                    UBlockExpression [{...}] = SECOND (enum entry)
                        UBinaryExpression (operator = =) [result = SECOND] = SECOND (enum entry)
                            USimpleNameReferenceExpression (identifier = result) [result] = (var result = Undetermined)
                            USimpleNameReferenceExpression (identifier = SECOND) [SECOND] = SECOND (enum entry)
                UReturnExpression [return result] = Nothing
                    USimpleNameReferenceExpression (identifier = result) [result] = (var result = Phi(FIRST (enum entry), SECOND (enum entry)))
