- Add parameterOffset parameter to parseNativeCallArgs with validation logic
- Implement named argument offset validation to prevent targeting extension receiver
- Update variadic argument handling with offset calculations
- Skip parameter validation for indices below offset threshold
- Adjust function definition checks to account for parameter offset
- Add object extension method lookup in findObjectExtensionMethod
- Implement extension function resolution within specific namespaces only
- Create genObjectExtensionFn to generate proper extension function calls
- Add comprehensive test coverage for namespaced object extension methods
- Support both snake_case and camelCase method naming conventions
- Ensure extension methods receive correct parameter positioning with offset 1
- Implement property hook lowering to getter/setter method calls
- Add support for private(set) and protected(set) asymmetric visibility
- Generate appropriate error handling for read-only hooked properties
- Support compound assignments and increment/decrement operations on hooked properties
- Add proper visibility checks for asymmetric property setters
- Update documentation to reflect new property hook capabilities
- Add comprehensive test coverage for property hook functionality
- Introduce --php-version CLI option to specify accepted PHP syntax version
- Add support for PHP 8.5 pipe operator with left-to-right evaluation
- Implement PHP version validation in project configuration parsing
- Update parser factory usage to respect configured PHP version
- Add tests for pipe operator functionality and PHP version controls
- Modify stub generation to use configured PHP version
- Update documentation with new --php-version option details
- Replace direct static property access with parseDynamicStaticPropertyFetch method
- Add proper runtime evaluation order for class and property operands
- Implement dynamic class value resolution supporting self, parent, static keywords
- Add temporary variable assignment for class and property values
- Create proper class name resolution using get_class or toString methods
- Update documentation to reflect dynamic property chains now use Zend runtime fallback
- Modify incompatibility classification from pending to partial support
- Clarify that native optimization is not guaranteed for dynamic operations
- Remove unnecessary assignment expression check in echo statement parsing
- Update null assignment error messages to include actual type strings
- Add support for untyped properties retaining PHP mixed semantics with null values
- Modify object property unset logic to preserve PHP behavior for typed properties
- Implement proper parent::method() call handling with dynamic method names
- Add comprehensive property inheritance compatibility checks between parent and child classes
- Update documentation to reflect property visibility and inheritance requirements
- Remove test case for null assignment rejection since semantics changed
- Add detailed comments explaining property typing and inheritance behavior
- Replace noLiteralString handling with getInlineString method
- Add getInlineString function to generate PHP strings without literal table
- Use ZEND_STRL to preserve string length with embedded NULs
- Update scalar parsing to use getInlineString for noLiteralString case
- Add test case for embedded null string handling
- Remove skip condition for trim tests related to embedded nulls
- Move any() function handling from assignment-specific paths to general function call entry point
- Add comprehensive composite type relation analysis with INT/COMPOSITE_TYPE_MATCH/COMPOSITE_TYPE_UNKNOWN states
- Implement static type checking for closure and arrow function return values
- Add support for int to float coercion in composite type contexts
- Enhance type checking for property assignments with composite types
- Update documentation to reflect unified any() function behavior across all expression positions
- Add extensive test coverage for composite type edge cases and error scenarios
- Remove redundant dynamic_value helper functions from test files
- Implement proper null
- Implement static type validation for union, intersection, and nullable types
- Add composite type assignment checking for parameters, return values, and property assignments
- Introduce dynamic value wrapper tests to verify type checking behavior
- Enhance error messaging for composite type mismatches
- Update documentation to reflect improved static type analysis capabilities
- Add proper restoration of compiler state after generator conversion errors
- Improve parallel compilation process management and error handling
- Add metadata caching for object files with PHP ABI compatibility checks
- Add proper exception rethrow mechanism using typephp_fiber_rethrow in compiler
- Implement comprehensive generator return type validation supporting UnionType, IntersectionType, and nullable types
- Add support for constructor property promotion in generator functions
- Enhance generator destructor handling with proper finally block execution
- Implement proper exception boundary crossing between Fiber and generator contexts
- Add comprehensive test coverage for generator lifecycle, yielding, and error scenarios
- Update documentation to reflect new supported return types including object and mixed
- Fix parameter validation and type checking integration within generator functions
- Add proper handling of yield from delegation with throw and return value preservation
- Implement automatic key tracking for generator yield operations
- Add validation for recursive IteratorAggregate cycles in yield from operations
- Implement FiberGenerator trait with yield/yield from parsing
- Add generator detection and preparation logic in function compilation
- Generate TypePHP\FiberGenerator objects that implement Iterator
- Support yield expressions and statements with key-value pairs
- Enable yield from delegation with array and traversable forwarding
- Register fiber generator class entry during module initialization
- Update runtime initialization to use typephp_runtime_init
- Replace php_aot_ prefixed helpers with typephp_ prefixed versions
- Add comprehensive generator test suite covering various scenarios
- Document generator limitations and compatibility restrictions
- Mark dynamic PHP foreach over native generators as XFAIL case
- Implement parseDynamicClassConstFetch method to handle non-name expressions in class constant fetch
- Add materializeDynamicClassConstTarget method to properly evaluate dynamic class targets
- Modify parseClassConstFetch to delegate dynamic cases to new handler
- Remove outdated conditional logic for variable expressions in class
- Replace direct string concatenation with formatCppLineComment method
- Add proper line wrapping for multi-line comments in generated code
- Apply consistent comment formatting across function calls, expressions and method calls
- Introduce formatCppLineComment helper to handle comment formatting logic
- Update all comment generation points to use the new standardized approach
- Add test cases for ThinkPHP cookie, environment and service patterns
- Add test case for trait method return by reference functionality
- Implement handling of MethodCall expressions in assignment operations with references
- Add StaticCall expression support for reference assignments with proper name validation
- Introduce native method lookup and reference return validation for method calls
- Add static method reference assignment with class name resolution and parent/self handling
- Update function return by reference to support property fetches and chained expressions
- Modify documentation to reflect updated reference assignment capabilities
- Add comprehensive tests for method and static call reference return scenarios
- Add returnsByRef property to FunctionDef entity
- Remove restriction on reference return types in Preprocessor
- Implement proper reference return handling in CompilerBase
- Add validation for reference assignment from function calls
- Update Translator to generate correct C++ code for reference returns
- Add compatibility checks for method override with reference returns
- Include test case for function returning by reference preserving aliases
- Add BUILD_MODE_LIB constant to CompilerBase class
- Implement isBuildModeLib and isBuildModeEmbed methods for library detection
- Update Clang backend to handle lib build mode with -fPIC flag and DLL linking
- Modify GccLikeBackend to support lib build mode with shared library flags
- Update MSVC backend to handle lib build mode with DLL compilation
- Extend PlatformBase to return correct extensions for lib builds
- Add proper handling for misc directory files during preprocessing
- Create new example project demonstrating library build functionality
- Update Translator to include main.cc for embed modes and add PHPX_NO_MAIN define for libraries
- Expand mode mapping to accept multiple library-related build mode aliases
- Increment version number from 1082 to 1084
- Update documentation to reflect new lib build option alongside bin and ext modes
- Updated CompilerBase.php to use convertIntExpr for bitwise not operations on variables
- Modified gen_stub.php to always use var_export for default value conversion
- Enhanced object_property test to follow strict type checking with TypeError handling
- Added native property test for bitwise not class constant assignments
- Updated Translator.php to return raw values instead of CValue wrappers for constants
- Improved documentation consistency across project overview files
- Added strict types declaration to property assignment test cases
- Change src/Php/Translator.php to src/Translator.php in documentation
- Update class hierarchy diagram to remove Php subdirectory references
- Modify composer.json autoloader to map TypePhp namespace to src directory only
- Adjust all src/Php/* paths to src/* in configuration and test files
- Update project.yml sources to include ./src instead of individual Php subdirectories
- Remove Php subdirectory from file paths in platform and analysis tests
- Clean up directory references in test results documentation
- Updated namespace declarations from PhpAot\Php to TypePhp in all source files
- Modified import statements to use TypePhp instead of PhpAot\Php throughout the codebase
- Adjusted composer.json autoload configuration to map TypePhp namespace to src directories
- Updated documentation references from PhpAot\Php to TypePhp in comments and markdown files
- Changed class references in test files to use new TypePhp namespace
- Updated bootstrap and utility scripts to reference TypePhp namespace
- Removed abstract base class inheritance in CompilerBase class
- Added new properties and methods for indentation and mode handling in CompilerBase
- Updated exception handling to use new TypePhp\Exception namespace
- Rename project references from Swoole-Compiler to TypePHP in documentation
- Update command line usage from php bin/compiler.php to ./tpc
- Change application name constant from Swoole-Compiler (AOT) to TypePHP
- Update file descriptions and metadata in project.yml
- Modify Windows packaging script title to TypePHP
- Replace all copyright headers to reference TypePHP instead of Swoole-Compiler
- Implement proper type checking for native scalar property assignments from variables
- Add exact type conversion helpers for int, float, and bool property types
- Enforce compile-time validation of static type mismatches in property assignments
- Introduce PHP-style error messages for property type assignment failures
- Optimize property fetch operations with zval macro support in loops
- Refine compound assignment operations to validate variable types before native writes
- Update attribute handling in node parsing to preserve original values correctly
- Enhance property assignment type resolution with comprehensive scalar type mapping