Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use of a linter #336

Open
hz61p1 opened this issue Apr 19, 2022 · 0 comments
Open

Use of a linter #336

hz61p1 opened this issue Apr 19, 2022 · 0 comments

Comments

@hz61p1
Copy link

hz61p1 commented Apr 19, 2022

Is it worth offering a PR with the correction of alleged errors after the linter note golangci-lint?

An example of what the linter gives out, somewhere false positives, and somewhere it is worth adding logging

lib/db_utils.go:150:2: `_PrefixStakeIDTypeAmountStakeIDIndex` is unused (deadcode)
        _PrefixStakeIDTypeAmountStakeIDIndex = []byte{26}
        ^
lib/db_utils.go:513:6: `_enumerateLimitedKeysReversedForPrefix` is unused (deadcode)
func _enumerateLimitedKeysReversedForPrefix(db *badger.DB, dbPrefix []byte, limit uint64) (_keysFound [][]byte, _valsFound [][]byte) {
     ^
lib/db_utils.go:1862:6: `_dbKeyForDiamondSenderToDiamondReceiverMappingWithoutEntry` is unused (deadcode)
func _dbKeyForDiamondSenderToDiamondReceiverMappingWithoutEntry(
     ^
lib/db_utils.go:4021:6: `_dbKeyForPublicKeyPostHash` is unused (deadcode)
func _dbKeyForPublicKeyPostHash(publicKey []byte, postHash *BlockHash) []byte {
     ^
lib/deso_math.go:98:2: `bigNegativeOneOne` is unused (deadcode)
        bigNegativeOneOne = NewFloat().SetUint64(1)
        ^
lib/block_view_message_test.go:622:6: `_messagingKey` is unused (deadcode)
func _messagingKey(t *testing.T, chain *Blockchain, db *badger.DB, params *DeSoParams,
     ^
lib/blockchain_test.go:88:6: `_copyBlock` is unused (deadcode)
func _copyBlock(blk *MsgDeSoBlock) *MsgDeSoBlock {
     ^
lib/block_view_bitcoin_test.go:138:22: Error return value of `header.Deserialize` is not checked (errcheck)
                        header.Deserialize(bytes.NewBuffer(headerBytes))
                                          ^
lib/block_view_bitcoin_test.go:334:37: Error return value of `parsedBitcoinExchangeTxn.FromBytes` is not checked (errcheck)
                parsedBitcoinExchangeTxn.FromBytes(bb)
                                                  ^
lib/block_view_bitcoin_test.go:1031:37: Error return value of `parsedBitcoinExchangeTxn.FromBytes` is not checked (errcheck)
                parsedBitcoinExchangeTxn.FromBytes(bb)
                                                  ^
lib/block_view_bitcoin_test.go:1149:30: Error return value of `utxoView.ConnectTransaction` is not checked (errcheck)
                utxoView.ConnectTransaction(burnTxn1, txHash1, burnTxn1Size, blockHeight, true /*verifySignature*/, false /*ignoreUtxos*/)
                                           ^
lib/block_view_bitcoin_test.go:1155:30: Error return value of `utxoView.ConnectTransaction` is not checked (errcheck)
                utxoView.ConnectTransaction(burnTxn1, txHash1, burnTxn1Size, blockHeight, true /*verifySignature*/, false /*ignoreUtxos*/)
                                           ^
lib/block_view_bitcoin_test.go:1755:37: Error return value of `parsedBitcoinExchangeTxn.FromBytes` is not checked (errcheck)
                parsedBitcoinExchangeTxn.FromBytes(bb)
                                                  ^
lib/block_view_profile_test.go:1164:23: Error return value of `pprof.StartCPUProfile` is not checked (errcheck)
        pprof.StartCPUProfile(f)
                             ^
lib/block_view_test.go:472:33: Error return value of `utxoView.DisconnectTransaction` is not checked (errcheck)
                utxoView.DisconnectTransaction(
                                              ^
lib/blockchain_test.go:530:10: Error return value of `flag.Set` is not checked (errcheck)
        flag.Set("alsologtostderr", "true")
                ^
lib/db_utils.go:360:9: Error return value of `db.View` is not checked (errcheck)
        db.View(func(txn *badger.Txn) error {
               ^
lib/db_utils.go:393:9: Error return value of `db.View` is not checked (errcheck)
        db.View(func(txn *badger.Txn) error {
               ^
lib/db_utils.go:406:37: Error return value of `(*encoding/gob.Encoder).Encode` is not checked (errcheck)
                gob.NewEncoder(pkidDataBuf).Encode(pkidEntry)
                                                  ^
lib/db_utils.go:734:9: Error return value of `db.View` is not checked (errcheck)
        db.View(func(txn *badger.Txn) error {
               ^
lib/db_utils.go:954:29: Error return value of `messagingGroupEntry.Decode` is not checked (errcheck)
                messagingGroupEntry.Decode(valBytes)
                                          ^
lib/db_utils.go:1509:38: Error return value of `(*encoding/gob.Encoder).Encode` is not checked (errcheck)
        gob.NewEncoder(repostDataBuf).Encode(repostEntry)
                                            ^
lib/db_utils.go:1887:40: Error return value of `(*encoding/gob.Encoder).Encode` is not checked (errcheck)
        gob.NewEncoder(diamondEntryBuf).Encode(diamondEntry)
                                              ^
lib/db_utils.go:2288:13: Error return value of `handle.View` is not checked (errcheck)
        handle.View(func(txn *badger.Txn) error {
                   ^
lib/db_utils.go:2336:13: Error return value of `handle.View` is not checked (errcheck)
        handle.View(func(txn *badger.Txn) error {
                   ^
lib/db_utils.go:2364:13: Error return value of `handle.View` is not checked (errcheck)
        handle.View(func(txn *badger.Txn) error {
                   ^
lib/db_utils.go:3013:17: Error return value of `nodeValue.Value` is not checked (errcheck)
        nodeValue.Value(func(nodeBytes []byte) error {
                       ^
lib/db_utils.go:3421:15: Error return value of `handle.Update` is not checked (errcheck)
        handle.Update(func(dbTxn *badger.Txn) error {
                     ^
lib/db_utils.go:4637:53: Error return value of `(*encoding/gob.Decoder).Decode` is not checked (errcheck)
                gob.NewDecoder(bytes.NewReader(byteString)).Decode(currentEntry)
                                                                  ^
lib/db_utils.go:4686:53: Error return value of `(*encoding/gob.Decoder).Decode` is not checked (errcheck)
                gob.NewDecoder(bytes.NewReader(byteString)).Decode(currentEntry)
                                                                  ^
lib/db_utils.go:6120:15: Error return value of `handle.Update` is not checked (errcheck)
        handle.Update(func(txn *badger.Txn) error {
                     ^
lib/db_utils_test.go:45:21: Error return value of `bs.Header.FromBytes` is not checked (errcheck)
        bs.Header.FromBytes(headerBytes)
                           ^
lib/load_test.go:130:24: Error return value of `pprof.StartCPUProfile` is not checked (errcheck)
                pprof.StartCPUProfile(ff)
                                     ^
lib/load_test.go:231:24: Error return value of `pprof.StartCPUProfile` is not checked (errcheck)
                pprof.StartCPUProfile(ff)
                                     ^
lib/mempool.go:339:28: Error return value of `mp.regenerateReadOnlyView` is not checked (errcheck)
                mp.regenerateReadOnlyView()
                                         ^
lib/mempool.go:628:28: Error return value of `mp.limitNumUnconnectedTxns` is not checked (errcheck)
        mp.limitNumUnconnectedTxns()
                                  ^
lib/mempool.go:2090:28: Error return value of `mp.regenerateReadOnlyView` is not checked (errcheck)
                mp.regenerateReadOnlyView()
                                         ^
lib/mempool.go:2273:31: Error return value of `mp.RegenerateReadOnlyView` is not checked (errcheck)
                                        mp.RegenerateReadOnlyView()
                                                                 ^
lib/network.go:2240:33: Error return value of `blockProducerInfo.Deserialize` is not checked (errcheck)
                        blockProducerInfo.Deserialize(blockProducerInfoBytes)
                                                     ^
lib/network.go:2834:16: Error return value of `json.Unmarshal` is not checked (errcheck)
        json.Unmarshal(data, &anonymousTxn)
                      ^
lib/network_test.go:489:25: Error return value of `invMsgFromBuf.FromBytes` is not checked (errcheck)
        invMsgFromBuf.FromBytes(bb)
                               ^
lib/network_test.go:646:23: Error return value of `bitcoinTx.Deserialize` is not checked (errcheck)
        bitcoinTx.Deserialize(bytes.NewReader(bitcoinTxBytes))
                             ^
lib/network_test.go:837:16: Error return value of `faker.FakeData` is not checked (errcheck)
        faker.FakeData(&txMeta)
                      ^
lib/network_test.go:861:16: Error return value of `faker.FakeData` is not checked (errcheck)
        faker.FakeData(&txMeta)
                      ^
lib/network_test.go:1263:20: Error return value of `v0Header.FromBytes` is not checked (errcheck)
        v0Header.FromBytes(headerBytes)
                          ^
lib/network_test.go:1283:19: Error return value of `v0Block.FromBytes` is not checked (errcheck)
        v0Block.FromBytes(blockBytes)
                         ^
lib/server.go:1378:27: Error return value of `srv.statsdClient.Gauge` is not checked (errcheck)
                                srv.statsdClient.Gauge("MEMPOOL.COUNT", float64(mempoolTotal), tags, 1)
                                                      ^
lib/server.go:1382:27: Error return value of `srv.statsdClient.Gauge` is not checked (errcheck)
                                srv.statsdClient.Gauge("BLOCKS.HEIGHT", float64(blocksHeight), tags, 1)
                                                      ^
lib/server.go:1385:27: Error return value of `srv.statsdClient.Gauge` is not checked (errcheck)
                                srv.statsdClient.Gauge("HEADERS.HEIGHT", float64(headersHeight), tags, 1)
                                                      ^
lib/postgres.go:438:2: `tableName` is unused (structcheck)
        tableName struct{} `pg:"pg_notifications"`
        ^
lib/postgres.go:601:2: `tableName` is unused (structcheck)
        tableName struct{} `pg:"pg_follows"`
        ^
lib/postgres.go:289:2: `tableName` is unused (structcheck)
        tableName struct{} `pg:"pg_metadata_dao_coins"`
        ^
lib/server.go:55:2: `eventManager` is unused (structcheck)
        eventManager  *EventManager
        ^
lib/postgres.go:792:2: `isDeleted` is unused (structcheck)
        isDeleted bool
        ^
lib/notifier.go:241:27: func `(*Notifier).notifyBasicTransfers` is unused (unused)
func (notifier *Notifier) notifyBasicTransfers() {
                          ^
lib/db_utils.go:530:6: func `_enumerateLimitedKeysReversedForPrefixWithTxn` is unused (unused)
func _enumerateLimitedKeysReversedForPrefixWithTxn(dbTxn *badger.Txn, dbPrefix []byte, limit uint64) (_keysFound [][]byte, _valsFound [][]byte, _err error) {
     ^
lib/postgres.go:1869:27: func `(*Postgres).flushMessagingGroups` is unused (unused)
func (postgres *Postgres) flushMessagingGroups(tx *pg.Tx, view *UtxoView) error {
                          ^
lib/mempool.go:925:24: func `(*DeSoMempool)._quickCheckBitcoinExchangeTxn` is unused (unused)
func (mp *DeSoMempool) _quickCheckBitcoinExchangeTxn(
                       ^
lib/block_view_message.go:173:22: func `(*UtxoView).deleteMessageMappings` is unused (unused)
func (bav *UtxoView) deleteMessageMappings(message *PGMessage) {
                     ^
lib/db_utils.go:119:2: var `_PrefixPosterPublicKeyPostHash` is unused (unused)
        _PrefixPosterPublicKeyPostHash = []byte{18}
        ^
lib/block_view_message.go:156:22: func `(*UtxoView).getMessage` is unused (unused)
func (bav *UtxoView) getMessage(messageHash *BlockHash) *PGMessage {
                     ^
lib/block_view.go:1319:3: S1005: unnecessary assignment to the blank identifier (gosimple)
                currentAmount, _ := amountsByPublicKey[MakePkMapKey(desoOutput.PublicKey)]
                ^
lib/block_view.go:1401:3: S1005: unnecessary assignment to the blank identifier (gosimple)
                diamondRecipientTotal, _ := amountsByPublicKey[MakePkMapKey(diamondRecipientPubKey)]
                ^
lib/block_view_dao_coin_limit_order.go:1321:2: S1005: unnecessary assignment to the blank identifier (gosimple)
        outputEntry, _ := bav.DAOCoinLimitOrderMapKeyToDAOCoinLimitOrderEntry[mapKey]
        ^
lib/constants.go:110:24: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
        TikTokShortURLRegex = regexp.MustCompile("^.*(vm\\.tiktok\\.com/)([A-Za-z0-9]{6,12}).*")
                              ^
lib/constants.go:111:24: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
        TikTokFullURLRegex  = regexp.MustCompile("^.*((tiktok\\.com/)(v/)|(@[A-Za-z0-9_-]{2,24}/video/)|(embed/v2/))(\\d{0,30}).*")
                              ^
lib/mempool.go:1325:22: S1007: should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (gosimple)
                        dollarTagRegex := regexp.MustCompile("\\w*[a-zA-Z_]\\w*")
                                          ^
lib/block_view_dao_coin_limit_order.go:1574:2: S1008: should use 'return exchangeRateProduct.Cmp(rightHandSide) >= 0' instead of 'if exchangeRateProduct.Cmp(rightHandSide) < 0 { return false }; return true' (gosimple)
        if exchangeRateProduct.Cmp(rightHandSide) < 0 {
        ^
lib/db_utils.go:3801:2: S1008: should use 'return err == nil' instead of 'if err != nil { return false }; return true' (gosimple)
        if err != nil {
        ^
lib/types.go:69:27: S1019: should use make([]byte, 33) instead (gosimple)
        valBytes := make([]byte, 33, 33)
                                 ^
lib/types.go:182:27: S1019: should use make([]byte, HashSizeBytes) instead (gosimple)
        valBytes := make([]byte, HashSizeBytes, HashSizeBytes)
                                 ^
lib/types.go:211:23: S1019: should use make([]byte, 32) instead (gosimple)
        data := make([]byte, 32, 32)
                             ^
lib/types.go:216:27: S1019: should use make([]byte, 32) instead (gosimple)
        valBytes := make([]byte, 32, 32)
                                 ^
lib/bitcoin_burner.go:632:9: S1039: unnecessary use of fmt.Sprintf (gosimple)
        URL := fmt.Sprintf("http://api.blockcypher.com/v1/btc/main/txs/push")
               ^
lib/bitcoin_burner.go:634:9: S1039: unnecessary use of fmt.Sprintf (gosimple)
                URL = fmt.Sprintf("http://api.blockcypher.com/v1/btc/test3/txs/push")
                      ^
lib/supply_test.go:203:2: unreachable: unreachable code (govet)
        {
        ^
lib/db_utils.go:5099:2: ineffectual assignment to err (ineffassign)
        err = derivedKeyEntryItem.Value(func(valBytes []byte) error {
        ^
lib/network.go:5901:17: ineffectual assignment to err (ineffassign)
        numRecipients, err := ReadUvarint(rr)
                       ^
lib/block_view_derived_key_test.go:238:52: ineffectual assignment to err (ineffassign)
                txn, totalInputMake, changeAmountMake, feesMake, err = chain.CreateAuthorizeDerivedKeyTxn(
                                                                 ^
lib/block_view_derived_key_test.go:1232:3: ineffectual assignment to testUtxoOps (ineffassign)
                testUtxoOps = append(testUtxoOps, utxoOps)
                ^
lib/block_view_derived_key_test.go:2154:3: ineffectual assignment to testUtxoOps (ineffassign)
                testUtxoOps = append(testUtxoOps, utxoOps)
                ^
lib/block_view_post_test.go:1930:3: ineffectual assignment to totalInput (ineffassign)
                totalInput, _, _, fees, err :=
                ^
lib/txindex.go:158:3: SA2000: should call txi.updateWaitGroup.Add(1) before starting the goroutine to avoid a race (staticcheck)
                txi.updateWaitGroup.Add(1)
                ^
lib/block_view_message.go:314:6: SA4003: no value of type uint64 is less than 0 (staticcheck)
                if version < 0 || version > MessagesVersion3 {
                   ^
lib/block_view_post.go:936:6: SA4003: no value of type uint64 is less than 0 (staticcheck)
                if txMeta.CreatorBasisPoints < 0 ||
                   ^
lib/block_view_profile.go:566:72: SA4003: no value of type uint64 is less than 0 (staticcheck)
        if txMeta.NewCreatorBasisPoints > bav.Params.MaxCreatorBasisPoints || txMeta.NewCreatorBasisPoints < 0 {
                                                                              ^
lib/block_view.go:2057:2: SA9003: empty branch (staticcheck)
        if verifySignatures {
        ^
lib/block_view.go:2624:2: SA9003: empty branch (staticcheck)
        if len(outputs) > 0 {
        ^
lib/block_view_bitcoin.go:186:2: SA9003: empty branch (staticcheck)
        if verifySignatures {
        ^
lib/db_utils.go:3460:3: SA4004: the surrounding loop is unconditionally terminated (staticcheck)
                return uint64(countVal + 1)
                ^
lib/blockchain.go:3308:26: SA4001: &*x will be simplified to x. It will not copy x. (staticcheck)
                                TransactorPublicKey: &(*publicKey), // create a pointer to a copy of the public key
                                                     ^
lib/block_view_bitcoin_test.go:2004:3: SA4006: this value of `bitcoinExchangeTxns` is never used (staticcheck)
                bitcoinExchangeTxns = append(bitcoinExchangeTxns, txn)
                ^
lib/block_view_derived_key_test.go:2727:2: SA4006: this value of `err` is never used (staticcheck)
        m0PrivKeyBytes, _, err := Base58CheckDecode(m0Priv)
        ^
lib/supply_test.go:118:2: SA4006: this value of `assert` is never used (staticcheck)
        assert := assert.New(t)
        ^
lib/supply_test.go:119:2: SA4006: this value of `require` is never used (staticcheck)
        require := require.New(t)
        ^
desohash/sha3m/xor.go:64:7: `xorImplementationUnaligned` is unused (deadcode)
const xorImplementationUnaligned = "unaligned"
      ^
desohash/sha3m/xor_generic.go:12:6: `xorInGeneric` is unused (deadcode)
func xorInGeneric(d *state, buf []byte) {
     ^
desohash/sha3m/xor_generic.go:23:6: `copyOutGeneric` is unused (deadcode)
func copyOutGeneric(d *state, b []byte) {
     ^
desohash/sha3m/sha3.go:191:10: Error return value of `dup.Read` is not checked (errcheck)
        dup.Read(hash)
                ^
cmd/node.go:45:10: Error return value of `flag.Set` is not checked (errcheck)
        flag.Set("log_dir", node.Config.LogDirectory)
                ^
cmd/node.go:46:10: Error return value of `flag.Set` is not checked (errcheck)
        flag.Set("v", fmt.Sprintf("%d", node.Config.GlogV))
                ^
cmd/run.go:181:18: Error return value of `viper.BindPFlag` is not checked (errcheck)
                viper.BindPFlag(flag.Name, flag)
                               ^
cmd/run.go:34:2: sigchanyzer: misuse of unbuffered os.Signal channel as argument to signal.Notify (govet)
        signal.Notify(shutdownListener, syscall.SIGINT, syscall.SIGTERM)
        ^
scripts/mempool/mempool_dumper.go:34:2: `flagDiffNode` is unused (deadcode)
        flagDiffNode = flag.String(
        ^
scripts/mempool/mempool_dumper.go:79:24: Error return value of `peer.WriteDeSoMessage` is not checked (errcheck)
                peer.WriteDeSoMessage(&lib.MsgDeSoGetHeaders{
                                     ^
scripts/mempool/mempool_dumper.go:122:24: Error return value of `peer.WriteDeSoMessage` is not checked (errcheck)
                peer.WriteDeSoMessage(&lib.MsgDeSoMempool{})
                                     ^
scripts/mempool/mempool_dumper.go:154:26: Error return value of `peer.WriteDeSoMessage` is not checked (errcheck)
                                peer.WriteDeSoMessage(getTxns)
                                                     ^
scripts/mempool/mempool_dumper.go:165:16: SA1004: sleeping for 1 nanoseconds is probably a bug; be explicit if it isn't (staticcheck)
                                time.Sleep(1)
                                           ^
desohash/algorithm_test.go:106:6: S1004: should use !bytes.Equal(vec.expected.V1[:], hash[:]) instead (gosimple)
                if bytes.Compare(vec.expected.V1[:], hash[:]) != 0 {
                   ^
desohash/algorithm_test.go:117:6: S1004: should use !bytes.Equal(vec.expected.V0[:], hash[:]) instead (gosimple)
                if bytes.Compare(vec.expected.V0[:], hash[:]) != 0 {
                   ^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant