Skip to content

idea: check and fix use of declaration-site type variance #2621

@vlsi

Description

@vlsi

See:

Currently, Java requires use-site type variance, so if someone has Function<IN, OUT> method parameter, it should rather be Function<? super IN, ? extends OUT>.

Unfortunately, it is not easy to notice that ? super and ? extends is missing, so it would be nice if there was a tool that could detect missing variance and suggest adding it.

The list of well-known classes could be hard-coded within OpenRewrite: Function, Predicate, BiFunction, Consumer, Supplier, and so on.

Here is a recent case:

WDYT?

Corner cases:

See also:

Metadata

Metadata

Assignees

Labels

recipeRequested Recipe

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions