Dmitry Petrov
|
6fbac2ed40
|
Minor: ir.backend.jvm -> backend.jvm
|
2016-10-18 09:08:38 +03:00 |
|
Dmitry Petrov
|
fe46a02885
|
Support all primitive literal types.
Apply simple unary operators to constants.
|
2016-10-18 09:08:38 +03:00 |
|
Dmitry Petrov
|
b3f605c4c4
|
Generate synthetic getter & setter descriptors for static properties in Java classes
(recognized as properties defined in classes without dispatchReceiver and extensionReceiver).
Fix 'when' generation for else-only case.
|
2016-10-18 09:08:37 +03:00 |
|
Dmitry Petrov
|
05b9eda809
|
Generate "raw" IR in Psi2IrTranslator.
|
2016-10-18 09:08:37 +03:00 |
|
Dmitry Petrov
|
ba85e714e3
|
Generate nested initializers for class.
|
2016-10-18 09:08:36 +03:00 |
|
Dmitry Petrov
|
415265276a
|
Minor: CallGenerator is StatementGeneratorExtension.
|
2016-10-18 09:08:36 +03:00 |
|
Dmitry Petrov
|
8d86c0a2dd
|
Representation for nested initializers in a class & nested initializers call.
|
2016-10-18 09:08:35 +03:00 |
|
Dmitry Petrov
|
8528c23194
|
Constructors represented "as in Java".
TODO: extract nested initializers somehow.
|
2016-10-18 09:08:35 +03:00 |
|
Dmitry Petrov
|
57c1b3e0e2
|
'!!' operator
|
2016-10-18 09:08:34 +03:00 |
|
Dmitry Petrov
|
92a7ecfac7
|
Render return target for IrReturn in tests.
Add tests for non-local returns from lambdas.
|
2016-10-18 09:08:34 +03:00 |
|
Dmitry Petrov
|
e459105128
|
Primary constructor generation.
|
2016-10-18 09:08:34 +03:00 |
|
Dmitry Petrov
|
225d792939
|
Secondary constructors in classes.
|
2016-10-18 09:08:33 +03:00 |
|
Dmitry Petrov
|
ac80195597
|
Anonymous function expressions ('fun(...) { ... }') and local functions (no closures yet).
|
2016-10-18 09:08:33 +03:00 |
|
Dmitry Petrov
|
83c3bdd788
|
Lambda expressions (no closures yet).
|
2016-10-18 09:08:32 +03:00 |
|
Dmitry Petrov
|
0b647ac358
|
Basic class members generation.
Split testData into 'classes' and 'expressions'.
|
2016-10-18 09:08:32 +03:00 |
|
Dmitry Petrov
|
703d3405ed
|
Generate class members (functions, properties, nested classes).
|
2016-10-18 09:08:31 +03:00 |
|
Dmitry Petrov
|
19e95d232a
|
Classes & type aliases, initial import.
|
2016-10-18 09:08:31 +03:00 |
|
Dmitry Petrov
|
b17e3b0299
|
Varargs.
|
2016-10-18 09:08:30 +03:00 |
|
Dmitry Petrov
|
d45811a5da
|
Empty loops.
|
2016-10-18 09:08:30 +03:00 |
|
Dmitry Petrov
|
179a06672b
|
IrExpression.type is no longer nullable.
Change expression typing contract.
|
2016-10-18 09:08:29 +03:00 |
|
Dmitry Petrov
|
be86739d3a
|
IrBlockBody
Change block typing contract.
|
2016-10-18 09:08:29 +03:00 |
|
Dmitry Petrov
|
8bef05703e
|
Inline rematerializable safe call receivers.
|
2016-10-18 09:08:28 +03:00 |
|
Dmitry Petrov
|
1ff12b4cb6
|
Loops and break/continue can have labels (as strings) (for KJS & other transpilers).
|
2016-10-18 09:08:28 +03:00 |
|
Dmitry Petrov
|
dc4bb3015c
|
Inline safe call chains.
|
2016-10-18 09:08:27 +03:00 |
|
Dmitry Petrov
|
3f256fab67
|
Variable as function calls.
|
2016-10-18 09:08:27 +03:00 |
|
Dmitry Petrov
|
b3407de1e6
|
Array access expression.
|
2016-10-18 09:08:26 +03:00 |
|
Dmitry Petrov
|
54e6bbd007
|
Don't introduce additional variables for simple array assignment.
|
2016-10-18 09:08:26 +03:00 |
|
Dmitry Petrov
|
abb106c885
|
Fix operator markup for '!==' and '!in'.
|
2016-10-18 09:08:25 +03:00 |
|
Dmitry Petrov
|
6830a7db43
|
PregeneratedCall -> CallBuilder
|
2016-10-18 09:08:25 +03:00 |
|
Dmitry Petrov
|
17758d8c00
|
'try'
|
2016-10-18 09:08:24 +03:00 |
|
Dmitry Petrov
|
ebd8f1266d
|
IrOperatorExpression -> IrPrimitiveCall
All "primitives" have their descriptors now.
|
2016-10-18 09:08:24 +03:00 |
|
Dmitry Petrov
|
c79b9c12d6
|
'throw'
|
2016-10-18 09:08:24 +03:00 |
|
Dmitry Petrov
|
4709aaafaa
|
'for'
|
2016-10-18 09:08:23 +03:00 |
|
Dmitry Petrov
|
03a666690b
|
'break' & 'continue'
|
2016-10-18 09:08:23 +03:00 |
|
Dmitry Petrov
|
87c7b4834b
|
'while' & 'do-while' loops
|
2016-10-18 09:08:22 +03:00 |
|
Dmitry Petrov
|
8bba49cba6
|
Block expressions & types.
|
2016-10-18 09:08:22 +03:00 |
|
Dmitry Petrov
|
594a553a04
|
Safe calls.
|
2016-10-18 09:08:21 +03:00 |
|
Dmitry Petrov
|
985f3b20c7
|
Unary operators.
|
2016-10-18 09:08:21 +03:00 |
|
Dmitry Petrov
|
97593fa19e
|
Make 'when' great again.
|
2016-10-18 09:08:20 +03:00 |
|
Dmitry Petrov
|
f787f8ecbf
|
Refactor desugaring (& operator conventions generation), step 1.
|
2016-10-18 09:08:20 +03:00 |
|
Dmitry Petrov
|
c0d521266b
|
Use ternary 'if' for 'when' (and also '||' as ',' in 'when').
|
2016-10-18 09:08:20 +03:00 |
|
Dmitry Petrov
|
c36a0d04ce
|
Shrinking IR: introduce IrBuiltIns (as a container for special operator descriptors)
|
2016-10-18 09:08:19 +03:00 |
|
Dmitry Petrov
|
70dfb75f82
|
Shrinking IR: GetProperty / SetProperty expressions are now generated as calls.
|
2016-10-18 09:08:19 +03:00 |
|
Dmitry Petrov
|
8500f5ddb2
|
Preliminary work on loops.
|
2016-10-18 09:08:18 +03:00 |
|
Dmitry Petrov
|
de5181d642
|
More tests for 'when'
|
2016-10-18 09:08:18 +03:00 |
|
Dmitry Petrov
|
b96626fd4c
|
When expression.
Fix object & enum references.
|
2016-10-18 09:08:17 +03:00 |
|
Dmitry Petrov
|
d6040d8570
|
Type operators.
|
2016-10-18 09:08:17 +03:00 |
|
Dmitry Petrov
|
5709826096
|
Refactoring.
'if' expressions (represented as 'when' without subject).
|
2016-10-18 09:08:16 +03:00 |
|
Dmitry Petrov
|
1ddf889d8a
|
Comparisons:
- for primitive types and kotlin.String, use IrBinaryOperatorExpression
- for others, use call to 'compareTo'
|
2016-10-18 09:08:16 +03:00 |
|
Dmitry Petrov
|
ace98b91cc
|
Handle infix function calls in binary expressions.
|
2016-10-18 09:08:16 +03:00 |
|