ruff/crates
Carl Meyer 3f9ee31efb
[red-knot] use reachable definitions in infer_expression_type (#11670)
## Summary

Switch name resolution in `infer_expression_type` from resolving the
public type of a symbol, to resolving the reachable definitions of that
symbol from the reference point, using the flow graph.

This surfaced a bug in the flow graph implementation and a bug in symbol
table building, both of which are also fixed here.

The bug in flow graph implementation was that when we pushed and popped
scopes, we didn't maintain a stack of "current flow nodes" in all
stacked scopes, to be restored when we returned to that scope. Now we
do.

The bug in symbol table building that we didn't visit the parts of
functions and class definitions in the correct scopes. E.g. decorators
should be visited in the outer scope, arguments should be visited inside
the type-params scope (if any) but not inside the function body scope,
and only the body itself should actually be visited inside the body
scope. Fixing this requires that we no longer use `walk_stmt` here,
instead we have to visit each individual component.

## Test Plan

Added test.
2024-06-03 17:45:31 -06:00
..
red_knot [red-knot] use reachable definitions in infer_expression_type (#11670) 2024-06-03 17:45:31 -06:00
ruff Add RDJson support. (#11682) 2024-06-02 17:59:57 +00:00
ruff_benchmark Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_cache Move sub-crates to workspace dependencies (#11407) 2024-05-13 14:37:50 +00:00
ruff_dev Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_diagnostics Move sub-crates to workspace dependencies (#11407) 2024-05-13 14:37:50 +00:00
ruff_formatter Remove some unused pub functions (#11576) 2024-05-28 09:56:51 -04:00
ruff_index Move sub-crates to workspace dependencies (#11407) 2024-05-13 14:37:50 +00:00
ruff_linter Use string expression for parsing type annotation (#11717) 2024-06-03 13:04:03 +00:00
ruff_macros Move sub-crates to workspace dependencies (#11407) 2024-05-13 14:37:50 +00:00
ruff_notebook ruff server: Support Jupyter Notebook (*.ipynb) files (#11206) 2024-05-21 22:29:30 +00:00
ruff_python_ast Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_python_ast_integration_tests Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_python_codegen Isolate non-breaking whitespace indentation test case (#11721) 2024-06-03 13:20:55 +00:00
ruff_python_formatter Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_python_index Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_python_literal Remove some unused pub functions (#11576) 2024-05-28 09:56:51 -04:00
ruff_python_parser Remove less used parser dependencies (#11718) 2024-06-03 13:08:24 +00:00
ruff_python_resolver chore(deps): update rust crate insta to v1.38.0 (#10701) 2024-04-01 15:44:30 +00:00
ruff_python_semantic Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_python_stdlib Regenerate sys.rs with stdlibs==2024.5.15 (#11437) 2024-05-15 22:17:32 +00:00
ruff_python_trivia Move has_comments to CommentRanges (#11495) 2024-05-22 13:35:16 +00:00
ruff_python_trivia_integration_tests Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_server Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_source_file Move sub-crates to workspace dependencies (#11407) 2024-05-13 14:37:50 +00:00
ruff_text_size Range formatting: Fix invalid syntax after parenthesizing expression (#9751) 2024-02-02 17:56:25 +01:00
ruff_wasm Maintain synchronicity between the lexer and the parser (#11457) 2024-06-03 18:23:50 +05:30
ruff_workspace Respect file exclusions in ruff server (#11590) 2024-05-29 02:58:36 +00:00