@Contract("null -> null")
  @Nullable
  public static PsiVariable resolveVariable(@Nullable PsiExpression expression) {
    expression = PsiUtil.skipParenthesizedExprDown(expression);
    PsiReferenceExpression referenceExpression = tryCast(expression, PsiReferenceExpression.class);
    if(referenceExpression == null) return null;
    return tryCast(referenceExpression.resolve(), PsiVariable.class);
  }
@Contract("null -> null")
  @Nullable
  public static PsiVariable resolveVariable(@Nullable PsiExpression expression)