Commit Graph

34554 Commits

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