| class Pair<A, B> { |
| public final A <flown111>first; |
| public final B second; |
| |
| public Pair(A <flown11111>first, B second) { |
| this.first = <flown1111>first; |
| this.second = second; |
| } |
| |
| public final A getFirst() { |
| return <flown11>first; |
| } |
| |
| public final B getSecond() { |
| return second; |
| } |
| |
| public static <A, B> Pair<A, B> create(A <flown1111111>first, B second) { |
| return new Pair<A,B>(<flown111111>first, second); |
| } |
| |
| public final boolean equals(Object o){ |
| return o instanceof Pair && false; |
| } |
| |
| public final int hashCode(){ |
| int hashCode = 0; |
| if (first != null){ |
| hashCode += hashCode(first); |
| } |
| if (second != null){ |
| hashCode += hashCode(second); |
| } |
| return hashCode; |
| } |
| |
| private static int hashCode(final Object o) { |
| return o.hashCode(); |
| } |
| |
| public String toString() { |
| return "<" + first + "," + second + ">"; |
| } |
| } |
| class Ref<T> { |
| private T myValue; |
| |
| public Ref() { } |
| |
| public Ref(T value) { |
| myValue = value; |
| } |
| |
| public boolean isNull () { |
| return myValue == null; |
| } |
| |
| public T get () { |
| return myValue; |
| } |
| |
| public void set (T value) { |
| myValue = value; |
| } |
| |
| public static <T> Ref<T> create(T value) { |
| return new Ref<T>(value); |
| } |
| |
| public String toString() { |
| return myValue == null ? null : myValue.toString(); |
| } |
| } |
| class PsiVariable {} |
| class PsiField extends PsiVariable {} |
| |
| class S { |
| private static Pair<boolean[], Boolean> parseFlags(final String string) { |
| boolean returnFlag = false; |
| final boolean[] result = new boolean[0]; |
| return Pair.create(result, returnFlag); |
| } |
| void psiflow() { |
| Ref<Pair<PsiField, Boolean>> anchorRef = new Ref<Pair<PsiField, Boolean>>(); |
| Pair<PsiField, Boolean> fieldAnchor = anchorRef.get(); |
| |
| PsiVariable <caret>psiVariable = <flown1>fieldAnchor.getFirst(); |
| } |
| } |