- Remove static constant lookup logic from parseConstFetch method
- Add support for unqualified constants in namespaces with runtime fallback mechanism
- Implement UnqualifiedInNamespace constant lookup strategy for proper PHP behavior
- Update test cases to verify runtime constant resolution works correctly
- Add comprehensive test coverage for namespace constant fallback scenarios
- Remove isValidDefineName validation in favor of direct string checking
- Support define() calls with namespaced and non-identifier constant names
- Add proper error handling for undefined constants in namespaces
- Update ReturnInfo::equalsApartFromPhpDocAndRefcount to consider PHPDoc types
in arginfo equivalence checks to prevent incorrect Reflection type exposure
- Rename method from equalsApartFromPhpDocAndRefcount to equalsApartFromRefcount
for better clarity and consistency
- Modify Translator.php to use hasClass and hasInterface methods instead of
symbols->hasClass and symbols->hasInterface for proper dependency resolution
- Add comprehensive tests for class registration preserving reverse inheritance
- Add tests for magic methods with implicit return types maintaining distinct
Zend arginfo during registration
- Include tests for interface registration handling child-before-parent scenarios
- Add cross-namespace interface dependency resolution tests
- Create diamond inheritance pattern registration preservation tests
- Simplified concat assignment logic by checking for Concat instance directly instead of flattening
- Changed SelectionExpressionTrait to use parseExprAsValue for ternary branches
- Added proper handling of void branch conversion to null in ternary expressions
- Added tests for concat assignment to inherited properties
- Added tests for ternary expressions with void branches and side effects
- Introduce EXTENSION_PREFIX constant in Constants class
- Add isTypePhpExtension method to Reflection class for proper extension identification
- Update getModuleName to use standardized extension prefix
- Modify internal class and interface detection to exclude TypePHP extension symbols
- Refactor internal functions loading to filter out TypePHP extension functions
- Remove deprecated ignoreExtensions property and related regex parsing logic
- Update version from 0.4.1 to 0.4.2
- Add test case to verify zend module always uses typephp prefix
- Updated swoole/phpx from ~2.4.0 to ~2.4.1 in composer.json
- Maintained compatibility with existing project requirements
- Ensured dependency version alignment with current standards
Cherry-pick of upstream 84ad3a5. The generator return type covariance
change is built on yurun's Translator.php, which diverged from
origin/master, so the files are materialized from the upstream commit
directly (they already include the cc25d71 FiberGenerator change).
- isReturnTypeOverrideCompatible now performs full covariance: every value
the child can return must be acceptable under the parent's declared
return type (nullable/union narrowing allowed).
- Add getReturnAcceptedTypes/isReturnTypeSubtype/isReturnTypeCoveredBy/
isReturnTypeEntryCompatible helpers; generators use their source-level
declared return type so interface/abstract covariance checks hold.
- FunctionDef gains declaredReturnType/declaredReturnClass/declaredReturnTypeCheck.
Regression tests: interface-return-type.phpt, interface-return-type-variants.phpt.
- Add detection of pre-existing __construct methods in class
- Throw CompileTimeAttributeError when constructor property conflicts with existing method
- Update test to use proper exception expectation pattern
- Add new test case for parameter order independence
- Create helper method to find declared constructors in class statements
- Improve error messaging with specific class and method information
- Added check for staticVars when processing closure use references
- Prevented redeclaration of static variables as local variables in closures
- Updated variable resolution logic to include static variable scope
- Added comprehensive test case for static variable closure reference behavior
- Fixed variable name collision in preprocessor class constant handling
- Updated version number to 0.4.1
- Simplified test case prop-001 to focus on short-circuit evaluation
- Updated expected output values in object property tests
- Modified dynamic call return tests to expect 'user' instead of 'foo'
- Removed skip conditions and extensive test suite documentation
- Kept core functionality testing for isset and assignment operations
- Renamed ExtensionProvider attribute to MethodsFor across all test files
- Updated keyword extension tests to use MethodsFor instead of ExtensionProvider
- Modified universal method extension tests to reflect the attribute name change
- Adjusted stream method extension tests to use new attribute naming
- Changed object extension tests to use MethodsFor attribute
- Updated constant expression validation logic for PHP 8.3+ static initializers
- Added support for dynamic static variable initializers in PHP 8.3 and later
- Removed
- Introduce constant declaration with new object instance
- Add var_dump to display the constant object
- Create basic example demonstrating PHP's new operator in constant context
- Include polyfills.php in cli.php to ensure runtime compatibility
- Maintain existing argument handling and main function execution
- Enable consistent environment setup across all entry points