mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
For classes that are not declared `abstract`, produce a compiler error for any `abstract` methods. For anonymous classes, since they cannot be made abstract, the error message is slightly different. Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
20 lines
430 B
PHP
20 lines
430 B
PHP
--TEST--
|
|
Abstract methods not allowed in classes that are not abstract (GH-16067)
|
|
--FILE--
|
|
<?php
|
|
|
|
// Still allowed via trait
|
|
trait TraitWithAbstract {
|
|
abstract public function foo();
|
|
}
|
|
class TraitWorks {
|
|
use TraitWithAbstract;
|
|
}
|
|
|
|
class NotAbstract {
|
|
abstract public function bar();
|
|
}
|
|
?>
|
|
--EXPECTF--
|
|
Fatal error: Class NotAbstract declares abstract method bar() and must therefore be declared abstract in %s on line %d
|