move static members: correct result ref (IDEA-93582)

This commit is contained in:
anna
2012-10-25 15:52:43 +02:00
parent f8756f2991
commit 75335192ab
7 changed files with 81 additions and 1 deletions
@@ -0,0 +1,16 @@
package pack1;
interface Eff<A, B> {
B f(A a);
}
abstract class POne<A> {
abstract A _1();
}
final class Hooray<A> {
public <B> Hooray<B> map(final Eff<A, B> f) {
return null;
}
}
@@ -0,0 +1,15 @@
package pack1;
public class C {
static <A> POne<Hooray<A>> sequence(final Hooray<POne<A>> as) {
return new POne<Hooray<A>>() {
public Hooray<A> _1() {
return as.map(C.<A>__1());
}
};
}
static <A> Eff<POne<A>, A> __1() {
return POne::_1;
}
}