Inline Method refactoring is allowed in methods of the descriptor protocol

Ouverte
#742 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 7 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
python
Domaine
tooling

Piste de recherche

The payload gives only the reproduction: Inline Method applied to __get__ in a descriptor class removes the method entirely. Start by reproducing that with the snippet in the Inline Method refactoring's tests, then find where the refactoring decides which methods it may inline. Done means either the descriptor method is left intact or the refactoring warns and declines, and the agreed behaviour is confirmed in the thread first.

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

Description

bug inline-refactor

Steps to reproduce the behavior:

  1. Code before refactoring:
class Descriptor:
    def __get__(self, instance, owner):
        return 40
  1. Apply the Inline Method refactoring to the method __get__.

  2. Expected code after refactoring: the same as the original. It would be nice if Rope could emit a warning that applying the refactoring to this type of class is not allowed.

  3. Rope produces the result below:

class Descriptor:
    pass
Langage dominant
Python
Étoiles
2.2k
Forks
197
Merge moyen
2 j 13 h
PR mergées (30 j)
5

Préparer son environnement

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 python-rope/rope

Toutes les issues de python-rope/rope

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

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