Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions conformance/results/results.html
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ <h3>Python Type System Conformance Test Results</h3>
</th>
<th class='tc-header'><div class='tc-name'>pycroscope 0.4.0</div>
</th>
<th class='tc-header'><div class='tc-name'>ty 0.0.34</div>
<th class='tc-header'><div class='tc-name'>ty 0.0.35</div>
</th>
</tr>
<tr><th class="column" colspan="7">
Expand Down Expand Up @@ -859,7 +859,7 @@ <h3>Python Type System Conformance Test Results</h3>
<th class="column col2 conformant">Pass</th>
<th class="column col2 conformant">Pass</th>
<th class="column col2 conformant">Pass</th>
<th class="column col2 not-conformant">Unsupported</th>
<th class="column col2 conformant">Pass</th>
</tr>
<tr><th class="column col1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overloads_definitions</th>
<th class="column col2 partially-conformant"><div class="hover-text">Partial<span class="tooltip-text" id="bottom"><p>Allows @override to be on all overloads and implementation, instead of just implementation.</p></span></div></th>
Expand Down
7 changes: 3 additions & 4 deletions conformance/results/ty/overloads_consistency.toml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We pass all tests here, so I think "Pass" is accurate. However, I might add a notes field that points out that we currently only do the check for non-generic functions. (You'll need to regen the HTML file afterwards -- our conformance will be displayed as "Pass*" in the rendered HTML, and the notes message will display as a tooltip when folks hover over the cell.)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect ty isn't alone in that, type checkers are OK with https://github.com/JelleZijlstra/unsoundness/blob/main/examples/overload/generic_overlap.py#L6-L11 after all (we were just talking about that case on pydis).

Copy link
Copy Markdown
Member

@AlexWaygood AlexWaygood May 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right... ty is the only type checker not to complain about this, for example, though:

from typing import overload

@overload
def mixed_generic[T](x: T) -> T: ...
@overload
def mixed_generic(x: int) -> int: ...
def mixed_generic(x: str) -> object:
    return x

Multiplay gist: 10c760796b5da6d1614ec8341c0fc3bc

Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
conformance_automated = "Fail"
conformant = "Unsupported"
conformance_automated = "Pass"
errors_diff = """
Lines 25, 28: Expected error (tag 'return_type')
Lines 41, 44: Expected error (tag 'parameter_type')
"""
output = """
overloads_consistency.py:25:5: error[invalid-overload] Overload return type is not assignable to implementation return type
overloads_consistency.py:41:5: error[invalid-overload] Implementation does not accept all arguments of this overload
"""
2 changes: 1 addition & 1 deletion conformance/results/ty/version.toml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version = "ty 0.0.34"
version = "ty 0.0.35"
37 changes: 19 additions & 18 deletions conformance/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.