Skip to content

Conversation

@AlexWaygood
Copy link
Member

Summary

If we're not able to resolve an import, we attach subdiagnostics to the error saying which search paths we looked for the import in, and linking to our settings page. However, we currently only attach these subdiagnostics if level == 0 -- i.e., if it was an absolute import that was unresolved. This doesn't make much sense; if anything, relative imports are more sensitive to the details of exactly which search paths the user has or hasn't got configured. It looks to me like this is just an accident; this PR changes things so that we attach the subdiagnostic to all unresolved-import diagnostics, not just absolute ones.

The diff here is easiest to review with GitHub's "hide whitespace changes" feature enabled 😄

Test Plan

Snapshot updated

@AlexWaygood AlexWaygood added ty Multi-file analysis & type inference diagnostics Related to reporting of diagnostics. labels Nov 21, 2025
@astral-sh-bot
Copy link

astral-sh-bot bot commented Nov 21, 2025

Diagnostic diff on typing conformance tests

No changes detected when running ty on typing conformance tests ✅

@zsol
Copy link
Member

zsol commented Nov 21, 2025

The diff here is easiest to review with GitHub's "hide whitespace changes" feature enabled 😄

Lies! 😆

@astral-sh-bot
Copy link

astral-sh-bot bot commented Nov 21, 2025

mypy_primer results

No ecosystem changes detected ✅

No memory usage changes detected ✅

@AlexWaygood AlexWaygood force-pushed the alex/import-diagnostic-hints branch from cbde2f4 to a4df857 Compare November 21, 2025 12:35
@AlexWaygood AlexWaygood enabled auto-merge (squash) November 21, 2025 12:36
@AlexWaygood AlexWaygood merged commit 6178822 into main Nov 21, 2025
40 checks passed
@AlexWaygood AlexWaygood deleted the alex/import-diagnostic-hints branch November 21, 2025 12:40
dcreager added a commit that referenced this pull request Nov 24, 2025
…d-typevar

* origin/main: (24 commits)
  [ty] Remove brittle constraint set reveal tests (#21568)
  [`ruff`] Catch more dummy variable uses (`RUF052`) (#19799)
  [ty] Use the same snapshot handling as other tests (#21564)
  [ty] suppress autocomplete suggestions during variable binding (#21549)
  Set severity for non-rule diagnostics (#21559)
  [ty] Add `with_type` convenience to display code (#21563)
  [ty] Implement docstring rendering to markdown (#21550)
  [ty] Reduce indentation of `TypeInferenceBuilder::infer_attribute_load` (#21560)
  Bump 0.14.6 (#21558)
  [ty] Improve debug messages when imports fail (#21555)
  [ty] Add support for relative import completions
  [ty] Refactor detection of import statements for completions
  [ty] Use dedicated collector for completions
  [ty] Attach subdiagnostics to `unresolved-import` errors for relative imports as well as absolute imports (#21554)
  [ty] support PEP 613 type aliases (#21394)
  [ty] More low-hanging fruit for inlay hint goto-definition (#21548)
  [ty] implement `TypedDict` structural assignment (#21467)
  [ty] Add more random TypeDetails and tests (#21546)
  [ty] Add goto for `Unknown` when it appears in an inlay hint (#21545)
  [ty] Add type definitions for `Type::SpecialForm`s (#21544)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

diagnostics Related to reporting of diagnostics. ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants