Skip to content

new Implement(\Throwable:;class) doesn't work as expected and has false positives #393

@Et3rnel

Description

@Et3rnel

Bug Report

Q A
BC Break yes?
Library Version 0.3.25
PHP version 8.2

Summary

I try to check if all my exceptions are suffixed by Exception keyword

Current behavior

All interfaces and traits seems to be flagged as violation

How to reproduce

Create this rule:

$rules[] = Rule::allClasses()
    ->that(new Implement(\Throwable::class))
    // also doesn't work with ->that(new Implement('Throwable'))
    // also doesn't work with ->that(new Extend(\Exception::class))
    ->should(new HaveNameMatching('*Exception'))
    ->because('reasons');

Expected behavior

  • The exceptions not suffixing Exception should be flagged as violations (that's not the case)
  • All interfaces and traits should not be flagged as violations (because they don't event extend Throwable in my case)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions