Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make codemap byte-oriented, simpler #3992

Merged
merged 28 commits into from
Nov 18, 2012
Merged

Make codemap byte-oriented, simpler #3992

merged 28 commits into from
Nov 18, 2012

Conversation

brson
Copy link
Contributor

@brson brson commented Nov 16, 2012

r? @graydon

This is preparation for #2176

This series makes the codemap completely byte-oriented, only converting to char offsets on demand. This is necessary so that the parser doesn't have to 'map' an entire file at a time before beginning parsing of other files (future parser changes will require immediately starting another parser when they hit 'mod foo;' statements).

As a bonus, this modernizes the style of codemap, using proper naming conventions, object-orientation, makes it more typesafe by adding types for byte positions and char positions, makes the interaction between Parsers and the CodeMap less error prone by moving all responsibility for managing offsets between FileMaps directly into the CodeMap, probably fixes some lurking bugs in include!.

There are a lot steps here but the real action is in 81d2015, which does the conversion to using byte offsets for spans.

The remaining complexity, dealing with the FileSubstr type, should disappear with #ast.

@graydon
Copy link
Contributor

graydon commented Nov 17, 2012

r+ if you can explain a bit about how absolute byte positions work, if we're scanning multiple files (esp. in parallel in the future?) It seems to me a little wonky if this forces us to consider a crate as a contiguous source stream, but I might be misinterpreting what I see.

Excellent work in terms of careful transition, otherwise.

@brson brson merged commit e621e68 into rust-lang:incoming Nov 18, 2012
RalfJung added a commit to RalfJung/rust that referenced this pull request Nov 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants