Commit Graph

3972 Commits

Author SHA1 Message Date
Aleksei Kniazev
0bceb70531 IDEA-CR-49176: select distinct files before optimizing imports (PY-36484)
GitOrigin-RevId: 48b187e19ee36fd274c1670ecc388c661f11f774
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
a4091e6051 IDEA-CR-49176: function inline: remove docstring, keep the first comment, unless it's a type comment(PY-36714, PY-36491)
GitOrigin-RevId: d7de37f5a7b3b62cc6015e2ff3dbdad5cafe3641
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
faf4d0b5cc IDEA-CR-49176: function inline: import elements from function scope with alias if there is a name clash (PY-36642)
GitOrigin-RevId: 992b1d44d248725f31f599d53efdd4e4b854824a
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
f6c70470d6 IDEA-CR-49176: function inline: remove typing overloads together with the function (PY-36465)
GitOrigin-RevId: ef532069cd2d8bb06b35fb7d6ef7be2563b9b76d
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
1b5d272f4e IDEA-CR-49176: function inline: qualifier is not extracted into declaration if the method does not use 'self' (PY-36471)
GitOrigin-RevId: 94a3604d54fd957e9744e7f3f6b632cb7924e4fb
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
ed8952cbf0 IDEA-CR-49176: reference in __all__ removed if target function if removed after inline (PY-36467)
GitOrigin-RevId: 670d6ee44d704c075319af42e3054c7bc9ca7bed
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
8800f4763c IDEA-CR-49176: function inline is disabled for overridden methods (PY-36464)
GitOrigin-RevId: 0f24072270482a4d221a7eab6b3f0d6de19c0e35
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
72e1763f81 IDEA-CR-49176: disallow function inlining for python special methods (PY-36461)
GitOrigin-RevId: e1049aec62e8c8240a555fdf818820e797d5c9a6
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
3749eba8e1 IDEA-CR-49176: inline function is made possible for functions with lambdas (PY-36373)
GitOrigin-RevId: 4f2603447f760d959d31d5033944bae85ad68bf8
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
72e24eef45 IDEA-CR-49176: inline function doesn't copy docstring, but keeps the first-line comment (PY-36469, PY-36491)
GitOrigin-RevId: db1fbb5178892db955678dfcec684a5af7f987c6
2019-07-08 18:05:36 +03:00
Aleksei Kniazev
af8d542c7d IDEA-CR-49176: correctly handle name clashes when inlining function (PY-36497, PY-36485, PY-36486, PY-36502)
- refs that resolve to locally available targets are not renamed
- fixed scope computation for generating new names

GitOrigin-RevId: c2ab0c93c9712f6be3ffcb4e73f72f4771e96997
2019-07-08 18:05:36 +03:00
Mikhail Golubev
65e0985d41 PY-22117 Consider type declarations in Redeclaration inspection
In the same fashion as unused local does, this inspection now ignores such
statements taking into account only actual definitions instead.

GitOrigin-RevId: 26ad71af8b81df37edbd479358f522f36875b099
2019-07-05 15:06:56 +03:00
Mikhail Golubev
4b83b53f77 PY-22204 Properly handle type declarations in unused local inspection
Namely, don't treat them as actual value bindings when collecting definitions
for analysis and while later traversing CFG looking for possible variable
re-assignments.

GitOrigin-RevId: 7a1cdd80e593116bcc2992479787a2c68972e7c8
2019-07-05 15:06:56 +03:00
Semyon Proshev
0227f2747c Sync with typeshed @ 4af283e1aca6fc44a3b0d0b2e8a5d58f1f968cea
GitOrigin-RevId: aea01b944a9596f2af39d2a3532c8a06825f6e05
2019-07-04 21:00:18 +03:00
Andrey Lisin
ae87e93cf9 PY-33328 Don't show false settrace warning for Python 2
GitOrigin-RevId: b7ef9da41da2e70e19e2b8ba07d32fd7d7663025
2019-07-04 15:03:18 +03:00
Semyon Proshev
9094332d2e Fix highlighting classes that use 'Final' classes as metaclasses (PEP 591) (PY-34945)
GitOrigin-RevId: dce7e7f371a46f00b0e6847b417a477842d4e709
2019-07-02 06:52:16 +03:00
Semyon Proshev
77b461420d Fix resolving global variable reassignment
GitOrigin-RevId: 235f566771e9bd83c5b04e47c170501830b5c66a
2019-07-02 06:52:16 +03:00
Semyon Proshev
3cb186667e Raise a warning on inherited Finals reassignment on class level (PEP 591) (PY-34945)
GitOrigin-RevId: 8d06617819ab21c83a053a0c36da5495b503288b
2019-07-02 06:52:16 +03:00
Semyon Proshev
b70415af67 Raise a warning on Finals overriding (PEP 591) (PY-34945)
GitOrigin-RevId: 53c741c0ba2467b0fde342ec7e95bca952651522
2019-07-02 06:52:16 +03:00
Semyon Proshev
b0e57d5d3a Raise a warning on Finals reassignments (PEP 591) (PY-34945)
GitOrigin-RevId: 10729d211a99d3d1542e26752e2e103eb94396dc
2019-07-02 06:52:16 +03:00
Semyon Proshev
eee21530db Update inspection for Final variables without assigned values (PEP 591) (PY-34945)
Raise a warning about explicit type argument only in stubs or on class level
In other scopes raise a warning about necessity to initialize such values

GitOrigin-RevId: 97759220d67b174b54d4ff90186b4109a5256354
2019-07-02 06:52:16 +03:00
Semyon Proshev
b5fe834814 Warn incorrect usages of @overload and @final (PEP 591) (PY-34945)
GitOrigin-RevId: fd9c3acc6b67d9ac1c46512573df3e936c683e29
2019-07-02 06:52:16 +03:00
Semyon Proshev
1b35081553 Warn about overriding methods marked with @final (PEP 591) (PY-34945)
GitOrigin-RevId: 4e2b8f69bb38b5b20946e1e1fd782c68be0a9550
2019-07-02 06:52:16 +03:00
Semyon Proshev
3399546577 Warn about subclassing classes marked with @final (PEP 591) (PY-34945)
GitOrigin-RevId: 40e2faffc4215359c5c18341b512b04da59b318a
2019-07-02 06:52:16 +03:00
Semyon Proshev
0c63a3d7ca Fix type inference for types with Final qualifier (PEP 591) (PY-34945)
GitOrigin-RevId: 1b2b580273df4d6edc0411849183b142392745b8
2019-07-02 06:52:16 +03:00
Aleksei Kniazev
c6e4181228 IDEA-CR-48018: inline function refactoring for python (PY-21287)
- ability to inline single/all invocations and keep/remove the declaration
- handled name conflicts of local and imported vars/functions
- cases when this refactoring is not applicable can be found in PyInlineFunctionHandler

(cherry picked from commit 40e298ba2b833a4408ee774628b84fe422468b91)

GitOrigin-RevId: dd3fab59800163b4f300b410cd28a62c1ee1b6f3
2019-07-02 06:52:16 +03:00
Semyon Proshev
1a24b38ef1 Fix formatting assignment expressions (PEP 572) (PY-33886, PY-35975)
GitOrigin-RevId: 0d5624fbd1ee659421b831980593d9ecf93b39f0
2019-07-02 06:52:16 +03:00
Semyon Proshev
b78c1750d6 Don't exclude assignment expressions in top-level comprehensions from stubbing as they are put to file scope (PEP 572) (PY-33886)
GitOrigin-RevId: cc3466aeec9d4cedb77844584712970e5d43a859
2019-07-02 06:52:16 +03:00
Semyon Proshev
e13675f384 Fix parsing assignment expressions inside f-strings (PEP 572) (PY-33886)
Every expression on top-level inside f-string that could be considered as an assignment expression is actually a format expression.

GitOrigin-RevId: a375543c80d549d5c08166f33b401206ab31f8b8
2019-07-02 06:52:16 +03:00
Semyon Proshev
a86c0b2bbe Fix building CFG for assignment expressions so target is visited after assigned value (PEP 572) (PY-33886)
GitOrigin-RevId: ac57729f8a9188a9fccf12936675c5818969435c
2019-07-02 06:52:16 +03:00
Semyon Proshev
aa1da541de Highlight assignment expressions within a comprehension in a class body as errors (PEP 572) (PY-33886)
GitOrigin-RevId: 1b63427a4c5e4927be07fdc4bcec91bd952e26c7
2019-07-02 06:52:16 +03:00
Semyon Proshev
17dd3b8981 Update scopes processing for assignment expressions (PEP 572) (PY-33886)
From the PEP:
an assignment expression occurring in
a list, set or dict comprehension or in a generator expression
binds the target in the containing scope.

GitOrigin-RevId: 88d701a8da298a9b0bdd8c7ac4d4940a5a22f9db
2019-07-02 06:52:16 +03:00
Semyon Proshev
5012f282b6 Update type inference (and targets) for assignment expressions (PEP 572) (PY-33886)
Expression has the same type as target and the target has the same type as assigned value.

GitOrigin-RevId: 4159d7a5be7080ac858057dd984043a8326292f5
2019-07-02 06:52:16 +03:00
Semyon Proshev
ccc2156cf9 Add parsing for assignment expressions (PEP 572) (PY-33886)
Highlight expressions that are invalid by grammar or unacceptable in runtime
Highlight expressions in pythons < 3.8

GitOrigin-RevId: 89acec9db5b3a931da31c33778185e147240ec01
2019-07-02 06:52:16 +03:00
Lada Gagina
3b991b20ca PY-36009 Add support of '=' for debugging in f-strings
GitOrigin-RevId: 79314512860158a4c535103ee2ac9fee43d30d0d
2019-07-02 06:52:16 +03:00
Mikhail Golubev
ec759879d4 PY-27749 Return tokens composing literal f-string parts in getStringLiteralElements()
instead of the whole STRING_LITERAL_EXPRESSION as it's expected to
return tokens instead of composite AST nodes, and, otherwise, real
expressions embedded inside f-strings get caught as string occurrences.

GitOrigin-RevId: 5625b7c3ba9aac37dc047c6d876df80de0a4ab31
2019-06-16 07:03:10 +03:00
Rustam Vishnyakov
123242c4b2 EditorConfig documentation test
GitOrigin-RevId: fd52ace3d7a32ecd02c2c5ab90e077967604c15e
2019-06-16 04:03:21 +03:00
Egor Zhdan
c1813cfb52 Cleanup: NotNull/Nullable
GitOrigin-RevId: b8e892f32ea84c2115973155dba7127b892cc36e
2019-06-16 04:02:08 +03:00
Eldar Abusalimov
18962d3d42 Merge remote-tracking branch 'origin/master' into eldar/cidr-debugger
# Conflicts:
#	CIDR/cidr-debugger/resources/META-INF/CidrDebuggerPlugin.xml

GitOrigin-RevId: de8e0298bef122544fd1af40c209050903b3d263
2019-06-16 03:02:17 +03:00
Eldar Abusalimov
1120c30a56 Merge remote-tracking branch 'origin/master' into eldar/cidr-debugger
# Conflicts:
#	CIDR/clion/src/com/jetbrains/cidr/cpp/toolchains/MSVC.java

GitOrigin-RevId: f3593b526d1870f32b3f1451cab0c6a653e5beb5
2019-06-16 03:01:38 +03:00
Mikhail Golubev
c83753100d PY-27749 Return tokens composing literal f-string parts in getStringLiteralElements()
instead of the whole STRING_LITERAL_EXPRESSION as it's expected to
return tokens instead of composite AST nodes, and, otherwise, real
expressions embedded inside f-strings get caught as string occurrences.

GitOrigin-RevId: 5625b7c3ba9aac37dc047c6d876df80de0a4ab31
2019-06-13 12:25:29 +03:00
Anna Kozlova
91f7445298 constructor reference: don't ignore constructor parameters during method reference inference (IDEA-185578)
GitOrigin-RevId: e836468e05db28157713e9edd3c70382f8ecdebc
2019-06-13 03:15:49 +03:00
Egor Zhdan
39d2d77155 Cleanup: NotNull/Nullable
GitOrigin-RevId: b8e892f32ea84c2115973155dba7127b892cc36e
2019-06-13 03:14:35 +03:00
Julia Beliaeva
3fee046d20 [vcs-log] cleanup RootCellRenderer
GitOrigin-RevId: bba216626193ac756cd133b8ae9bc4e577abea42
2019-06-10 04:10:14 +03:00
Eldar Abusalimov
dcaeb8f8c7 OC-4061: ApplicationUtil: Make runWithCheckCanceled() return result
GitOrigin-RevId: 3aa9f23cc5097e644eddf82a4faca669759b4760
2019-06-10 04:09:35 +03:00
Semyon Proshev
a2230a6e6b Apply API notes planned for 2019.2
GitOrigin-RevId: 979edb0c2c360b27cbac2cf313fbca182dbfeba0
2019-06-08 15:09:07 +03:00
Andrey Lisin
9cbf73ee18 PyDev fixes: don't stop on SystemExit
GitOrigin-RevId: fec99b4a86d5bd8259d76ce9bc1f9f1307dbd55f
2019-06-07 18:30:05 +03:00
Andrey Lisin
f1132ad7db PyDev fixes: fix broken test
GitOrigin-RevId: 9d3fadcfb0b8fab669b5b91973fc870331a71651
2019-06-07 18:27:31 +03:00
Elizaveta Shashkova
802c604b2c PyDev fixes: add test for multiprocessing.Process
GitOrigin-RevId: 624b03d66a75c45c18d0f977ef15b825ce6e2cb5
2019-06-07 18:07:05 +03:00
Andrey Lisin
cc1120ff58 PY-35915 Fix list comprehension loop variable evaluation
GitOrigin-RevId: cb3a4b7aaf0d6b72c0cc59167554a9801107985e
2019-06-05 13:11:33 +03:00