Alexey Sedunov
|
d636d362b7
|
Pseudocode: Generate proper instructions for when conditions. Eliminate unnecessary magics
|
2014-07-11 19:13:46 +04:00 |
|
Alexey Sedunov
|
0a8fa404bf
|
Pseudocode: Generate additional returns for implicit return values (lambdas, functions with expression bodies)
|
2014-07-11 19:13:26 +04:00 |
|
Alexey Sedunov
|
1c75a5f642
|
Pseudocode: Generate instructions for superclass constructor calls. Consume value of delegate expression in the by-clause
|
2014-07-11 19:13:21 +04:00 |
|
Svetlana Isakova
|
aa26db0538
|
Updated tests for control flow: call instruction stores call element
instead of callee expression
|
2014-07-08 14:57:38 +04:00 |
|
Alexey Sedunov
|
f226d99d36
|
Pseudocode: Add valued instructions and unbound values to AbstractPseudoValueTest
|
2014-06-26 13:06:23 +04:00 |
|
Alexey Sedunov
|
5e2c2b4eca
|
Pseudocode: Implement computation of expected type predicates
|
2014-06-23 19:32:25 +04:00 |
|
Alexey Sedunov
|
50228fa085
|
Pseudocode: Generate correct values for postfix increment/decrement
|
2014-06-23 19:32:22 +04:00 |
|
Alexey Sedunov
|
7c837909d8
|
Pseudocode: Bind result values to elements retrieved from resolved calls
|
2014-06-23 19:32:21 +04:00 |
|
Svetlana Isakova
|
2077604d6d
|
Compute pseudo value for parameter correctly:
do not throw away pseudo value for default value
|
2014-06-23 14:30:16 +04:00 |
|
Svetlana Isakova
|
9d4aad3bbc
|
Extracted 'generateBooleanOperation'
Generate magic instruction for '&&, ||' in condition as well
|
2014-06-21 12:26:34 +04:00 |
|
Svetlana Isakova
|
88ecc5cc59
|
Evaluate default value for argument non-deterministically
in pseudocode
|
2014-06-21 12:26:33 +04:00 |
|
Svetlana Isakova
|
9480907514
|
Mark some expressions after processing their components
when it's semantically correct
Expressions: calls, 'for' loops, elvis operators
It's significant for reporting 'unreachable code' correctly
|
2014-06-21 12:26:32 +04:00 |
|
Alexey Sedunov
|
c9c94a59d3
|
Pseudocode: Copy value of JetThisExpression to enclosed JetSimpleNameExpression
|
2014-06-19 22:04:46 +04:00 |
|
Alexey Sedunov
|
45bd3a520e
|
Pseudocode: Generate pseudo-values for implicit receivers
|
2014-06-19 22:04:45 +04:00 |
|
Alexey Sedunov
|
168b32920b
|
Pseudocode: Do not bind call value to callee expressions
|
2014-06-19 22:04:44 +04:00 |
|
Alexey Sedunov
|
587a9558bc
|
Pseudocode: Introduce "merge" instruction
|
2014-06-19 22:04:39 +04:00 |
|
Alexey Sedunov
|
4a5d2e6728
|
Add tests for element -> pseudo-value mapping
|
2014-06-03 18:17:07 +04:00 |
|
Alexey Sedunov
|
d2c055e9da
|
Pseudocode: Introduce pseudo-value analysis
|
2014-06-03 18:17:05 +04:00 |
|
Svetlana Isakova
|
e0f37bbef0
|
Generate parse error on label without name '@'
|
2014-05-20 15:07:03 +04:00 |
|
Tal Man
|
aeb5bae556
|
Refactoring of CompileTimeConstant, introduce flag to represent a constant being referenced by a variable
|
2014-04-09 14:47:05 -04:00 |
|
Svetlana Isakova
|
a829da185d
|
Resolve invoke on any kind of expressions, not only on simple name expressions
|
2014-03-20 10:05:24 +04:00 |
|
Svetlana Isakova
|
b7f7063bf4
|
improved postProcess
collect (and cache) reachable instructions for local declarations
after processing all parent instructions
|
2014-03-07 21:08:18 +04:00 |
|
Svetlana Isakova
|
7d46ff951e
|
Jump after 'for' cycle to loop parameter change.
Not to the cycle body.
|
2014-03-07 21:08:17 +04:00 |
|
Svetlana Isakova
|
006f3ccbe9
|
Added/updated tests for LexicalScope.
|
2014-03-07 21:08:16 +04:00 |
|
Svetlana Isakova
|
1fc4573a8c
|
removed duplication of pseudocode in tests
for local functions
|
2014-03-07 21:08:15 +04:00 |
|
Svetlana Isakova
|
ec47821567
|
restructured control flow tests
|
2014-03-07 21:08:14 +04:00 |
|
Svetlana Isakova
|
aa713ef1f6
|
generate pseudocode for property accessor only if the property is local
otherwise check it independently like a function
|
2014-02-12 12:48:12 +04:00 |
|
Svetlana Isakova
|
5ef320173c
|
generate pseudocode for functions in local classes
#KT-4405 In progress
#KT-3501 Fixed
|
2014-02-11 21:07:10 +04:00 |
|
Svetlana Isakova
|
c3ff6a2430
|
fixed exponential building of cf graph
if there was en error in chained qualified expression
|
2013-12-27 16:02:16 +04:00 |
|
Svetlana Isakova
|
41f2fcbb40
|
while resolve 'equals' as a fake call do not throw away temporary trace
|
2013-12-11 19:53:51 +04:00 |
|
Svetlana Isakova
|
4c4e192914
|
Fixed: control flow graph building for array of functions.
'get' call for array should be get from INDEXED_LVALUE_GET
|
2013-12-06 15:58:45 +04:00 |
|
Andrey Breslav
|
97319808b6
|
Detecting tail calls through CFA
|
2013-12-06 00:28:12 +04:00 |
|
Andrey Breslav
|
9efa604cff
|
Revert 4ca90e9c68
|
2013-12-05 14:04:50 +04:00 |
|
Andrey Breslav
|
d665146e9a
|
No real need to check whether expressions have already been marked
|
2013-12-05 13:29:54 +04:00 |
|
Andrey Breslav
|
4ca90e9c68
|
Proper instructions for elvis operator
We should not mark elvis operator unused, for the rhs may have desired side-effects
|
2013-12-05 13:28:41 +04:00 |
|
Andrey Breslav
|
3629a539e4
|
Smoke test data fixed
|
2013-12-05 13:28:40 +04:00 |
|
Andrey Breslav
|
6df3a3042c
|
Properly handle the case of backing field access qualified with 'this' reference
|
2013-12-05 13:28:40 +04:00 |
|
Andrey Breslav
|
5b3bc7f839
|
Print instructions for functions in classes
|
2013-12-05 13:28:40 +04:00 |
|
Andrey Breslav
|
853ebe3436
|
Do not print trailing whitespace in test data
|
2013-12-05 13:28:39 +04:00 |
|
Andrey Breslav
|
87879ba654
|
Test data fixed: mark() instructions added
|
2013-12-05 13:28:39 +04:00 |
|
Andrey Breslav
|
e09d3aab3a
|
Test for CFA in string templates
|
2013-12-05 13:28:39 +04:00 |
|
Andrey Breslav
|
11fcd64949
|
Mark expressions for correct recognition by "unreachable code"
|
2013-12-05 13:02:17 +04:00 |
|
Andrey Breslav
|
6a4043c9a0
|
Do not display trivial sets of next/previous instructions in test data
For better readability of test failures
|
2013-12-05 13:02:17 +04:00 |
|
Andrey Breslav
|
e8c94a9d1d
|
Do not generate call for elvis + move dead code tests
|
2013-12-05 13:02:17 +04:00 |
|
Andrey Breslav
|
e0cf73d989
|
Do not forget to process rhs on unsupported lhs
|
2013-12-05 13:02:16 +04:00 |
|
Andrey Breslav
|
6c519bb515
|
Render whitespace in elements without newlines and tabs
|
2013-12-05 13:02:16 +04:00 |
|
Andrey Breslav
|
81003ba298
|
CFA test data updated
|
2013-12-05 13:02:16 +04:00 |
|
Andrey Breslav
|
ef194ffe23
|
Order fixed in assignment instructions with qualified expression on a lhs
|
2013-12-05 13:02:16 +04:00 |
|
Andrey Breslav
|
28acbcb219
|
Using call for set on an indexed expression in lvalue position
|
2013-12-05 13:02:15 +04:00 |
|
Andrey Breslav
|
a5854560f0
|
Proper order of arguments in array setter calls
|
2013-12-05 13:02:15 +04:00 |
|