dtr-org / unit-e

A digital currency for a new era of decentralized trust
https://unit-e.io
MIT License
45 stars 15 forks source link

Make lint-clang-format output human-readable #839

Closed frolosofsky closed 5 years ago

frolosofsky commented 5 years ago

This commit fixes the problem of an unreadable output of the linter. It occurs because of incorrect using of the difflib library which compares lists of lines but not strings (lists of characters).

There's a piece of bad-formatted code:

#include <chainparams.h>
#include <finalization/state_processor.h>
#include <esperanza/finalizationstate.h>
#include <validation.h>

namespace finalization {
namespace {

class RepositoryImpl final : public StateRepository {
 public:
  explicit RepositoryImpl(Dependency<staking::ActiveChain> active_chain)
      : m_active_chain(active_chain) {}

 FinalizationState *GetTipState() override;
  FinalizationState *Find(const CBlockIndex &block_index) override;
 FinalizationState *FindOrCreate(const CBlockIndex &block_index,
                                  FinalizationState::InitStatus required_parent_status) override;
  bool Confirm(const CBlockIndex &block_index,
           FinalizationState &&new_state,
               FinalizationState **state_out) override;

  void RestoreFromDisk(const CChainParams &chainparams,
                       Dependency<finalization::StateProcessor> proc) override;

How it was:

$ contrib/devtools/lint-clang-format.py
state_repository.cpp is not formatted
---
+++
@@ -261,6 +261,16 @@
 e   <+e+s+p+e+r+a+n+z+a+/ f i n@@ -273,22 +283,11 @@
 i o n-/-s-t-a-t-e-_-p-r-o-c-e-s-s-o-r+s+t+a+t+e . h >@@ -303,33 +302,34 @@
 e   <-e-s-p-e-r-a-n+f+i+n+a+l+i z a+t+i+o+n /-f-i-n-a-l-i-z-a-t-i-o-n-s-t-a-t-e+s+t+a+t+e+_+p+r+o+c+e+s+s+o+r . h >@@ -575,6 +575,7 @@

  +  F i n@@ -687,6 +688,7 @@
 ;
  +  F i n@@ -896,6 +898,10 @@
 x ,
+ + + +

How it looks after this change:

$ contrib/devtools/lint-clang-format.py
state_repository.cpp is not formatted
---
+++
@@ -5,8 +5,8 @@
 #include <finalization/state_repository.h>

 #include <chainparams.h>
+#include <esperanza/finalizationstate.h>
 #include <finalization/state_processor.h>
-#include <esperanza/finalizationstate.h>
 #include <validation.h>

 namespace finalization {
@@ -17,12 +17,12 @@
   explicit RepositoryImpl(Dependency<staking::ActiveChain> active_chain)
       : m_active_chain(active_chain) {}

- FinalizationState *GetTipState() override;
+  FinalizationState *GetTipState() override;
   FinalizationState *Find(const CBlockIndex &block_index) override;
- FinalizationState *FindOrCreate(const CBlockIndex &block_index,
+  FinalizationState *FindOrCreate(const CBlockIndex &block_index,
                                   FinalizationState::InitStatus required_parent_status) override;
   bool Confirm(const CBlockIndex &block_index,
-           FinalizationState &&new_state,
+               FinalizationState &&new_state,
                FinalizationState **state_out) override;

   void RestoreFromDisk(const CChainParams &chainparams,
frolosofsky commented 5 years ago

Mergeable hangs.

scravy commented 5 years ago
feature_bip68_sequence.py                      | ✖ Failed  | 102 s

flaked out :-(