Restore template-argument ctferef on newer libdparse - #6
Open
Silvia-weka wants to merge 1 commit into
Open
Conversation
The submodule pin moved to weka/libdparse, whose upstream merge added named
template arguments: TemplateArguments now holds a NamedTemplateArgumentList of
NamedTemplateArgument, and plain TemplateArgument is no longer produced for an
instantiation's arguments. ScopeInfoVisitor's visit(const TemplateArgument)
therefore became dead code, and every template-value-argument CTFE root went
unreported -- both `Foo!(3 + bareVal)` and the `ut!({ ... })` lambda form, whose
body is compile-time-evaluated.
Measured over 400 weka/**.d files, against the previous libdparse pin: -7381
ctferef, -748 ctferef_tmpl. With this override added, the same build is a strict
superset of that baseline -- nothing dropped, plus 203 call / 29 ctferef_tmpl /
26 ifaceref / 19 instance / 6 ctferef the newer parser now sees. The older
TemplateArgument override is kept so the visitor works against either libdparse.
tests/verify-scope-info.d already covers the case (InstantiateWithValue!(...)).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The submodule pin moved to weka/libdparse, whose upstream merge added named template arguments: TemplateArguments now holds a NamedTemplateArgumentList of NamedTemplateArgument, and plain TemplateArgument is no longer produced for an instantiation's arguments. ScopeInfoVisitor's visit(const TemplateArgument) therefore became dead code, and every template-value-argument CTFE root went unreported -- both
Foo!(3 + bareVal)and theut!({ ... })lambda form, whose body is compile-time-evaluated.Measured over 400 weka/**.d files, against the previous libdparse pin: -7381 ctferef, -748 ctferef_tmpl. With this override added, the same build is a strict superset of that baseline -- nothing dropped, plus 203 call / 29 ctferef_tmpl / 26 ifaceref / 19 instance / 6 ctferef the newer parser now sees. The older TemplateArgument override is kept so the visitor works against either libdparse.
tests/verify-scope-info.d already covers the case (InstantiateWithValue!(...)).