pdt
pdt copied to clipboard
Missing error on lack/excessive of params on derived method
Bug Description Missing error on lack/excessive of params on derived method.
Eclipse environment Version: 2023-06 (4.28.0) Build id: 20230608-1333 PDT: 8.0.0.202306050832
System
- PHP Version: 8.2.7, 8.1.20, 8.0.29, 7.4.33 (via https://onlinephp.io/)
To Reproduce Steps to reproduce the behavior: copy-paste this script to the IDE
<?php
declare(strict_types=1);
namespace ns1\ns2;
interface Test06 {
public function fn1(int $par1): int;
public function fn2(int $par1): int;
public function fn3(int $par1): int;
}
interface Test06b extends Test06
{
public function fn1(int $par1): int; // OK
public function fn2(): int; // this statement must trigger error
public function fn3(int $par1, int $par1): int; // this statement must trigger error
}
// -------------------------------------------------------------------------
class Test06c {
public function fn1(int $par1): int {}
public function fn2(int $par1): int {}
public function fn3(int $par1): int {}
}
class Test06d extends Test06c
{
public function fn1(int $par1): int {} // OK
public function fn2(): int {} // this statement must trigger error
public function fn3(int $par1, int $par1): int {} // this statement must trigger error
}
// -------------------------------------------------------------------------
interface Test06e {
public function fn1(int $par1): int;
public function fn2(int $par1): int;
public function fn3(int $par1): int;
}
class Test06f implements Test06e
{
public function fn1(int $par1): int {} // OK
public function fn2(): int {} // this statement must trigger error
public function fn3(int $par1, int $par1): int {} // this statement must trigger error
}
// -------------------------------------------------------------------------
trait Test06g {
public function fn1(int $par1): int {}
public function fn2(int $par1): int {}
public function fn3(int $par1): int {}
}
class Test06h {
use Test06g;
}
class Test06i extends Test06h
{
public function fn1(int $par1): int {} // OK
public function fn2(): int {} // this statement must trigger error
public function fn3(int $par1, int $par1): int {} // this statement must trigger error
}