POC alternate callback syntax #2
Open
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.
This implementation parses a new callback syntax into an AST representing the traditional array/string callback AST.
fn::Foo::method
emits[Foo::class,'method']
- PASS!fn::\Foo::method
emits[\Foo::class,'method']
- PASS!fn::$foo::method
emits[$foo,'method']
- PASS!fn::intval
emits"intval"
. Here a naive implementation just converts the name into a string without proper name resolution. This would need handling likeZEND_AST_CLASS_NAME
, which can compile to an operation to resolve the name at runtime. Maybe the plumbing is present in zend_compile_ns_call but a new function would need to emit an IS_CONST op instead of ZEND_INIT_NS_FCALL_BY_NAME.