@SuppressWarnings("unchecked")
  public @Nullable <T extends PsiType> T mapType(@NotNull T type) {
    return (T)type.accept(this);
  }
@SuppressWarnings("unchecked")
  public @Nullable <T extends PsiType> T mapType(@NotNull T type)