PsiType (@NotNull PsiElement psi) { List<? extends ThreadLocalTypes> stack = ourGuard.currentStack(); for (int i = stack.size() - 1; i >= 0; i--) { ThreadLocalTypes types = stack.get(i); PsiType type = types.myMap.get(psi); if (type != null) { if (types.myProhibitCaching) { ourGuard.prohibitResultCaching(types); } return type; } } return null; }