pdt icon indicating copy to clipboard operation
pdt copied to clipboard

Missing error on lack/excessive of params on derived method

Open the-liquid-metal opened this issue 1 year ago • 0 comments

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
}

the-liquid-metal avatar Jun 17 '23 03:06 the-liquid-metal