Files
openide/python/testData/codeInsight/controlflow/IfElifFalse.txt
Aleksandr.Govenko 4dd41ee9f5 PY-20611 Missing warning about functions implicitly returning None when return type is not Optional
Updated PyFunction to account for implicit 'return None' statements when inferring return statement types.

It affected return type inference of PyFunction.

Fixed a failing test related to formatted strings.

Added a quick fix to make all return statements explicit.

Updated the CFG to include PyPassStatements, enabling detection of exit points in empty functions.

Simplified PyMakeFunctionReturnTypeQuickFix to independently infer function types and handle required imports. Currently, it does not support specifying custom suggested types.



Merge-request: IJ-MR-148719
Merged-by: Aleksandr Govenko <aleksandr.govenko@jetbrains.com>

(cherry picked from commit 9f58961f9eb70e4f9dbba7359f5aafdfd392b7e2)

IJ-MR-148719

GitOrigin-RevId: 68ef5c4a1cc0fcaffd750cc0713250a106136643
2024-12-17 18:16:40 +00:00

26 lines
887 B
Plaintext

0(1) element: null
1(2) element: PyIfStatement
2(3,6) READ ACCESS: c
3(4) element: PyStatementList. Condition: c:true
4(5) ASSERTTYPE ACCESS: c
5(12) element: PyPassStatement
6(7) element: PyIfPartElif. Condition: c:false
7(12) READ ACCESS: False
8(9) element: PyStatementList. Condition: False:true
9(10) ASSERTTYPE ACCESS: False
10(11) element: PyAssignmentStatement
11(12) WRITE ACCESS: a
12(13) element: PyIfStatement
13(14,17) READ ACCESS: d
14(15) element: PyStatementList. Condition: d:true
15(16) ASSERTTYPE ACCESS: d
16(25) element: PyPassStatement
17(18) element: PyIfPartElif. Condition: d:false
18(23) READ ACCESS: False
19(20) element: PyStatementList. Condition: False:true
20(21) ASSERTTYPE ACCESS: False
21(22) element: PyAssignmentStatement
22(25) WRITE ACCESS: b
23(24) element: PyStatementList. Condition: False:false
24(25) element: PyPassStatement
25() element: null