-
由 AlekseyTs 提交于
Move optimization around use of Nullable type in Boolean Expressions into LocalRewriter and eliminate invalid optimization. (#38802) * Move optimization around use of Nullable type in Boolean Expressions into LocalRewriter and eliminate invalid optimization. Fixes #38305. The goal of optimization is to eliminate the need to deal with instances of Nullable(Of Boolean) type as early as possible, and, as a result, simplify evaluation of built-in OrElse/AndAlso operators by eliminating the need to use three-valued Boolean logic. The optimization is possible because when an entire Boolean Expression is evaluated to Null, that has the same effect as if result of evaluation was False. However, we do want to preserve the original order of evaluation, according to language rules. * Fix an old bug masked by #38305. * Fix an old bug masked by #38305. * More fixes fo old bugs masked by #38305, plus optimizations that wouldn't be performed by compiler. * PR feedback
3ef28604