@Override
    public void visitSynchronizedStatement(
      @NotNull PsiSynchronizedStatement statement) {
      super.visitSynchronizedStatement(statement);
      final PsiExpression lockExpression = statement.getLockExpression();
      if (lockExpression == null) {
        return;
      }
      final String type = TypeUtils.expressionHasTypeOrSubtype(
        lockExpression,
        "java.util.concurrent.locks.Lock",
        "java.util.concurrent.locks.ReadWriteLock");
      if (type == null) {
        return;
      }
      registerError(lockExpression, type);
    }
@Override
    public void visitSynchronizedStatement(
      @NotNull PsiSynchronizedStatement statement)