eclipse-jdt / eclipse-jdt/eclipse.jdt.core

Inference difference between `javac` and `ecj` involving 2 wild cards

Open
#595 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 12h
Merged PRs (30d)
47

Description

Eclipse reports "Cannot infer type argument(s) for map(Function)" here, while `javac` will compile this code. I think `javac` is correct here.

Changing the `BootableService` to accept `(TestServiceProvider` fixes the problem.

import java.util.Optional;

public class InferenceBug {

interface TestServiceProvider {
}

public void bla() {
Optional> result = Optional.empty();

result.map(provider -> new BootableService<>(provider)); // <-- eclipse error here
}

static class BootableService
{
TestServiceProvider
provider;

public BootableService(TestServiceProvider
provider) {
}
}
}

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.