Merge pull request #16007 from mmorel-35/revive/early-return

chore: enable early-return from revive
This commit is contained in:
Björn Rabenstein 2025-02-11 20:31:34 +01:00 committed by GitHub
commit 13c05a385c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 41 additions and 41 deletions

View File

@ -126,6 +126,9 @@ linters-settings:
- allowTypesBefore: "*testing.T,testing.TB" - allowTypesBefore: "*testing.T,testing.TB"
- name: context-keys-type - name: context-keys-type
- name: dot-imports - name: dot-imports
- name: early-return
arguments:
- "preserveScope"
# A lot of false positives: incorrectly identifies channel draining as "empty code block". # A lot of false positives: incorrectly identifies channel draining as "empty code block".
# See https://github.com/mgechev/revive/issues/386 # See https://github.com/mgechev/revive/issues/386
- name: empty-block - name: empty-block
@ -137,6 +140,8 @@ linters-settings:
- name: exported - name: exported
- name: increment-decrement - name: increment-decrement
- name: indent-error-flow - name: indent-error-flow
arguments:
- "preserveScope"
- name: package-comments - name: package-comments
# TODO(beorn7): Currently, we have a lot of missing package doc comments. Maybe we should have them. # TODO(beorn7): Currently, we have a lot of missing package doc comments. Maybe we should have them.
disabled: true disabled: true
@ -144,6 +149,8 @@ linters-settings:
- name: receiver-naming - name: receiver-naming
- name: redefines-builtin-id - name: redefines-builtin-id
- name: superfluous-else - name: superfluous-else
arguments:
- "preserveScope"
- name: time-naming - name: time-naming
- name: unexported-return - name: unexported-return
- name: unreachable-code - name: unreachable-code

View File

@ -458,11 +458,10 @@ func (d *Discovery) vmToLabelSet(ctx context.Context, client client, vm virtualM
networkInterface, err = client.getVMScaleSetVMNetworkInterfaceByID(ctx, nicID, vm.ScaleSet, vm.InstanceID) networkInterface, err = client.getVMScaleSetVMNetworkInterfaceByID(ctx, nicID, vm.ScaleSet, vm.InstanceID)
} }
if err != nil { if err != nil {
if errors.Is(err, errorNotFound) { if !errors.Is(err, errorNotFound) {
d.logger.Warn("Network interface does not exist", "name", nicID, "err", err)
} else {
return nil, err return nil, err
} }
d.logger.Warn("Network interface does not exist", "name", nicID, "err", err)
// Get out of this routine because we cannot continue without a network interface. // Get out of this routine because we cannot continue without a network interface.
return nil, nil return nil, nil
} }

View File

@ -194,13 +194,12 @@ func (d *Discovery) refresh(ctx context.Context) ([]*targetgroup.Group, error) {
events, err := d.client.ListEvents(ctx, &eventsOpts) events, err := d.client.ListEvents(ctx, &eventsOpts)
if err != nil { if err != nil {
var e *linodego.Error var e *linodego.Error
if errors.As(err, &e) && e.Code == http.StatusUnauthorized { if !(errors.As(err, &e) && e.Code == http.StatusUnauthorized) {
// If we get a 401, the token doesn't have `events:read_only` scope.
// Disable event polling and fallback to doing a full refresh every interval.
d.eventPollingEnabled = false
} else {
return nil, err return nil, err
} }
// If we get a 401, the token doesn't have `events:read_only` scope.
// Disable event polling and fallback to doing a full refresh every interval.
d.eventPollingEnabled = false
} else { } else {
// Event polling tells us changes the Linode API is aware of. Actions issued outside of the Linode API, // Event polling tells us changes the Linode API is aware of. Actions issued outside of the Linode API,
// such as issuing a `shutdown` at the VM's console instead of using the API to power off an instance, // such as issuing a `shutdown` at the VM's console instead of using the API to power off an instance,

View File

@ -101,12 +101,12 @@ func NewManager(ctx context.Context, logger *slog.Logger, registerer prometheus.
// Register the metrics. // Register the metrics.
// We have to do this after setting all options, so that the name of the Manager is set. // We have to do this after setting all options, so that the name of the Manager is set.
if metrics, err := NewManagerMetrics(registerer, mgr.name); err == nil { metrics, err := NewManagerMetrics(registerer, mgr.name)
mgr.metrics = metrics if err != nil {
} else {
logger.Error("Failed to create discovery manager metrics", "manager", mgr.name, "err", err) logger.Error("Failed to create discovery manager metrics", "manager", mgr.name, "err", err)
return nil return nil
} }
mgr.metrics = metrics
return mgr return mgr
} }

View File

@ -237,17 +237,16 @@ func (d *DockerDiscovery) refresh(ctx context.Context) ([]*targetgroup.Group, er
if len(networks) == 0 { if len(networks) == 0 {
// Try to lookup shared networks // Try to lookup shared networks
for { for {
if containerNetworkMode.IsContainer() { if !containerNetworkMode.IsContainer() {
tmpContainer, exists := allContainers[containerNetworkMode.ConnectedContainer()] break
if !exists { }
break tmpContainer, exists := allContainers[containerNetworkMode.ConnectedContainer()]
} if !exists {
networks = tmpContainer.NetworkSettings.Networks break
containerNetworkMode = container.NetworkMode(tmpContainer.HostConfig.NetworkMode) }
if len(networks) > 0 { networks = tmpContainer.NetworkSettings.Networks
break containerNetworkMode = container.NetworkMode(tmpContainer.HostConfig.NetworkMode)
} if len(networks) > 0 {
} else {
break break
} }
} }

View File

@ -288,11 +288,11 @@ func valuesToSamples(timestamp time.Time, value interface{}) (prompb.Sample, err
var valueInt64 int64 var valueInt64 int64
var ok bool var ok bool
if valueFloat64, ok = value.(float64); !ok { if valueFloat64, ok = value.(float64); !ok {
if valueInt64, ok = value.(int64); ok { valueInt64, ok = value.(int64)
valueFloat64 = float64(valueInt64) if !ok {
} else {
return prompb.Sample{}, fmt.Errorf("unable to convert sample value to float64: %v", value) return prompb.Sample{}, fmt.Errorf("unable to convert sample value to float64: %v", value)
} }
valueFloat64 = float64(valueInt64)
} }
return prompb.Sample{ return prompb.Sample{

View File

@ -3553,11 +3553,11 @@ func formatDate(t time.Time) string {
// unwrapParenExpr does the AST equivalent of removing parentheses around a expression. // unwrapParenExpr does the AST equivalent of removing parentheses around a expression.
func unwrapParenExpr(e *parser.Expr) { func unwrapParenExpr(e *parser.Expr) {
for { for {
if p, ok := (*e).(*parser.ParenExpr); ok { p, ok := (*e).(*parser.ParenExpr)
*e = p.Expr if !ok {
} else {
break break
} }
*e = p.Expr
} }
} }

View File

@ -349,11 +349,10 @@ func (tokenProvider *tokenProvider) getToken(ctx context.Context) error {
func (tokenProvider *tokenProvider) updateRefreshTime(accessToken azcore.AccessToken) error { func (tokenProvider *tokenProvider) updateRefreshTime(accessToken azcore.AccessToken) error {
tokenExpiryTimestamp := accessToken.ExpiresOn.UTC() tokenExpiryTimestamp := accessToken.ExpiresOn.UTC()
deltaExpirytime := time.Now().Add(time.Until(tokenExpiryTimestamp) / 2) deltaExpirytime := time.Now().Add(time.Until(tokenExpiryTimestamp) / 2)
if deltaExpirytime.After(time.Now().UTC()) { if !deltaExpirytime.After(time.Now().UTC()) {
tokenProvider.refreshTime = deltaExpirytime
} else {
return errors.New("access token expiry is less than the current time") return errors.New("access token expiry is less than the current time")
} }
tokenProvider.refreshTime = deltaExpirytime
return nil return nil
} }

View File

@ -1026,12 +1026,11 @@ func (a *appender) AppendHistogramCTZeroSample(ref storage.SeriesRef, l labels.L
return 0, storage.ErrOutOfOrderCT return 0, storage.ErrOutOfOrderCT
} }
if ct > series.lastTs { if ct <= series.lastTs {
series.lastTs = ct
} else {
// discard the sample if it's out of order. // discard the sample if it's out of order.
return 0, storage.ErrOutOfOrderCT return 0, storage.ErrOutOfOrderCT
} }
series.lastTs = ct
switch { switch {
case h != nil: case h != nil:
@ -1091,12 +1090,11 @@ func (a *appender) AppendCTZeroSample(ref storage.SeriesRef, l labels.Labels, t,
return 0, storage.ErrOutOfOrderSample return 0, storage.ErrOutOfOrderSample
} }
if ct > series.lastTs { if ct <= series.lastTs {
series.lastTs = ct
} else {
// discard the sample if it's out of order. // discard the sample if it's out of order.
return 0, storage.ErrOutOfOrderCT return 0, storage.ErrOutOfOrderCT
} }
series.lastTs = ct
// NOTE: always modify pendingSamples and sampleSeries together. // NOTE: always modify pendingSamples and sampleSeries together.
a.pendingSamples = append(a.pendingSamples, record.RefSample{ a.pendingSamples = append(a.pendingSamples, record.RefSample{

View File

@ -275,12 +275,11 @@ func (txr *txRing) cleanupAppendIDsBelow(bound uint64) {
pos := int(txr.txIDFirst) pos := int(txr.txIDFirst)
for txr.txIDCount > 0 { for txr.txIDCount > 0 {
if txr.txIDs[pos] < bound { if txr.txIDs[pos] >= bound {
txr.txIDFirst++
txr.txIDCount--
} else {
break break
} }
txr.txIDFirst++
txr.txIDCount--
pos++ pos++
if pos == len(txr.txIDs) { if pos == len(txr.txIDs) {