Commit Graph

282 Commits

Author SHA1 Message Date
Svyatoslav Scherbina 944c60eb66 ir.tree: fix bug in IrElementTransformerVoid 2018-06-21 18:18:01 +03:00
Mikhael Bogdanov ede751c074 Support more cases in special bridge lowering 2018-06-21 11:18:37 +02:00
Mikhael Bogdanov c588d22e6a Don't sort descriptors in DeclarationStubGenerator
Sorting adds 30% time to test execution
2018-06-21 11:18:35 +02:00
Roman Artemev c0f53f3a4d Move IrSuspendableExpression and SuspensionPoint from Kotlin/Native to common part 2018-06-20 15:06:00 +03:00
Roman Artemev b65443dd25 [JS IR BE] Support try-catch-finally in new backend 2018-06-19 17:08:14 +03:00
Dmitry Petrov ecd2709a11 psi2ir: type arguments for function references 2018-06-19 11:13:50 +03:00
Roman Artemev 17d71f1e46 [JS IR BE] Implement type check
* IrTypeOperator lowering
 * runtime support
 * refactoring
2018-06-14 18:40:06 +03:00
Mikhael Bogdanov 5753f93a57 Support java synthetic properties in DependencyCollector 2018-06-04 10:49:56 +02:00
Dmitry Petrov 8094cb7dc5 psi2ir: Generate external dependencies in a loop
There are some cases (superclasses, overridden methods, and so on) where
external dependencies generation can require additional external
dependencies.
2018-05-31 10:09:31 +03:00
Dmitry Petrov 7a2bb79777 psi2ir: Use substituted 'hashCopy' for generated data class 'hashCopy' 2018-05-30 12:02:34 +03:00
Dmitry Petrov ab455d6572 IR: IrSimpleFunction.correspondingProperty: IrProperty?
Non-null for a property accessor, points to a corresponding property.
2018-05-25 09:40:51 +03:00
Dmitry Petrov 216dbf9637 Drop IrDeclarationKind 2018-05-25 09:40:51 +03:00
Dmitry Petrov 2a0e7eb412 IR: split IrUtils.kt into common and backend-specific part 2018-05-25 09:40:51 +03:00
Mikhael Bogdanov e9216625f0 Update logic to $default function lowering (don't skip interface members) 2018-05-15 16:06:31 +02:00
Mikhael Bogdanov d4d8fe4995 Migrate DescriptorsFactory.getSymbolForObjectInstance() API to symbols 2018-05-15 16:05:57 +02:00
Dmitry Petrov a57869993d Fix asserted cast in IrBuilderWithScope.irReturn 2018-05-15 15:43:56 +03:00
Igor Chevdar 6daabca90b Fixed forgotten receivers during copying 2018-05-14 16:01:13 +03:00
Dmitry Petrov 0feb50021c IrClass.isInner 2018-05-14 10:37:27 +03:00
Roman Artemev 131fb642aa Fix initializer lowering crash during deep copy 2018-05-11 17:14:30 +03:00
Dmitry Petrov 93f5fe2451 IrField is 'final' if corresponding property is 'val' 2018-05-11 11:24:46 +03:00
Dmitry Petrov d83849eec5 IR: IrValueSymbol.owner: IrValueDeclaration 2018-05-11 11:24:46 +03:00
Dmitry Petrov 1592aa499f IR: IrFunctionSymbol.owner: IrFunction
This requires some class hierarchy juggling around
IrFunction and IrReturnableBlock.
2018-05-11 11:24:46 +03:00
Dmitry Petrov f500329dac IR: IrFunction.name 2018-05-11 11:24:46 +03:00
Dmitry Petrov 729efaf912 IR: IrConstructor.isPrimary
NB this is required for Kotlin/JS.
2018-05-11 11:24:46 +03:00
Dmitry Petrov a6057fb499 IR: {IrClass, IrFunction, IrProperty, IrField}.isExternal 2018-05-11 11:24:46 +03:00
Dmitry Petrov 9717345e3b IR: IrField.isFinal 2018-05-11 11:24:46 +03:00
Roman Artemev 8bc80a9829 Fix secondary constructor lowering 2018-04-27 20:02:57 +03:00
Dmitry Petrov d3a1d93460 Type translation, initial import 2018-04-17 10:35:52 +03:00
Dmitry Petrov d1fe32a486 IrType: basic interface & implementation 2018-04-17 10:35:52 +03:00
Dmitry Petrov e6baf0296d More annotation generation for declarations with test cases 2018-04-09 11:24:37 +03:00
Dmitry Petrov fdd8b7ae6c Annotations in IR are represented as call expressions (nothing else) 2018-04-09 11:24:37 +03:00
Dmitry Petrov 57077a5eb8 Generate annotations for declarations in psi2ir 2018-04-09 11:24:37 +03:00
Dmitry Petrov c2dced775d IrDeclaration has annotations
Note that acceptChildren doesn't traverse them (yet?).
2018-04-09 11:24:37 +03:00
Dmitry Petrov e74c448c0a Minor: reformat code 2018-04-09 11:24:37 +03:00
Anton Bannykh a514c0f515 JS IR: initial lowerings reuse 2018-03-29 20:32:10 +03:00
Dmitry Petrov 3a936c9e27 Minor: drop 'transformTypeArguments' 2018-03-27 17:25:11 +03:00
Dmitry Petrov 47b3152bd0 Throw detailed exceptions for incorrect argument indices 2018-03-27 17:25:11 +03:00
Dmitry Petrov 9a76ee63ab Determine typeArgumentsCount by descriptor 2018-03-27 17:25:11 +03:00
Dmitry Petrov 3b967017f6 Render type arguments by index 2018-03-27 17:25:11 +03:00
Dmitry Petrov b5607e4b3d Store type arguments by indices instead of TypeParameterDescriptor keys 2018-03-27 17:25:11 +03:00
Alexey Tsvetkov 8a82c1618c Use Plugins DSL in Kotlin Gradle scripts
When plugins DSL is used, there is no need to
manually generate typesafe accessors for extensions and
conventions (by running `./gradlew kotlinDslAccessorsSnapshot`).
2018-03-26 16:09:29 +03:00
Dmitry Petrov 37040523ad valueArgumentsCount 2018-03-23 11:43:44 +03:00
Dmitry Petrov 3c7914b0c1 Minor: drop obsolete code 2018-03-23 11:43:44 +03:00
Dmitry Petrov 135d3ab57a Fix type arguments mapping 2018-03-23 11:43:44 +03:00
Dmitry Petrov eb5904ea8e Underlying constructor for type alias should always be substituted
Otherwise PSI2IR fails because of type mismatch.
2018-03-23 11:43:44 +03:00
Svyatoslav Scherbina 5abade0e32 Fix missing type parameters of property accessors in external IR stubs 2018-03-06 16:43:20 +03:00
Svyatoslav Scherbina 7a2d761a7d Add minor improvements to psi2ir and IR utilities:
* Generate missing IR parameter declarations in external stubs
* Use origin = FAKE_OVERRIDE in external IR stubs for fake overrides
* Set .parent in external IR stubs
* Set .parent in IR generated by some utility methods
2018-03-02 15:41:48 +03:00
Dmitry Petrov 13a7270129 Generate type parameter declarations for property accessors
This requires "scoped" type parameter symbols, because in the ugly world
of descriptors property accessors have no type parameters of their own.
2018-03-02 14:35:35 +03:00
Yan Zhulanow 34d1611ed4 Add Pill support to compiler and IDE modules 2018-03-02 03:15:17 +03:00
Dmitry Petrov b206bf199f Add type operand symbol for type operator expression 2018-02-28 10:35:13 +03:00