Skip to content

[BUG] Method matching positive on abstract classes which does not implements pointcuted method from interface #335

Description

@TheCelavi

Consider usecase (precondition):

  • Class/Interface structure: Interface I -> AbstractClass A implements I -> ConcreteClass C extends A
  • Interface defines method foo()
  • Abstract class DOES NOT implements foo()
  • ConcreteClass implements foo()

Consider that ALL stated Interface/Classes are within same namespace.

If matcher is execution(public *->foo()), abstract class gets weaved -> it is interpreted as if there is a method foo, but there is not.

Possible fix: check PHP Tokenizer and class metadata for better introspection of implemented methods.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions