Nathan Froyd
Nathan Froyd
### Motivation Hash lookups ought to be faster than linear searches over arrays of large structures. ### Test plan See included automated tests.
Tree copying creates a lot of unnecessary temporaries that the compiler doesn't appear to be able to optimize away. Not sure if this change will make a difference, but at...
`SymbolRef` (or, really, all the concrete subtypes of `SymbolRef` now that we have per-type symbols) has a debugging check that ensures we don't use the reference across the point where...
### Motivation This is consistent with the way we use tags in `SymbolRef`, `NameRef`, `ExpressionPtr`, etc. It also happens to be significantly faster, to the tune of 7-10% when defining...
### Motivation When we encounter a `T.let($VALUE, $TYPE)` call or similar during the resolver phase, we do this weird thing: 1. We create a `Sorbet::Private::Static.keep_for_typechecking($TYPE)` send 2. We create an...
### Motivation Testing how much this slows namer down. ### Test plan See included automated tests.
### Motivation Stats for #5931. ### Test plan See included automated tests.
### Motivation Curious whether this makes any kind of difference. ### Test plan See included automated tests.
### Motivation Seeing whether it's worth making `UnresolvedConstantLit` smaller or not. ### Test plan See included automated tests.
### Motivation This is an extension of #4954, which removed 8 bytes from `ConstantLit`...but unfortunately didn't change very much as far as memory usage goes because 24 bytes and 32...