Commit Graph

128 Commits

Author SHA1 Message Date
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