Tagir Valeev
aa6829d7c1
[java-tests] IDEA-333831 Separate mock JDK and JetBrains annotations for testing
...
Also: avoid manual mocking of Java 10 classes in StreamCollector10Inlining test, use mockJDK11 instead
Also: rewrite SliceTestCase and its inheritors to LightJavaCodeInsightFixtureTestCase, as annotations.jar is not included into project created by DaemonAnalyzerTestCase
Also: 'mutates' attribute of @Contract annotation is resolvable now, as we can use newer jetbrains-annotations library.
Also: documentation tests now don't generate links to JetBrains annotations, which corresponds to the actual behavior in production
GitOrigin-RevId: e460826893c1277cb2b78b18aae9d5aca97d8333
2023-10-05 11:24:29 +00:00
Vladimir Krivosheev
50249d22c1
IJPL-238 fix BytecodeAnalysisResultsHighlightingTest
...
GitOrigin-RevId: 89b3726e70b73061b2b3abd6e9818a046b3e6209
2023-09-15 20:50:23 +00:00
Nikolay Chashnikov
91d3e0a72b
cleanup: remove redundant '@author' tags from javadoc comments - 26
...
Now we have Code Vision hints which determine the author via Git history and show it in the editor automatically, and this information is more accurate than the tags which were automatically added when files were created.
GitOrigin-RevId: 535941a4b79bc36c173a27f3e505b43ffc85edc1
2023-01-18 17:02:50 +00:00
Tagir Valeev
6ffb7e417e
[java-dfa] Extract "Constant conditions" into separate "Constant values" inspection (IDEA-58235)
...
GitOrigin-RevId: 95a81fcd1546afec31afc2a044a9ba5fa1337411
2022-09-08 21:30:59 +00:00
Tagir Valeev
231c892de2
[java-analysis] Test for IDEA-266180
...
GitOrigin-RevId: bf9e92df66a2b0abf56230cefa04887abc847b22
2021-04-23 08:39:03 +03:00
Tagir Valeev
7b359df0e1
[java-inference] Avoid -> new; pure contracts on methods returning Collection or Map
...
We assume that such methods return local object. However, we also assume that Collection/Map size is its field. But in fact, it may delegate to another collection
Fixes IDEA-266180 Constant conditions & exceptions false positive with Guava Lists
GitOrigin-RevId: ba6f76bd1b34b1b9503b4be1ce85119ba54f6b3e
2021-04-09 05:13:19 +00:00
Tagir Valeev
5a04ca5310
[java-inference] Failure contract: better null->fail inference (IDEA-230802)
...
GitOrigin-RevId: 778b9be125871e9002c719fb50f205a202439b2f
2021-03-11 11:27:57 +00:00
Tagir Valeev
b4c69a9cec
[java-inference] Failure contract inference improved
...
GitOrigin-RevId: 687b4c909c1d2ae67d519ec71899d52fa3e29434
2021-03-11 11:27:56 +00:00
Tagir Valeev
da4a1cc6a5
[java-analysis] Purity solver optimizations
...
1. Stop loading equations if the solution is definitely impure and return value is known
2. Replace "mutates" map with single value in MethodAnnotations
GitOrigin-RevId: 1fd25b97060b3f5a3c9ce3b22c24baa10d35a6f7
2021-02-05 10:51:47 +00:00
Tagir Valeev
c5c09c693a
[java-analysis] Hard-code that Throwable.initCause is mutates_this
...
This allows contract inference for methods like AssertionError(Object) constructor.
Fixes IDEA-260003 A warning is shown when Optional.get is called even when Optional.isPresent is verified before
GitOrigin-RevId: 548008f5462b828e0346f089474182f59ec39bd1
2021-01-22 12:55:45 +00:00
Tagir Valeev
d17aa59d6d
IDEA-237601 Infer mutation signature from the bytecode
...
GitOrigin-RevId: d3c47f6a35f948f65f5d447d8561044d7ec9ce23
2020-04-14 12:31:00 +00:00
Tagir Valeev
097416297a
Duplicate class files removed
...
GitOrigin-RevId: 7fa735dd7eaefadc358d6c6876f71d5fa2d14e2e
2020-04-14 12:31:00 +00:00
Tagir Valeev
6ed3465b66
BytecodeAnalysisIndex: use faster hashes; encode key in 12 bytes instead of 14
...
Bytes per class in integration test reduced from 2083 to 1900
GitOrigin-RevId: 1c0e84b6c70869283e9db48b718e44e78dc3c554
2019-11-07 02:40:58 +00:00
Tagir Valeev
79cc904ff9
BytecodeAnalysis: infer @NotNull for static final fields (for now: non-branching clinit only)
...
Fixes IDEA-223861 Infer static field nullability from the bytecode
GitOrigin-RevId: 2ee3102df5677e567defbe849900769237a728bc
2019-10-02 10:07:03 +00: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
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
Dmitry Avdeev
83f21c7197
Merge remote-tracking branch 'origin/master'
...
GitOrigin-RevId: 211e84dab4063848c1d3d835a526271ee1466636
2019-05-07 17:03:19 +03:00
Dmitry Avdeev
f9664fc455
IDEA-211555 Freeze on completion in XML file
...
do not process xincludes in ExtensionDomExtender
GitOrigin-RevId: d631dcd52d5bf500b61960473e16237008ad02a3
2019-05-07 17:02:41 +03:00
Alexey Kudravtsev
5910039653
attach JDK Annotations automatically on JDK creation to fix IDEA-211771
...
GitOrigin-RevId: 975cffd646b68abb31a61eb6ac50de264c428cdc
2019-05-03 03:07:50 +03:00
peter
506f7989e0
Revert "IDEA-201136 Update velocity library to 2.0"
...
it's too troublesome and has no clear benefits for now
we can return to this when we have more convincing reasons to upgrade than just "it's too old"
2019-01-14 22:18:42 +01:00
peter
c1d1037f47
IDEA-201136 Update velocity library to 2.0
2019-01-02 12:59:17 +01:00
Tagir Valeev
5422868682
BytecodeAnalysisIntegrationTest: depend on exact versions of velocity and collections
2018-10-26 16:00:05 +07:00
nik
224d9ced70
update commons-collection (IDEA-198976)
2018-10-25 09:37:06 +03:00
Roman Shevchenko
e0589b585f
[tests] migrates bytecode analysis tests to light test case
...
... and moves test data out of source code
2018-09-14 14:45:43 +02:00
Tagir Valeev
8446c4bce4
Testdata fixed after dfa_refactoring
2018-08-08 17:48:41 +07:00
Tagir Valeev
1aae19b0df
BytecodeAnalysisIndex: support new/this/paramX contracts
...
IDEA-191302 Introduce new contract return values: this, new, paramX
2018-05-04 17:44:23 +07:00
Tagir Valeev
37a4a385ab
BytecodeAnalysisIntegrationTest: add missing commons-collection annotations after moving velocity to maven
...
Before commons-collections was packed inside the velocity.jar and many classes were removed from there
2018-03-30 14:14:22 +07:00
Tagir Valeev
b144fc264e
Purity inference: fix expected data (which was not updated due to non-invalidated local cache)
2018-01-19 10:22:28 +07:00
Tagir Valeev
1aa64e3da2
IDEA-185138 Bytecode purity inference: do not infer method as pure if it reads the volatile field
2018-01-18 17:57:51 +07:00
Tagir Valeev
b414748d24
BytecodeAnalysis: force purity of enum.ordinal() and array.clone()
2018-01-15 16:29:57 +07:00
Maxim.Mossienko
4d165172dd
update testdata to reflect newer mock jdk 1.7
2017-06-13 15:09:42 +02:00
Tagir Valeev
82da560c31
Introduced AggressiveHardCodedPurity under registry key (IDEA-CR-21434)
...
New key = java.annotations.inference.aggressive.hardcoded.purity (true
by default). Implies purity for Object.toString(), Iterable.iterator(),
Iterator.hasNext() and this-changing Iterator.next(). Parameter-changing
mode supported for hardcoded purity.
2017-05-30 17:38:23 +07:00
Tagir Valeev
97eaee737b
BytecodeAnalysis refactoring: HKey and Key merged to EKey; hashing is encapsulated inside HMethod/Method pair
2017-05-30 13:17:05 +07:00
Tagir Valeev
60e8eb5948
PurityAnalysis: Object.toString hardcoded pure
2017-05-29 15:14:46 +07:00
Tagir Valeev
668fcdd985
PurityAnalysis: more native methods hardcoded
2017-05-25 15:22:20 +07:00
Tagir Valeev
5599cc543f
BytecodeAnalysis: infer failing contracts; infer contracts for input boolean arguments; squash inferred contracts; refactoring
2017-05-24 11:49:05 +07:00
Tagir Valeev
871ef095bb
PurityAnalysis: StringBuffer.toString is also hardcoded (used for string concatenation in older java versions)
2017-05-24 10:45:15 +07:00
Tagir Valeev
9f7b27a7cc
BytecodeAnalysisIntegrationTest: expected annotations fixed (somehow these two were missing)
2017-05-18 14:40:57 +07:00
Tagir Valeev
c41245708f
Bytecode analysis: purity inference improvement (also fixes IDEA-172989):
...
1. Lambda/method reference creation is pure
2. String concatenation is pure
3. Constructor which only modifies own fields (calls setters, etc.) is pure
4. Exception creation is pure
5. A few hardcoded native methods
2017-05-18 10:52:53 +07:00
Roman Shevchenko
c1e9f34a41
[java] improves resolve inside .class file
2016-06-06 15:30:39 +03:00
Ilya Klyuchnikov
00712ecdf5
new annotations
2015-12-30 13:22:42 +03:00
Ilya Klyuchnikov
414ec9db35
IDEA-145968: a change in test data
2015-10-12 15:00:23 +03:00
peter
4d76c50f69
add LinkedHashMap to mockJdk7
2015-10-06 15:27:44 +02:00
Ilya Klyuchnikov
7944b7a260
IDEA-145494: reformatting test data
2015-10-05 18:27:37 +03:00
Ilya Klyuchnikov
ac3ee3b425
IDEA-144129: support for inferred negated contracts
2015-09-25 15:01:31 +03:00
peter
e5d728e7a4
don't return inferred annotations that will be neglected anyway (e.g. on overrideable methods)
2014-12-03 17:40:04 +01:00
Ilya Klyuchnikov
2cec677727
Testing Inference of '@Contract(pure=true)' annotations: delta in test data
2014-10-16 08:51:38 +04:00
Ilya Klyuchnikov
582239346e
bytecode analysis: no inference of "true|false->..." contracts
2014-10-01 17:50:41 +04:00