This patch adds a CodeRangeASTSelection value to the refactoring library. This value represents a set of selected statements in one body of code.
The refactoring rules will be able to use this value with the CodeRangeSelectionRequirement that will be introduced in follow up patches. This selection will be used to implement the "extract" refactoring.
I see all your tests are for function body, does it support other body, i.e. "global namespace", "compound statement"?
if yes, how about adding more test cases to cover it.