Alexey Sedunov
7d278f2f42
Use class name as secondary constructor name
2015-03-18 10:56:33 +03:00
Pavel V. Talanov
06916d98c6
default -> companion: replace all mentions of default and default object
2015-03-17 15:47:39 +03:00
Stanislav Erokhin
d9882a6d0b
Move inference parameter type in FunctionDescriptorResolver
2015-03-12 17:11:52 +03:00
Alexey Sedunov
11a4cdf7ec
Control-Flow Analysis: Fix NPE for array assignments without right-hand side
...
#EA-63602 Fixed
2015-03-11 23:33:58 +03:00
Alexey Sedunov
56031cb270
Control-Flow Analysis: Fix bug in finally-block repetition in the presence of non-local returns
...
#EA-65982 Fixed
2015-03-11 23:33:57 +03:00
Denis Zharkov
7f20c4a237
Control flow changes for secondary constructors
2015-03-11 17:45:24 +03:00
Pavel V. Talanov
59f192ef90
Replace 'class object' with 'default object' in renderers and test data
...
Includes changes to decompiled text
Old syntax is used in builtins and project code for now
2015-03-06 19:36:54 +03:00
Andrey Breslav
0e972acf8c
== turned into a safe-call
2015-02-10 06:55:46 +01:00
Alexey Sedunov
9278dee1a4
Pseudocode: Bind nondeterministic jump caused by local declaration to declaration iself instead of its parent element
...
#KT-6261 Fixed
#KT-6416 Fixed
2015-01-19 20:58:50 +03:00
Alexander Udalov
a7b88e9485
Make CharSequence.length a function instead of property
...
And String.length as well.
This is done for JVM interoperability: java.lang.CharSequence is an open class
and has a function 'length()' which should be implemented in subclasses
somehow.
A minor unexpected effect of this is that String.length() is now a compile-time
constant (it wasn't such as a property because properties are not supported in
compile-time constant evaluation)
#KT-3571 Fixed
2014-11-27 20:38:17 +03:00
Alexey Sedunov
a3a0edca58
Pseudocode: Drop CompilationErrorInstruction
2014-10-14 01:59:43 +04:00
Alexey Sedunov
a56c54371e
Pseudocode: Generate instructions for unresolved array assignments
2014-10-14 01:59:42 +04:00
Andrey Breslav
0cbbb6a0db
Test data fixed
2014-10-13 15:37:47 +04:00
Svetlana Isakova
f5feb3bf33
Fixed: label copies should be added to all labels
2014-09-07 01:04:01 +04:00
Svetlana Isakova
976d5ab030
Pseudocode: don't write full label name when jump on it
2014-09-07 01:04:00 +04:00
Svetlana Isakova
61dc110cc7
Report 'break or continue outside a loop'
...
for break/continue outside a loop body (e.g. in loop condition)
#KT-5724 Fixed
2014-09-07 01:03:57 +04:00
Svetlana Isakova
0b4f313b6d
Jump on 'continue' to condition entry points for all loops
2014-09-05 18:31:53 +04:00
Svetlana Isakova
3d7c22f242
Added exact label names for labels
2014-09-05 18:31:53 +04:00
Alexey Sedunov
f11621615b
Pseudocode: Do not generate VALUE_CONSUMER if property delegate has no value (EA-59276)
2014-09-05 17:39:54 +04:00
Alexey Sedunov
9fee8600cb
Pseudocode: Do not generate implicit return instruction inside of
...
Unit-typed lambdas
#KT-5549 Fixed
2014-08-05 18:14:40 +04:00
Svetlana Isakova
4477a96ca7
Resolve operation (unary, array access) on error element instead of ignoring it
...
(to record corresponding call for later simplification in control flow)
Generate code for unmapped arguments in control flow
2014-07-30 17:14:00 +04:00
Alexey Sedunov
2a19016d58
Pseudocode: Add test for parenthesized call in selector
2014-07-28 13:07:34 +04:00
Alexey Sedunov
85bb4f9b8e
Pseudocode: Generate read instructions on call expression (instead of
...
callee)
2014-07-28 13:07:33 +04:00
Alexey Sedunov
9f3ebe5f3b
Pseudocode: Generate merge instruction regardless of number of branches
2014-07-28 13:07:32 +04:00
Alexey Sedunov
d008cb8c21
Pseudocode: Do not regenerate receiver values
2014-07-28 13:07:30 +04:00
Alexey Sedunov
77bbf8f73b
Pseudocode: Generate fake values for Unit/Nothing-typed expressions
2014-07-28 13:07:29 +04:00
Alexey Sedunov
2d3ac9109b
Pseudocode: Generate synthetic VALUE_CONSUMER for both property and class delegates
2014-07-28 13:06:46 +04:00
Alexey Sedunov
d07deeb5fb
Pseudocode: Generate UNSUPPORTED_ELEMENT for misplaced returns
2014-07-28 13:04:02 +04:00
Alexey Sedunov
b0bf11c51e
Pseudocode: Consume value of true condition in while-loop
2014-07-28 13:04:01 +04:00
Alexey Sedunov
e11ffb8542
Pseudocode: Replace UnsupportedElementInstruction with UNSUPPORTED_ELEMENT magic.
...
Generate UNSUPPORTED_ELEMENT for assignments with unresolved left-han side
2014-07-28 13:04:00 +04:00
Alexey Sedunov
c32d112e67
Pseudocode: Generate magics for cast expressions
2014-07-28 13:03:12 +04:00
Alexey Sedunov
ffd4af872c
Pseudocode: Track merged values. Compute closure of value usages over merge instructions. Exclude merge instructions from usage lists
2014-07-28 13:03:09 +04:00
Alexey Sedunov
4f54d833d3
Pseudocode: Generate instructions for callable reference expressions
2014-07-28 13:03:05 +04:00
Zalim Bashorov
c85ec97589
Minor: revert dc68d78 (Minor: revert changes in StackValue and fix tes data. another fixes)
2014-07-25 17:16:40 +04:00
Zalim Bashorov
dc68d78d9d
Minor: revert changes in StackValue and fix tes data.
...
(this commit should be reverted after make Unit object)
2014-07-11 20:28:57 +04:00
Alexey Sedunov
487e7f2a91
Pseudocode: Replace {<: Any?} type predicate with *
2014-07-11 19:13:52 +04:00
Alexey Sedunov
4707f4a5e9
Pseudocode: Add debug information to magic instructions
2014-07-11 19:13:49 +04:00
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