mypy icon indicating copy to clipboard operation
mypy copied to clipboard

[mypyc] support of `@final` types

Open sobolevn opened this issue 5 years ago • 1 comments

Bug Report

I am trying to compile a module with @final types. This does not seem possible at the moment with mypyc.

Actual source: https://github.com/dry-python/returns/blob/master/returns/result.py#L312

To Reproduce

from typing_extensions import final


class Base(object):
    """Can be sub-classed."""


@final
class Child(Base):
    """Final instance."""

When mypyc is used on top of this code, this happens:

» mypyc ex.py
ex.py:9: error: Non-extension classes may not inherit from extension classes

As I understand, mypyc treats @final as a regular decorator and then makes Child a non-exntesion class. And this does not seem correct to me.

Expected Behavior

I would expect this code to compile without any warnings. And @final should be treated the same way mypy does with regular python code.

  • Mypy version used: 0.790

sobolevn avatar Oct 18 '20 22:10 sobolevn

still happening in 1.0.9 even I think it would be benefical for codegen to apply optimization

jairov4 avatar Apr 21 '24 15:04 jairov4