Commit Graph

140 Commits

Author SHA1 Message Date
Alexander Udalov 6e2ef9b1d2 Add platform/impl soft keywords, add isPlatform/isImpl to MemberDescriptor 2016-11-25 20:50:17 +03:00
Dmitry Petrov 7dce1f438f Inner classes lowering. 2016-10-19 19:13:40 +03:00
Dmitry Petrov b5d81d8e31 Preparations to push to master branch.
Introduce tests-ir-jvm module (for IR-based JVM BE tests).
2016-10-18 09:15:19 +03:00
Dmitry Petrov a93f929615 Minor: IrElementVisitorVoid#visitGetVariable -> visitGetValue 2016-10-18 09:10:19 +03:00
Dmitry Petrov fb5298237a Shared variables lowering. 2016-10-18 09:10:16 +03:00
Dmitry Petrov 5ee2f87c4a Closure conversion: simple tests work. 2016-10-18 09:10:12 +03:00
Michael Bogdanov 0b45655b7b Support exhaustive when 2016-10-18 09:10:02 +03:00
Michael Bogdanov a0d9d24c1f Introduced IrElseBranch 2016-10-18 09:10:01 +03:00
Dmitry Petrov a51efaacc9 Introduce IrGetValue as a replacement for IrThisReference / IrGetExtensionReceiver / IrGetVariable. 2016-10-18 09:09:59 +03:00
Michael Bogdanov 567b174e15 Funther default impl support 2016-10-18 09:09:57 +03:00
Dmitry Petrov fc754e533d Enum classes lowering. 2016-10-18 09:09:55 +03:00
Dmitry Petrov 7950235df3 Lowering for constructors & initializers. 2016-10-18 09:09:52 +03:00
Dmitry Petrov 45c999788a Deep copy for IR elements.
NB: we can transform descriptors during copying.
2016-10-18 09:09:44 +03:00
Dmitry Petrov d66d582f25 Update to origin/master.
IrReturn should return 'Unit' for "return without value".
2016-10-18 09:09:40 +03:00
Dmitry Petrov 8551bcf103 Refactor IrWhen. 2016-10-18 09:09:38 +03:00
Michael Bogdanov fe51c35298 Fix for 'getNthResult' in IfThenElse expression impl 2016-10-18 09:09:32 +03:00
Dmitry Petrov 291d535de7 Fix IR generation for string templates containing single entry. 2016-10-18 09:09:30 +03:00
Dmitry Petrov 1c2a676cd6 Make coercion to Unit explicit in IR. 2016-10-18 09:09:30 +03:00
Dmitry Petrov 16334771ad Minor: comment for IrMemberAccessExpression::getTypeArgument 2016-10-18 09:09:29 +03:00
Dmitry Petrov 7ae6c55ddb IrMemberAccessExpression::getTypeArgument 2016-10-18 09:09:28 +03:00
Dmitry Petrov 89de2a2ebe Drop IrGeneralCall, pull up corresponding members to IrMemberAccessExpression. 2016-10-18 09:09:28 +03:00
Dmitry Petrov b19bcc0587 IrElementTransformerVoid 2016-10-18 09:09:27 +03:00
Dmitry Petrov e0129ef33b IrDeclaration.transform(transformer, data) returns IrStatement.
Declaration containers assume that transformers maintain declaration structure.
2016-10-18 09:09:26 +03:00
Dmitry Petrov 2b5cb0f722 Make statement containers mutable. 2016-10-18 09:09:26 +03:00
Dmitry Petrov 4c88ad408f Make declaration containers mutable. 2016-10-18 09:09:25 +03:00
Dmitry Petrov 4b9c5effd3 Minor: irElement rendering 2016-10-18 09:09:25 +03:00
Dmitry Petrov 90119880c5 IrCatch element. 2016-10-18 09:09:24 +03:00
Dmitry Petrov 001b95473a Drop 'parent' and 'slot'. 2016-10-18 09:09:21 +03:00
Dmitry Petrov a8a6477ce5 IrOperator -> IrStatementOrigin 2016-10-18 09:09:21 +03:00
Dmitry Petrov 5386d27284 File class lowering 2016-10-18 09:09:20 +03:00
Dmitry Petrov a25e781ee9 Minor: IrFieldAccessExpression, visitor methods. 2016-10-18 09:09:19 +03:00
Dmitry Petrov c699e2d24c Include declaration origin in testData. 2016-10-18 09:09:19 +03:00
Dmitry Petrov 0cdf831bf0 IrDeclarationContainer as a super-interface for IrFile and IrClass.
Builder for IrDeclarationContainer (initial implementation; TODO more flexible builders).
2016-10-18 09:09:16 +03:00
Dmitry Petrov 5c720845a8 Drop IrPropertyAccessor (and subclasses).
Drop IrLocalPropertyAccessor (and subclasses).
Introduce IrField.
2016-10-18 09:09:15 +03:00
Dmitry Petrov aee2a58385 Drop assertDetached, unneeded ceremony. 2016-10-18 09:09:14 +03:00
Dmitry Petrov 00a74699e2 SourceLocationManager -> SourceManager 2016-10-18 09:09:13 +03:00
Dmitry Petrov 1e00561b6f IrModule -> IrModuleFragment 2016-10-18 09:09:13 +03:00
Dmitry Petrov 838b639692 IrComposite - block introducing immediate declarations to the surrounding scope.
E.g., destructuring declaration is represented as IrComposite.
2016-10-18 09:09:12 +03:00
Dmitry Petrov da4079bfe7 Move implementation classes to 'impl' packages. 2016-10-18 09:09:11 +03:00
Dmitry Petrov d6a3246586 Use throwNoSuchSlot consistently. 2016-10-18 09:09:10 +03:00
Dmitry Petrov 40a60e430f - Compact representation for empty blocks.
- Fix some issues in IrBlockImpl.
2016-10-18 09:09:10 +03:00
Dmitry Petrov 09c52696a5 Unique numbers for "special" slots. 2016-10-18 09:09:09 +03:00
Dmitry Petrov 4e270ef487 Store file-level annotations in IrFile (should be on some descriptor, really). 2016-10-18 09:09:09 +03:00
Dmitry Petrov 4e112b3f88 testData format update: detailed descriptor rendering. 2016-10-18 09:09:04 +03:00
Dmitry Petrov 993c3fe51e - Render IrModule.
- Dump IR for box tests to .txt.
2016-10-18 09:09:03 +03:00
Dmitry Petrov ec2cfd2389 AbstractClosureAnnotator for IR. 2016-10-18 09:09:02 +03:00
Dmitry Petrov ceeccfa1b7 Properties without accessors are generated as
IrGetBackingField / IrSetBackingField expressions.
2016-10-18 09:09:01 +03:00
Dmitry Petrov a1ad828ea8 IrElementVisitorVoid 2016-10-18 09:09:01 +03:00
Dmitry Petrov d623c70778 Handle break/continue in loop header (condition for 'while', range for 'for'). 2016-10-18 09:08:59 +03:00
Dmitry Petrov 28b3ea27f3 Generate explicit call to 'Any()' if no superclass found.
Generate call super-constructor calls as IrDelegatedConstructorCall.
2016-10-18 09:08:57 +03:00