Dmitry Petrov
8de21aadfa
'?:' (currently represented as binary expression with operator ELVIS)
2016-10-18 09:08:13 +03:00
Dmitry Petrov
0d94c3aeb4
'in' and '!in' operators.
2016-10-18 09:08:12 +03:00
Dmitry Petrov
96e3c52878
Equality and identity operators.
2016-10-18 09:08:12 +03:00
Dmitry Petrov
db5843adc8
Desugar comparison operators as IrBinaryOperatorExpression.
...
They are not exactly 'compareTo' calls (although annotated with a related 'compareTo' function),
and require special treatment in BEs.
2016-10-18 09:08:11 +03:00
Dmitry Petrov
1b018a6ead
Desugar basic binary operators (+, -, *, /, %, ..).
...
Fold String.plus calls to IrStringConcatenationExpression.
2016-10-18 09:08:11 +03:00
Dmitry Petrov
287d804131
Rematerialize simple expressions (local variables, literals, $this, $receiver) when generating calls.
2016-10-18 09:08:11 +03:00
Dmitry Petrov
c1583c4368
Complex augmented assignment test.
...
Fix string literal creation for empty string template.
2016-10-18 09:08:10 +03:00
Dmitry Petrov
64d7a97145
IR, testing framework: if no tree labels were provided in source file, use default golden file.
2016-10-18 09:08:10 +03:00
Dmitry Petrov
aee83f5a77
Minor: IrIndexedLValue can use IrExpression's, since its subexpressions should be evaluated once.
2016-10-18 09:08:09 +03:00
Dmitry Petrov
888b1685ed
Introduce name hints for temporary variables.
...
Split IrValue.kt into a subpackage.
2016-10-18 09:08:09 +03:00
Dmitry Petrov
177acaabf5
Refactor top-down generation.
2016-10-18 09:08:08 +03:00
Dmitry Petrov
278dc14124
IrSingleExpressionValue
2016-10-18 09:08:08 +03:00
Dmitry Petrov
d7412c449e
IR: augmented assignment for array access expressions
2016-10-18 09:08:07 +03:00
Dmitry Petrov
0a57eb8ea4
IR:
...
- smart casts handling separated from expression generation
- improved infrastructure for desugaring
2016-10-18 09:08:07 +03:00
Dmitry Petrov
ecf6ab9e25
IR:
...
- Redo smart casts handling (yet again).
Front-end typing information can't be used for expressions in IR,
since it provides inferred type for PSI expressions for the last corresponding resoled call.
- Assignments handling, initial implementation.
2016-10-18 09:08:07 +03:00
Dmitry Petrov
c4bbcadb34
IR: Collapse desugared blocks as a postprocessing pass.
2016-10-18 09:08:06 +03:00
Dmitry Petrov
aa7bf4637b
IR:
...
- function with expression bodies are desugared to blocks with return statement;
- property initializers are generated as regular expression bodies.
2016-10-18 09:08:06 +03:00
Dmitry Petrov
2707d33ca7
IR: dummy declarations for class/object and typealias
2016-10-18 09:08:05 +03:00
Dmitry Petrov
f903fb8ad3
IR: destructuring declarations in regular statements
2016-10-18 09:08:05 +03:00
Dmitry Petrov
37cce98d19
Simplify IrElement hierarchy.
...
IrDeclaration can be now hosted under IrExpression (as IrStatement).
2016-10-18 09:08:04 +03:00
Dmitry Petrov
55eb79febf
Make IrExpression.type nullable.
2016-10-18 09:08:04 +03:00
Dmitry Petrov
030111b130
IrBody is no longer a declaration owner.
...
Local declarations in expression tree.
Call generator supports argument reordering.
2016-10-18 09:08:03 +03:00
Dmitry Petrov
b1af1af8a4
IR test tests: use that magical '<<<' everywhere. No need for 'IR_FILE_TXT'.
2016-10-18 09:08:03 +03:00
Dmitry Petrov
4ccf3c3590
Refactor calls and related expressions
2016-10-18 09:08:02 +03:00
Dmitry Petrov
3e11f35918
Qualified expressions and safe calls
2016-10-18 09:08:02 +03:00
Dmitry Petrov
b80782c295
Testing framework: allow comparing subtrees starting at a given line with expected dump text.
2016-10-18 09:08:02 +03:00
Dmitry Petrov
c93666f6f1
- IR expressions for calls & references
...
- first calls "parsed"
2016-10-18 09:08:01 +03:00
Dmitry Petrov
c09ba962c4
minor: refactor TypeAliasQualifier, it doesn't have to provide type alias descriptor
2016-10-18 09:07:43 +03:00
Dmitry Petrov
dc7a90a081
Minor: IrFileElementFactory -> IrDeclarationFactory
2016-10-18 09:06:57 +03:00
Dmitry Petrov
7b3ae8ffec
Use source offset ranges instead of source locations.
2016-10-18 09:06:56 +03:00
Dmitry Petrov
5e609c7de4
Declaration IR refactoring.
2016-10-18 09:06:56 +03:00
Dmitry Petrov
4f469c798c
Mutable expressions IR.
2016-10-18 09:06:55 +03:00
Dmitry Petrov
cb79f377f0
Mutable declarations IR.
2016-10-18 09:06:55 +03:00
Dmitry Petrov
64abecf996
IR elements fixes & refactorings
2016-10-18 09:06:55 +03:00
Dmitry Petrov
7879fb7084
IR: first somewhat meaningful expression IR generation
2016-10-18 09:06:54 +03:00
Dmitry Petrov
ad405f26fd
IR: first smoke test
2016-10-18 09:06:54 +03:00
Dmitry Petrov
1600037625
KT-14307, KT-14377: Run declaration checks on local type aliases.
2016-10-17 16:22:04 +03:00
Dmitry Petrov
a5d6559056
KT-14360 Microoptimizations in RedundantCoercionToUnitTransformer
2016-10-17 10:13:03 +03:00
Dmitry Petrov
753a558bcb
KT-14352 Record short reference to companion object via type alias,
...
so that it would be checked properly.
2016-10-17 10:11:58 +03:00
Dmitry Petrov
ac675784c1
KT-14357 Run RedundantCoercionToUnitTransformer before DeadCodeEliminatingMethodTransformer.
...
Remove empty try-catch blocks in DeadCodeEliminatingMethodTransformer.
2016-10-17 10:10:46 +03:00
Zalim Bashorov
c21e1eb857
Report error when try to use unsupported reflection API in Kotlin JS; allow to use kotlin.Any members on reflection classes for both platforms.
2016-10-14 19:44:58 +03:00
Zalim Bashorov
77ceb3efb9
Don't render descriptors outside of modules directly mentioned in tests, e.g. descriptors from libraries.
2016-10-14 19:44:56 +03:00
Zalim Bashorov
279b4dc03c
Remove obsolete test about class literals is not supported
2016-10-14 19:44:55 +03:00
Denis Zharkov
48c33333ee
Do not add special names to scopes even partially
...
See 7a41d13b41
It's may be dangerous to call `addDescriptor` and then
not to add descriptor into the variablesAndClassifiersByName map
2016-10-14 15:50:31 +03:00
Nikolay Krasko
87b628a3f7
Generate 'nop' instruction on lambda call when everything on line is going to be eliminated by inliner (KT-6477)
...
(cherry picked from commit 462bdb2)
#KT-6477 Fixed
2016-10-14 14:52:06 +03:00
Valentin Kipyatkov
2b2042860d
Fixed ParameterName annotation target
2016-10-14 12:24:43 +03:00
Michael Bogdanov
050139220d
Fix for KT-14330 java.lang.IllegalArgumentException: Parameter specified as non-null is null: method ... parameter value
...
#KT-14330 Fixed
2016-10-14 10:56:15 +03:00
Dmitry Petrov
fbe3f1537f
Make static initializer classes for inheriting multifile class parts annotated as SYNTHETIC_CLASS.
2016-10-14 10:41:20 +03:00
Dmitry Petrov
47b3420a65
Minor: testData fix after rebase
2016-10-13 18:03:00 +03:00
Dmitry Petrov
e7ca00d91b
Support @SinceKotlin annotation for type aliases.
2016-10-13 17:52:21 +03:00