Почему PyDev 7.5 ошибочно обнаруживает дублирующиеся подписи с помощью typing.overload? - PullRequest
0 голосов
/ 28 апреля 2020

Вот краткий код, записанный в Python 3.7

from typing import overload, Tuple

class Cursor:
    # (let's forget about the contructor)

    @overload
    def move(self, dx: Tuple[int, int]) -> None:
        ...
    def move(self, dx:int, dy: int = None) -> None:
        # here comes the code that modifies the x and y coordinates
        # of the cursor according to the type of argument dx

В eclipse 2020-03, используя PyDev 7.5, второе определение move() помечается как ошибка дублированной подписи. Между тем, при реализации код работает правильно, без ошибок / предупреждений, обнаруженных интерпретатором Python 3.7.

При посещении репозитория PyDev GitHub, кажется, реализована и протестирована программа проверки дублирования. Например, см. DuplicationChecker. java (https://github.com/fabioz/Pydev/blob/master/plugins/com.python.pydev.analysis/src/com/python/pydev/analysis/visitors/DuplicationChecker.java) и функцию testNoDuplicateOnTypingOverride() в конце https://github.com/fabioz/Pydev/blob/master/plugins/org.python.pydev/tests_analysis/com/python/pydev/analysis/OccurrencesAnalyzerPy36Test.java.

Но любая добавленная подпись после Первая перегруженная печать по-прежнему обнаруживается PyDev как дублирующая подпись.

-> Есть ли способ избавиться от этих ошибочных «меток ошибок» в затмении?

...