Skip to content

ApiCompat tool incorrectly handles RequiredUnreferencedCodeAttribute and possible other AOT attributes. #47513

Open
@m-nash

Description

@m-nash

In general adding an attribute is considered backwards compatible and removing an attribute requires judgement since it can be a breaking change if external people were relying on its presence.

For RequiredUnreferenceCodeAttribute it works in the opposite direction. Removing it is always backwards compatible and adding it is always a breaking change.

Are we able to update the tool to have special handling for these AOT attributes that we know should work in the opposite direction? @eerhardt mentioned a couple other attributes that also might fit into this bucket.

To reproduce you can add RequiredUnreferenceCodeAttribute to any api in any library that didn't already have it and run apicompat.

Expected: We should see an error saying adding this attribute is not backwards compatible.

Actual: We do not see any errors.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions