private @Nullable String getPropertyName(@NotNull PsiReferenceExpression expression, boolean skipUnresolved) {
    String propertyName = expression.getReferenceName();
    if (propertyName == null) return null;

    PsiElement refElement = expression.resolve();
    if (refElement instanceof PsiVariable) {
      VariableKind refVariableKind = getVariableKind((PsiVariable)refElement);
      return variableNameToPropertyName(propertyName, refVariableKind);
    }
    else if (refElement == null && skipUnresolved) {
      return null;
    }
    else {
      return propertyName;
    }
  }
private @Nullable String getPropertyName(@NotNull PsiReferenceExpression expression, boolean skipUnresolved)