dotnet/roslyn

VB compiler should not "optimize" Select statements during initial binding

Open

#374 opened on Feb 10, 2015

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C# (4,257 forks)batch import
Area-CompilersBugConcept-Design DebtLanguage-VBhelp wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 6d 17h) (256 merged PRs in 30d)

Description

The VB compiler "optimizes" Select statements during initial binding, generating and storing a lowered form for the cases depending on the structure of the whole select statement.

Generally speaking such transformations belong in lowering. Since it operates at the level of the whole Select statement after all of the parts have been bound, it can be moved en masse to a later phase. I recommend the local lowering phase.

Any intermediate phases that depend on the lowering having taken place are likely buggy, since different lowered forms may be generated in different circumstances.

[ported from TFS DevDiv 941313]

Contributor guide