* Generate line directive map during parsing
* Use xxhash instead of cityhash
* Avoid FStringView operator [] in ExtractIdentifiers
* Use TArray Reset instead of Empty where appropriate
* Vectorize SkipUntilNonIdentifierCharacter
* Vectorize ExtractBlock
* Vectorize line ending search
* Use FString directly instead of FStringBuilderBase for the final output to avoid a copy
#rb christopher.waters
#rb jason.hoerner
[CL 28699609 by yuriy odonnell in ue5-main branch]
- Before this, every typedef and the code using them was being included in the final source.
- This was primarily affecting Bindless Resources where all bindless resources were included in the minified code even if they weren't used.
#rb yuriy.odonnell
[CL 28365749 by christopher waters in ue5-main branch]
* Track namespaces for symbols
* Re-emit namespace scopes
* Conservatively include symbols from all namespaces in minified code (as if they were all global)
* Additional parsing work will be required to more accurately track used symbols based on active namespaces (i.e. handle `using` keyword, etc.)
* Added RemoveDeadCode() overload that takes an explicit list of required symbols instead of just an entry point name
#rb dan.elksnitis
#preflight 6398be5e35203bc7aa7f9b47
[CL 23494729 by Yuriy ODonnell in ue5-main branch]
Declarations like `struct { uint Param; } Foo;` were previously incorrectly removed from code.
Also report explicit error when encountering 'namespace' keyword (which is currently unsupported)
#preflight 6387c5b1f213a116ebc18c5f
#rb dan.elksnitis
[CL 23343976 by Yuriy ODonnell in ue5-main branch]