Commit Graph

24 Commits

Author SHA1 Message Date
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
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 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 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
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
Ilya Klyuchnikov e0f6567a5d bytecode analysis: test data delta
IDEA-129645
2014-09-25 17:01:49 +04:00
peter 70b03fb0f0 correct bytecode analysis test data 2014-09-16 17:34:57 +02:00
Ilya Klyuchnikov f28955f810 testing new @Nullable annotations 2014-09-01 17:51:25 +04:00
Ilya Klyuchnikov 44f95a9b26 testing inference of @Nullable annotations for parameters 2014-08-25 18:30:43 +04:00
Ilya Klyuchnikov d4eb76a1c3 bytecode analysis: delta in testdata 2014-08-19 09:04:39 +04:00
Ilya Klyuchnikov ce6450136f no contract annotation if method is already @NotNull 2014-07-10 10:35:49 +02:00
Ilya Klyuchnikov 658b710762 aligned with faba 2014-07-10 10:35:46 +02:00
Ilya Klyuchnikov 338481d263 Bytecode analysis tests 2014-07-10 10:35:43 +02:00