Dmitry Petrov
a416cddcb2
Generate declarations for FAKE_OVERRIDE members
2017-05-04 09:33:03 +03:00
Dmitry Petrov
4ee1fb9309
Minor refactoring
...
- Get rid of IrClassImpl usages where IrClass is enough
- Use startOffsetOrUndefined / endOffsetOrUndefined
2017-05-04 09:33:03 +03:00
Dmitry Petrov
8cea27b5bb
Generate IrTypeParameter and IrValueParameter declarations
2017-05-04 09:33:03 +03:00
Dmitry Petrov
77614a749b
Minor: unnecessary overrides in IrBlockImpl
2017-05-04 09:33:03 +03:00
Dmitry Petrov
abb687aa7f
Introduce IrTypeParameter and IrValueParameter declarations
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c6b259c36c
IrSymbol interface hierarchy, initial import
...
"Symbols" are (presumably simpler) alternative to descriptors, tailored
for IR-based back-end implementation.
2017-05-04 09:33:03 +03:00
Alexander Udalov
bbdff8c7ce
Move DeclarationDescriptor.substitute to separate interface Substitutable
...
To get rid of pointless/confusing implementations in ModuleDescriptor,
PackageViewDescriptor, TypeParameterDescriptor and others.
Note that there are still implementations that do not make sense, for
example in those subclasses of VariableDescriptor which are not also
subclasses of CallableMemberDescriptor (e.g. ValueParameterDescriptor).
Those can be removed by making CallableMemberDescriptor (instead of
CallableDescriptor) inherit from Substitutable. However, that would
require more changes in the compiler because CallableDescriptor is used
rather often in places where in fact only CallableMemberDescriptor
instances can appear.
Explicit return types and casts are required in some places now because
there's no single non-trivial supertype for
ClassifierDescriptorWithTypeParameters and CallableDescriptor.
Previously it was DeclarationDescriptorWithVisibility, now it's both
that and Substitutable<...>
2017-04-13 14:16:07 +03:00
Mikhail Glukhikh
b121bf8802
Cleanup: fix some compiler warnings (mostly deprecations, javaClass)
2017-03-15 17:35:31 +03:00
Dmitry Petrov
cb61c358ea
Always generate primitive boolean constants as expressions of type 'kotlin.Boolean'.
2017-03-07 11:56:52 +03:00
Dmitry Petrov
8c32719f3d
Render 'type' for IrTypeOperatorCall expressions, update testData.
2017-03-07 11:56:52 +03:00
Dmitry Petrov
8e8f83656f
KT-16618 IMPLICIT_INTEGER_COERCION isn't generated for global properties and default parameters
2017-03-07 11:56:52 +03:00
Igor Chevdar
ab3681e164
Package level delegated properties have no dispatch receiver.
2017-03-02 12:33:01 +03:00
Igor Chevdar
3ef612f05a
Added dispatch receiver to delegation implementing property
2017-03-02 12:33:01 +03:00
Dmitry Petrov
6046b25f56
Minor: silence that irritating KT-14030
2017-03-01 09:25:38 +03:00
Dmitry Petrov
045a12ddc6
Minor: constructor IrExpressionBodyImpl(IrExpression)
2017-03-01 09:25:38 +03:00
Dmitry Petrov
e66c2621af
KT-16436 Incorrect primitive constants handling
...
Expression '1.unaryMinus()' is resolved as Int::unaryMinus call with Int receiver.
However, this expression is implicitly coerced to a different integral type (Byte, Short, Long)
based on results of constant evaluation.
Introduce IMPLICIT_INTEGER_COERCION type operator to handle such cases.
TODO: should we use it for simple constant expressions like '1' and '-1'?
2017-03-01 09:25:38 +03:00
Dmitry Petrov
e2e57e5b6d
KT-16439 Generated methods of data classes have no expression for default arguments
...
Provide default argument expressions for generated 'copy' declaration.
2017-03-01 09:25:38 +03:00
Ilya Matveev
0759ff7bc2
Override acceptChildren method in IrSetterCallImpl
2017-02-07 18:20:33 +03:00
Alexander Udalov
f1cd2ee6fd
Introduce PropertyDescriptor.isDelegated, write new flag to metadata
...
#KT-8384 In Progress
2017-01-23 12:25:34 +03:00
Dmitry Petrov
b9f9894310
KT-15677 KT-15775
...
Update parser & descriptor renderer to handle parenthesized types and function types properly.
Resolve annotations in parenthesized types.
AnnotationsImpl.isEmpty() returned false for targeted annotations only
(e.g., 'fun @receiver:Ann C?.foo()').
Properly keep track of targeted annotations.
2017-01-19 09:53:17 +03:00
Svyatoslav Scherbina
bf3b5281a9
ir.tree: add trivial building utils
2017-01-11 14:54:13 +07:00
Svyatoslav Scherbina
d0a166ffec
psi2ir: move IR building utils to ir.tree
2017-01-11 14:54:12 +07:00
Svyatoslav Scherbina
0189faec2e
ir.tree: fix IrTry.transformChildren:
...
transform `finallyExpression` too.
2017-01-11 14:54:09 +07:00
Dmitry Petrov
d9271b54fb
Fix IR generation: temporary variable in 'hashCode()' for data class should be 'var'
2016-12-23 10:44:14 +03:00
Stanislav Erokhin
42440f50dc
Remove soft keyword coroutine & isCoroutine from ValueParameterDescriptor.
2016-12-15 23:57:56 +03:00
Stanislav Erokhin
59efedf610
Rename platform to header.
2016-12-13 18:00:00 +03:00
Alexey Andreev
ba2443bcb3
Add external property to class and property descriptors
2016-12-08 15:41:38 +03:00
Alexander Udalov
ce9691cd2b
Support platform/impl modifiers for properties
...
Do not allow platform properties to have backing fields, initializers, be
delegated, lateinit or const, or have accessors with bodies
2016-11-25 20:50:18 +03:00
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