Skip to content

Comments

[red-knot] Better diagnostics for method calls#16362

Merged
sharkdp merged 4 commits intomainfrom
david/diagnostics-for-method-calls
Feb 25, 2025
Merged

[red-knot] Better diagnostics for method calls#16362
sharkdp merged 4 commits intomainfrom
david/diagnostics-for-method-calls

Conversation

@sharkdp
Copy link
Contributor

@sharkdp sharkdp commented Feb 25, 2025

Summary

Add better error messages and additional spans for method calls. Can be reviewed commit-by-commit.

before:

image

after:

image

Test Plan

New snapshot test

@sharkdp sharkdp added the ty Multi-file analysis & type inference label Feb 25, 2025
Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

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

Nice

@sharkdp
Copy link
Contributor Author

sharkdp commented Feb 25, 2025

I'm assuming the only thing worth discussing here is whether we really want to call it "bound method" or just "function" in the error message. There are also ways to extend what I started here (e.g. by providing better diagnostics for calls to classes, i.e. their __init__ method), but I'd like to merge this as I have some other pending changes that "depend" on this to work (in the sense that we would otherwise see a regression in diagnostics messages after my semantic changes to some calls).

@sharkdp sharkdp merged commit aac79e4 into main Feb 25, 2025
21 checks passed
@sharkdp sharkdp deleted the david/diagnostics-for-method-calls branch February 25, 2025 08:58
Copy link
Member

@BurntSushi BurntSushi left a comment

Choose a reason for hiding this comment

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

Nice, LGTM!

dcreager added a commit that referenced this pull request Feb 25, 2025
* main: (38 commits)
  [red-knot] Use arena-allocated association lists for narrowing constraints (#16306)
  [red-knot] Rewrite `Type::try_iterate()` to improve type inference and diagnostic messages (#16321)
  Add issue templates (#16213)
  Normalize inconsistent markdown headings in docstrings (#16364)
  [red-knot] Better diagnostics for method calls (#16362)
  [red-knot] Add argfile and windows glob path support (#16353)
  [red-knot] Handle pipe-errors gracefully (#16354)
  Rename `venv-path` to `python` (#16347)
  [red-knot] Fixup some formatting in `infer.rs` (#16348)
  [red-knot] Restrict visibility of more things in `class.rs` (#16346)
  [red-knot] Add diagnostic for class-object access to pure instance variables (#16036)
  Add `per-file-target-version` option (#16257)
  [PLW1507] Mark fix unsafe (#16343)
  [red-knot] Add a test to ensure that `KnownClass::try_from_file_and_name()` is kept up to date (#16326)
  Extract class and instance types (#16337)
  Re-order changelog entries for 0.9.7 (#16344)
  [red-knot] Add support for `@classmethod`s (#16305)
  Update Salsa (#16338)
  Update Salsa part 1 (#16340)
  Upgrade Rust toolchain to 1.85.0 (#16339)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants