- Remove makeScopedCallableMap helper function
- Change preg_replace_callback_array strategy from 'map' to 'dynamic-map'
- Add dynamic-map strategy support in CompilerBase for efficient callback processing
- Update documentation to reflect new callback map implementation approach
- Modify tests to verify UserCodeScopeGuard usage instead of makeScopedCallableMap
- Add test case with static closure in preg_replace_callback_array
- Rename hasDynamicCall to needsUnpackedCallbackScope in MethodDef
- Replace genScopeSwitchCode with genUnpackedCallbackScopeGuard
- Change prepareScopedCallback to use php::UserCodeScopeGuard
- Add callableScopeVar to FunctionContext for reusable scope management
- Update compiler logic to track unpacked callback scope requirements
- Generate single reusable CallableScope variable per method when needed
- Add comprehensive documentation for scope management design
- Create tests for callback context reuse and scope restoration
- Add non-static self callable test case
- Update method name references in traits test suite
- Updated BinaryOpTrait to use C++17 braced-list evaluation order for concat operations
- Modified CallArgumentGenerator to evaluate arguments in PHP source order before ABI arrangement
- Added proper handling of variadic arguments and named parameters in evaluation sequence
- Fixed array_key_exists parameter evaluation order to match PHP semantics
- Updated method call receiver evaluation to prevent statement hoisting issues
- Added comprehensive tests for argument evaluation order in various call scenarios
- Ensured captured beforeStmtLines are properly ordered relative to call expressions
- Added parseOrderedOperand() to handle operand evaluation in correct sequence
- Updated BinaryOpTrait to use ordered parsing for concat() operations
- Modified CallArgumentGenerator to materialize nested calls before argument lowering
- Enhanced CompilerBase to maintain evaluation order in string interpolations
- Updated MethodCallTrait to evaluate receiver before method arguments
- Added comprehensive test case for function/method call argument evaluation order
- Add strict scalar type checking for function parameters and return values
- Preserve zval types until declared boundaries are validated
- Generate type error exceptions with detailed argument information
- Support dynamic parameter validation in variadic and default argument contexts
- Add comprehensive test coverage for strict scalar type boundaries
- Introduce helper methods for scalar type condition generation and validation
- Changed defaultValue check to default property comparison in CallArgumentGenerator
- Added genDefaultArgumentExpr call for proper default value resolution
- Updated findNativeClassConst signature to accept accessing class parameter
- Modified checkAccessibleByClassName to use accessing class context
- Updated getClassConstValue calls to pass current class context
- Added comprehensive test case for private class constant parameter defaults
- Replaced all occurrences of self::TYPE_* with Type::* in AnonClassGenerator.php
- Updated ArrayExpressionTrait.php to use Type::ARRAY and Type::VAR instead of self::TYPE_*
- Modified AssignOpTrait.php to reference Type constants instead of self::TYPE_*
- Changed BinaryOpTrait.php to use Type::BIGINT, Type::DECIMAL, Type::BIGFLOAT constants
- Updated CallArgumentGenerator.php to use Type::ARRAY and Type::REF constants
- Added Type import statements to all modified files
- Maintained same functionality while improving code consistency with Type namespace
- Move Reflection class from TypePhp to TypePhp\Resolver namespace
- Rename ArgInfo.php to TypePhp\Entity\ArgInfo and update all references
- Move AstNodeType.php to TypePhp\Parser\AstNodeType with namespace update
- Update Symbol.php import paths to use TypePhp\Generator\Symbol
- Move Constants.php to TypePhp\Metadata\Constants with namespace change
- Rename FileScanner.php to TypePhp\Build\FileScanner with namespace update
- Move MagicMethodDetector.php to TypePhp\Resolver\MagicMethodDetector
- Rename PropertyHookLowering.php to TypePhp\Transform\PropertyHookLowering
- Move Visitor.php to TypePhp\Transform\Visitor with namespace update
- Update all test files to reflect new class
- Implement parseNativeCallArgs method for native function argument parsing
- Add buildNativeVariadicArg method for variadic argument handling
- Create parseNamedCallArgs method for named argument processing
- Add isReferenceArgument method for checking reference parameters
- Implement AOT call argument info retrieval methods
- Add method resolution for AOT class and interface methods
- Include argument info by index lookup functionality
- Add reference named argument checking capability
- Implement comprehensive parseCallArgs method for general argument parsing
- Add scoped callback argument parsing for static/self/parent scopes
- Create utility methods for ensuring call args, array args and named args
- Add positional call argument handling with