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(); } }