eclipse-jdt/eclipse.jdt.core

"Ignore in overriding and implementing method" not working for method references

Open

#3.944 aberto em 20 de abr. de 2025

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)Java (183 forks)auto 404
good first issuehelp wanted

Métricas do repositório

Stars
 (233 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

Version: 2025-03 (4.35.0) Build id: 20250306-0812 JDK: jdk-21.0.6+7

When "Ignore in overriding and implementing method" is checked, unused parameters are ignored if the method is overriding or implementing an abstract method. If the method is implementing a functional interface as a method reference, eclipse shows the warning for any unused parameters.

In this example the parameter someParam is marked as unused, even though the method methodImplementation is used for implementating a functional interface.

public class Showcase {

    @FunctionalInterface
    interface MyFunction {
        int apply(int someParam, int someOtherParam);
    }

    public static void main(String[] args) {
        test(Showcase::methodImplementation);
    }

    private static void test(MyFunction func) {
        var result = func.apply(42, 9001);
        System.out.println("Result: " + result);
    }

    // someParam marked as unused, even if "Ignore in overriding and implementing method" is checked
    private static int methodImplementation(int someParam, int someOtherParam) {
        return someOtherParam;
    }

}

Guia do colaborador