Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Lint/NoReturnInMemoization flags `return` in local variable `||=` and `&&=` assignments

Ouverte Adaptée aux débutants
#815 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

@RaphaelFakhri y travaille déjà.

Depuis le 22/10/2026.

  • #816 par @RaphaelFakhri — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
84/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
ruby
Domaine
tooling

Piste de recherche

L’issue identifie on_or_asgn et son alias on_and_asgn comme les points d’entrée concernés, et mentionne les tests d’affectation associés. Lis l’implémentation du cop et ces tests, puis ajoute des tests pour les variables locales auxquelles sont affectés ||= et &&=. Lance les tests ciblés du cop ; le travail est terminé lorsque ces cas ne produisent aucune infraction et que le comportement existant pour les variables d’instance passe toujours.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Lint/NoReturnInMemoization reports an offense for a return inside a begin..end block assigned to a local variable with ||= or &&=:

# frozen_string_literal: true

def foo
  x ||= begin
    return 1 if bar
    2
  end
  x
end
$ bundle exec rubocop --only Lint/NoReturnInMemoization sample.rb
sample.rb:5:5: W: Lint/NoReturnInMemoization: Do not return in begin..end blocks in instance variable assignment contexts.

Expected behavior

No offense. The cop description and message cover instance variable assignment, and the cop already ignores the same code with x = begin ... end or x += begin ... end (see the test_returns_in_regular_assignment_are_not_offenses and test_returns_in_operation_assignment_for_instance_variable_are_not_offenses tests). A local variable goes out of scope when the method returns, so no memoized value is lost.

Cause

on_op_asgn returns early unless the target is an instance variable, but on_or_asgn (also aliased as on_and_asgn) checks every target.

Version: rubocop-shopify main (3.1.0), rubocop 1.92.0.

Langage dominant
Ruby
Étoiles
638
Forks
50
Merge moyen
7 h 26 min
PR mergées (30 j)
3

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Shopify/ruby-style-guide

Toutes les issues de Shopify/ruby-style-guide

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.