Skip to content

Commit

Permalink
Merge branch 'PHP-8.2' into PHP-8.3
Browse files Browse the repository at this point in the history
* PHP-8.2:
  Fix lineno for inheritance errors of early bound classes
  • Loading branch information
iluuu1994 committed Oct 22, 2024
2 parents 381e020 + 2d068c4 commit e020853
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ PHP NEWS
call trampoline). (ilutov)
. Fixed bug GH-16509 (Incorrect line number in function redeclaration error).
(ilutov)
. Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed
early bound classes). (ilutov)

- Curl:
. Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if
Expand Down
20 changes: 20 additions & 0 deletions Zend/tests/gh16508.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--TEST--
GH-16508: Missing lineno in inheritance errors of delayed early bound classes
--EXTENSIONS--
opcache
--INI--
opcache.enable_cli=1
--FILE--
<?php

new Test2;

class Test2 extends Test {}

abstract class Test {
abstract function foo();
}

?>
--EXPECTF--
Fatal error: Class Test2 contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Test::foo) in %s on line 5
2 changes: 2 additions & 0 deletions Zend/zend_inheritance.c
Original file line number Diff line number Diff line change
Expand Up @@ -3410,6 +3410,8 @@ ZEND_API zend_class_entry *zend_try_early_bind(zend_class_entry *ce, zend_class_
CG(current_linking_class) = is_cacheable ? ce : NULL;

zend_try{
CG(zend_lineno) = ce->info.user.line_start;

if (is_cacheable) {
zend_begin_record_errors();
}
Expand Down

0 comments on commit e020853

Please sign in to comment.