[java] [inference] limit bound promotion per one parameter (IDEA-277612)

GitOrigin-RevId: 0ed133250f1c68c5c14b5e6c5683b03084592e1d
This commit is contained in:
Anna Kozlova
2021-09-13 14:46:13 +02:00
committed by intellij-monorepo-bot
parent bd40d80a9a
commit dea5a38f11
3 changed files with 32 additions and 34 deletions

View File

@@ -0,0 +1,25 @@
import java.util.Collection;
import java.util.List;
interface Mappable<T> {
T map(Mapper mapper);
class Foo<B extends Foo.FooBuilder<B, U>, U extends Foo<B, U>> implements Mappable<Foo<B, U>> {
static class FooBuilder<B extends FooBuilder<B, U>, U extends Foo<B, U>> {}
@Override
public Foo<B, U> map(Mapper mapper) { return this; }
}
class Mapper {
<E extends Mappable<? extends E>> List<E> map(List<E> in) { return in; }
<E extends Mappable<? extends E>> Collection<E> map(Collection<E> in) { return in; }
}
class Counter implements Mappable<Counter> {
private final List<Foo<?, ?>> in;
Counter(List<Foo<?, ?>> in) { this.in = in; }
@Override
public Counter map(Mapper mapper) {
return new Counter(mapper.map(in));
}
}
}