peter
|
336194494c
|
a bit more parsimonous DfaMemoryStateImpl.createCopy
|
2013-09-23 16:30:26 +02:00 |
|
peter
|
1709382d3f
|
dfa: use UnorderedPair instead of two-element set
|
2013-09-23 16:30:25 +02:00 |
|
peter
|
e8dbc2135e
|
immutable DfaVariableState, for faster copying and less memory usage
|
2013-09-23 16:30:25 +02:00 |
|
peter
|
2486e9e229
|
dfa: merge several states to account for variables with several possible values
|
2013-09-22 09:58:42 +02:00 |
|
peter
|
4d4f4b0147
|
dfa: some minor things and caching
|
2013-09-22 09:56:49 +02:00 |
|
peter
|
e55fae1896
|
dfa: abstract out eq class into EqClass class
|
2013-09-21 13:32:29 +02:00 |
|
peter
|
370d44d546
|
dfa: remove trivial state facts that constant != another constant
|
2013-09-21 13:32:29 +02:00 |
|
peter
|
fea88718d0
|
dfa: fighting too complex methods; join complementary memory states after fork to avoid having too many states
|
2013-09-21 00:00:03 +02:00 |
|
peter
|
0ac20848d3
|
DfaMemoryStateImpl: introduce unwrap; compare variable values with their non-initialized counterparts
|
2013-09-21 00:00:02 +02:00 |
|
peter
|
b016c04ab0
|
correct ephemeral state copy (IDEA-113143 Calling method with contract shouldn't result in nullability suspicion)
|
2013-09-19 18:56:52 +02:00 |
|
peter
|
340cf22371
|
Calling method with contract shouldn't result in nullability suspicion (IDEA-113763, IDEA-113699, almost IDEA-113143)
|
2013-09-19 18:32:08 +02:00 |
|
peter
|
2765dab243
|
dfa: spare some minor cpu cycles
|
2013-09-19 18:32:07 +02:00 |
|
peter
|
f5b050dba6
|
dfa: boxed/unboxed values are also unknown
|
2013-09-17 21:56:28 +04:00 |
|
peter
|
0a8c1283a9
|
DfaMemoryStateImpl: use only non-trivial equality classes for comparison
|
2013-09-17 17:49:57 +04:00 |
|
peter
|
d0469515fa
|
dfa: don't create negated value just to flush it
|
2013-09-16 21:16:38 +04:00 |
|
peter
|
0f1494e02a
|
dfa: don't multiply eq classes until really needed
|
2013-09-15 22:48:34 +04:00 |
|
peter
|
91543ede54
|
dfa: treat every getter-like invocation like a field access, don't look inside and don't parse other classes for that
|
2013-09-14 14:26:45 +04:00 |
|
peter
|
8534bf1625
|
cache the default dfaVar type
|
2013-09-10 18:28:46 +02:00 |
|
peter
|
2ee4c955da
|
merge DfaNotNullValue into DfaTypeValue
|
2013-09-10 18:28:46 +02:00 |
|
peter
|
650794d9c2
|
some findusageability in dfa
|
2013-09-10 18:28:46 +02:00 |
|
peter
|
7d3f4f255a
|
some dfa simplifications not affecting tests
|
2013-09-10 14:13:18 +02:00 |
|
peter
|
5d1dddccb5
|
fail-fast DfaMemoryStateImpl.equals
|
2013-09-06 17:31:33 +02:00 |
|
peter
|
559ab965eb
|
no matter if there are other variables having that constant value, it's still constant
|
2013-09-05 16:27:41 +02:00 |
|
peter
|
9329331182
|
IDEA-104754 Good code yellow: Unboxing
|
2013-07-31 17:49:44 +02:00 |
|
peter
|
4774b1e0e2
|
suggest to replace with constant reference rather than its value
|
2013-07-15 16:42:36 +02:00 |
|
peter
|
e5c829c66b
|
IDEA-69573 ConstantConditions - Warn when reading a variable that is guaranteed to be null
|
2013-07-09 16:12:33 +02:00 |
|
Alexey Kudravtsev
|
a42f8f1829
|
moved to analysis
|
2013-05-24 13:49:39 +04:00 |
|