Store only type pointer for Node/Type self-ref, not full interface #377
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've had this sitting on a branch for a while but I'm sending it just to get it off of my mind.
The idea here is to stop storing a full interface value for the
data
field, but to instead assume that the node's address is the right place, and instead store only thetype
part of the interface value, constructing the interface out of that.Assuming that we ensure
Node
is always embedded first, this should work.For parse time, this saves 6-9% memory by bytes allocated. However, using the
data
field is slower; bind is 6% slower onchecker.ts
. I would expect this to also affect checking itself, but we don't have a benchmark for that quite yet.This makes me feel like this isn't really worth it.