Skip to content

error "does not return a value" where method really should not return a value #6549

@kurtgn

Description

@kurtgn

An example:


from typing import Optional

class A:
    def optional_return_1(self) -> Optional[str]:
        return self.none_1() or self.none_2()

    def none_1(self) -> None:
        return None

    def none_2(self) -> None:
        return

gets me:

mp.py:7: error: "none_1" of "A" does not return a value
mp.py:7: error: "none_2" of "A" does not return a value

Funny thing is, when I change Optional to None - everything works fine.

Is this a bug or this should be typed somehow differently?

(mypy version 0.670)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions