Skip to content

Add a common tag to indicate that there are no undeclared magic methods/properties. #2

@TysonAndre

Description

@TysonAndre

In Psalm, this is psalm-seal-methods/psalm-seal-properties.

In Phan, this is phan-forbid-undeclared-magic-methods/phan-forbid-undeclared-magic-properties.

In the majority of use cases, you'd want a single tag that would apply to any analyzer/IDE that exists.

  • x(experimental) is the best prefix I can come up with - Having a hyphen is needed to avoid tools such as doctrine from treating the annotations like
  • For a few exceptions (e.g. there's a plugin that's only implemented for one analyzer/IDE that adds the methods), having analyzer-specific tags that other analyzers ignore is still useful.

Something along the lines of @seal-properties/@seal-methods on classes, interfaces, and traits would work for that. (Or @x-seal-properties, but there's probably no reason for a prefix in names that have hyphens already)

  • I'd prefer for that to be inheritable, and possibly add @unseal-properties (name to be determined)

cc @muglug

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions