diff --git a/conformance/results/mypy/qualifiers_final_decorator.toml b/conformance/results/mypy/qualifiers_final_decorator.toml index e25fa2c8a..471bfded3 100644 --- a/conformance/results/mypy/qualifiers_final_decorator.toml +++ b/conformance/results/mypy/qualifiers_final_decorator.toml @@ -1,20 +1,21 @@ conformant = "Pass" output = """ qualifiers_final_decorator.py:21: error: Cannot inherit from final class "Base1" [misc] -qualifiers_final_decorator.py:56: error: Cannot override final attribute "method1" (previously declared in base class "Base2") [misc] -qualifiers_final_decorator.py:59: error: Cannot override final attribute "method2" (previously declared in base class "Base2") [misc] -qualifiers_final_decorator.py:63: error: Cannot override final attribute "method3" (previously declared in base class "Base2") [misc] -qualifiers_final_decorator.py:67: error: Cannot override final attribute "method4" (previously declared in base class "Base2") [misc] -qualifiers_final_decorator.py:80: error: Cannot override final attribute "method" (previously declared in base class "Base3") [misc] -qualifiers_final_decorator.py:84: error: @final should be applied only to overload implementation [misc] -qualifiers_final_decorator.py:94: error: Cannot override final attribute "method" (previously declared in base class "Base4") [misc] -qualifiers_final_decorator.py:118: error: Cannot override final attribute "method" (previously declared in base class "Base5_2") [misc] -qualifiers_final_decorator.py:118: error: Signature of "method" incompatible with supertype "Base5_2" [override] -qualifiers_final_decorator.py:118: note: Superclass: -qualifiers_final_decorator.py:118: note: def method(self, v: int) -> None -qualifiers_final_decorator.py:118: note: Subclass: -qualifiers_final_decorator.py:118: note: def method(self) -> None -qualifiers_final_decorator.py:125: error: @final cannot be used with non-method functions [misc] +qualifiers_final_decorator.py:63: error: Cannot override final attribute "method1" (previously declared in base class "Base2") [misc] +qualifiers_final_decorator.py:66: error: Cannot override final attribute "method2" (previously declared in base class "Base2") [misc] +qualifiers_final_decorator.py:70: error: Cannot override final attribute "method3" (previously declared in base class "Base2") [misc] +qualifiers_final_decorator.py:74: error: Cannot override final attribute "method4" (previously declared in base class "Base2") [misc] +qualifiers_final_decorator.py:85: error: Cannot override final attribute "method5" (previously declared in base class "Base2") [misc] +qualifiers_final_decorator.py:91: error: Cannot override final attribute "method" (previously declared in base class "Base3") [misc] +qualifiers_final_decorator.py:95: error: @final should be applied only to overload implementation [misc] +qualifiers_final_decorator.py:105: error: Cannot override final attribute "method" (previously declared in base class "Base4") [misc] +qualifiers_final_decorator.py:129: error: Cannot override final attribute "method" (previously declared in base class "Base5_2") [misc] +qualifiers_final_decorator.py:129: error: Signature of "method" incompatible with supertype "Base5_2" [override] +qualifiers_final_decorator.py:129: note: Superclass: +qualifiers_final_decorator.py:129: note: def method(self, v: int) -> None +qualifiers_final_decorator.py:129: note: Subclass: +qualifiers_final_decorator.py:129: note: def method(self) -> None +qualifiers_final_decorator.py:136: error: @final cannot be used with non-method functions [misc] """ conformance_automated = "Pass" errors_diff = """ diff --git a/conformance/results/pycroscope/qualifiers_final_decorator.toml b/conformance/results/pycroscope/qualifiers_final_decorator.toml index fc2652a74..6046c7160 100644 --- a/conformance/results/pycroscope/qualifiers_final_decorator.toml +++ b/conformance/results/pycroscope/qualifiers_final_decorator.toml @@ -1,15 +1,22 @@ -conformance_automated = "Pass" +conformant = "Partial" +notes = """ +Reports an internal traceback for a valid `@final` property declaration. +""" +conformance_automated = "Fail" errors_diff = """ +Line 58: Unexpected errors ['./qualifiers_final_decorator.py:58:4: Traceback (most recent call last):'] """ output = """ ./qualifiers_final_decorator.py:21:15: Cannot inherit from final class [invalid_base] -./qualifiers_final_decorator.py:56:4: Cannot override final attribute method1 [incompatible_override] -./qualifiers_final_decorator.py:60:4: Cannot override final attribute method2 [incompatible_override] -./qualifiers_final_decorator.py:64:4: Cannot override final attribute method3 [incompatible_override] -./qualifiers_final_decorator.py:75:4: Cannot override final attribute method4 [incompatible_override] -./qualifiers_final_decorator.py:86:4: @final should be applied only to the overload implementation [invalid_final] -./qualifiers_final_decorator.py:89:4: Cannot override final attribute method [incompatible_override] -./qualifiers_final_decorator.py:102:4: Cannot override final attribute method [incompatible_override] -./qualifiers_final_decorator.py:118:4: Cannot override final attribute method [incompatible_override] -./qualifiers_final_decorator.py:126:0: @final is not allowed on non-method functions [invalid_final] +./qualifiers_final_decorator.py:58:4: Traceback (most recent call last): +./qualifiers_final_decorator.py:63:4: Cannot override final attribute method1 [incompatible_override] +./qualifiers_final_decorator.py:67:4: Cannot override final attribute method2 [incompatible_override] +./qualifiers_final_decorator.py:71:4: Cannot override final attribute method3 [incompatible_override] +./qualifiers_final_decorator.py:82:4: Cannot override final attribute method4 [incompatible_override] +./qualifiers_final_decorator.py:86:4: Cannot override final attribute method5 [incompatible_override] +./qualifiers_final_decorator.py:97:4: @final should be applied only to the overload implementation [invalid_final] +./qualifiers_final_decorator.py:100:4: Cannot override final attribute method [incompatible_override] +./qualifiers_final_decorator.py:113:4: Cannot override final attribute method [incompatible_override] +./qualifiers_final_decorator.py:129:4: Cannot override final attribute method [incompatible_override] +./qualifiers_final_decorator.py:137:0: @final is not allowed on non-method functions [invalid_final] """ diff --git a/conformance/results/pyrefly/qualifiers_final_decorator.toml b/conformance/results/pyrefly/qualifiers_final_decorator.toml index 381d74150..e5990f677 100644 --- a/conformance/results/pyrefly/qualifiers_final_decorator.toml +++ b/conformance/results/pyrefly/qualifiers_final_decorator.toml @@ -4,13 +4,14 @@ errors_diff = """ """ output = """ ERROR qualifiers_final_decorator.py:21:16-21: Cannot extend final class `Base1` [invalid-inheritance] -ERROR qualifiers_final_decorator.py:56:9-16: `method1` is declared as final in parent class `Base2` [bad-override] -ERROR qualifiers_final_decorator.py:60:9-16: `method2` is declared as final in parent class `Base2` [bad-override] -ERROR qualifiers_final_decorator.py:64:9-16: `method3` is declared as final in parent class `Base2` [bad-override] -ERROR qualifiers_final_decorator.py:68:9-16: `method4` is declared as final in parent class `Base2` [bad-override] -ERROR qualifiers_final_decorator.py:81:9-15: `method` is declared as final in parent class `Base3` [bad-override] -ERROR qualifiers_final_decorator.py:86:9-15: `@final` should only be applied to the implementation of an overloaded function. [invalid-overload] -ERROR qualifiers_final_decorator.py:95:9-15: `method` is declared as final in parent class `Base4` [bad-override] -ERROR qualifiers_final_decorator.py:118:9-15: `method` is declared as final in parent class `Base5_2` [bad-override] - WARN qualifiers_final_decorator.py:125:1-7: Decorator `@final` can only be used on methods. [invalid-decorator] +ERROR qualifiers_final_decorator.py:63:9-16: `method1` is declared as final in parent class `Base2` [bad-override] +ERROR qualifiers_final_decorator.py:67:9-16: `method2` is declared as final in parent class `Base2` [bad-override] +ERROR qualifiers_final_decorator.py:71:9-16: `method3` is declared as final in parent class `Base2` [bad-override] +ERROR qualifiers_final_decorator.py:75:9-16: `method4` is declared as final in parent class `Base2` [bad-override] +ERROR qualifiers_final_decorator.py:86:9-16: `method5` is declared as final in parent class `Base2` [bad-override] +ERROR qualifiers_final_decorator.py:92:9-15: `method` is declared as final in parent class `Base3` [bad-override] +ERROR qualifiers_final_decorator.py:97:9-15: `@final` should only be applied to the implementation of an overloaded function. [invalid-overload] +ERROR qualifiers_final_decorator.py:106:9-15: `method` is declared as final in parent class `Base4` [bad-override] +ERROR qualifiers_final_decorator.py:129:9-15: `method` is declared as final in parent class `Base5_2` [bad-override] + WARN qualifiers_final_decorator.py:136:1-7: Decorator `@final` can only be used on methods. [invalid-decorator] """ diff --git a/conformance/results/pyright/qualifiers_final_decorator.toml b/conformance/results/pyright/qualifiers_final_decorator.toml index 94448af44..105a5d056 100644 --- a/conformance/results/pyright/qualifiers_final_decorator.toml +++ b/conformance/results/pyright/qualifiers_final_decorator.toml @@ -1,18 +1,19 @@ conformant = "Pass" output = """ qualifiers_final_decorator.py:21:16 - error: Base class "Base1" is marked final and cannot be subclassed (reportGeneralTypeIssues) -qualifiers_final_decorator.py:56:9 - error: Method "method1" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:60:9 - error: Method "method2" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:64:9 - error: Method "method3" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:75:9 - error: Method "method4" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:86:9 - error: @final decorator should be applied only to the implementation (reportInconsistentOverload) -qualifiers_final_decorator.py:89:9 - error: Method "method" cannot override final method defined in class "Base3" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:102:9 - error: Method "method" cannot override final method defined in class "Base4" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:118:9 - error: Method "method" cannot override final method defined in class "Base5_2" (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:118:9 - error: Method "method" overrides class "Base5_2" in an incompatible manner +qualifiers_final_decorator.py:63:9 - error: Method "method1" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:67:9 - error: Method "method2" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:71:9 - error: Method "method3" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:82:9 - error: Method "method4" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:86:9 - error: Method "method5" cannot override final method defined in class "Base2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:97:9 - error: @final decorator should be applied only to the implementation (reportInconsistentOverload) +qualifiers_final_decorator.py:100:9 - error: Method "method" cannot override final method defined in class "Base3" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:113:9 - error: Method "method" cannot override final method defined in class "Base4" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:129:9 - error: Method "method" cannot override final method defined in class "Base5_2" (reportIncompatibleMethodOverride) +qualifiers_final_decorator.py:129:9 - error: Method "method" overrides class "Base5_2" in an incompatible manner Positional parameter count mismatch; base method has 2, but override has 1 Parameter 2 mismatch: base parameter "v" is keyword parameter, override parameter is position-only (reportIncompatibleMethodOverride) -qualifiers_final_decorator.py:126:5 - error: Function "func1" cannot be marked @final because it is not a method (reportGeneralTypeIssues) +qualifiers_final_decorator.py:137:5 - error: Function "func1" cannot be marked @final because it is not a method (reportGeneralTypeIssues) """ conformance_automated = "Pass" errors_diff = """ diff --git a/conformance/results/results.html b/conformance/results/results.html index 2c57ab565..cb5e030ed 100644 --- a/conformance/results/results.html +++ b/conformance/results/results.html @@ -976,7 +976,12 @@
@final property declaration.