Nikolay Krasko
bfda9cc57b
Fix inspection Integer.toString() -> int.toString() reports
2019-04-09 11:47:30 +03:00
pyos
fb0261bfc1
Remove JvmDescriptorWithExtraFlags and fix syntheticness
...
(of fields and classes, it is already correct for methods).
2019-04-09 08:18:14 +02:00
pyos
3fdcf8376f
Add IR equivalent of the WriteFlags test
2019-04-09 08:11:29 +02:00
Ilmir Usmanov
2dee506022
Generate suspend markers for inline and crossinline parameters
...
if they are not inlined, but directly called.
Previously, all inline and crossinline lambda calls were treated by
codegen as if they are always going to be inlined. However, this is not
always the case.
Note, that we cannot generate these markers during codegen, since we
can inline code with no suspension points, but the whole inlined code
will become one giant suspension point. This, of course, breaks
tail-call optimization and, hence, slows down cold streams.
Because of that, we generate these markers, when we are sure, that they
are not going to be inlined. The only place, in which we know that, is
the inliner. During inlining of the inline function, we check, whether
the parameter is inline or crossinline and whether it is not an inline
lambda. If these checks pass, we generate the markers. Noinline
parameters are already covered by the codegen.
#KT-30706 Fixed
#KT-26925 Fixed
#KT-26418 Fixed
2019-04-08 17:28:37 +03:00
Mikhael Bogdanov
eb1bfac83f
Minor. Fix test data
2019-04-08 16:23:00 +02:00
Mikhael Bogdanov
10e3dfa980
Support anonymous function as inline parameters
2019-04-08 13:10:25 +02:00
Mikhael Bogdanov
2a3a9bb5fc
Support properties reificaton
2019-04-08 13:10:25 +02:00
Mikhael Bogdanov
944c200a5d
Initial support of try as expression in JVM IR
2019-04-08 13:10:24 +02:00
Mikhael Bogdanov
30aeb8dc0a
Support finally blocks in non-local returns
2019-04-08 13:10:23 +02:00
Mikhael Bogdanov
4c59d161d4
Support basic reification in IR
2019-04-08 13:10:22 +02:00
Mikhael Bogdanov
02cb1d7dcc
Change return target in $default function on transformation
2019-04-08 13:10:22 +02:00
Mikhael Bogdanov
694a7c329d
Initial support of non-local return in IR
2019-04-08 13:10:21 +02:00
Mikhael Bogdanov
3f9154a4a1
Remove declaration that would be inlined
2019-04-08 13:10:20 +02:00
Alexander Udalov
dd2c7aff6e
Implement IrType.equals/hashCode via isEqualTo/toHashCode
2019-04-08 13:06:01 +03:00
Alexander Udalov
8cce5dc8de
Fix missing return for checkViaDescriptors in FqNameEqualityChecker
2019-04-08 13:06:01 +03:00
Alexander Udalov
bdfe82cfff
Fix incorrect condition in CheckIrElementVisitor.ensureTypeIs
...
Apparently it has no effect on behavior of tests because no backend uses
the checkTypes mode of IR validation
2019-04-08 13:06:01 +03:00
Alexander Udalov
5bafd4008f
Use correct class loader to load .kotlin_builtins in reflection
...
#KT-30749 Fixed
2019-04-08 12:43:53 +03:00
Igor Yakovlev
da4d8a8c90
Parser invalid error advancing for postfix type parameters list #KT-30835 Fixed
2019-04-05 19:50:42 +03:00
Dmitry Petrov
bbeb65905e
KT-30780 Fix erased inline class context in class context hierarchy
...
In SourceCompilerForInline we could enter ERASED_INLINE_CLASS context
from containing declaration context. That broke codegen context
hierarchy invariants assumed in accessor generation.
2019-04-05 17:27:04 +03:00
Mikhail Glukhikh
e1915ec99e
FIR2IR: add bunch file for 181 to avoid compilation problems
2019-04-05 16:18:59 +03:00
Mikhail Glukhikh
ee28467a47
Raw FIR: add work-around for deeply nested String interpolations
...
Controversial (but prevents total kotlin test failing)
Related to KT-29222
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
881073b1c9
Add basic FIR -> IR converter with a set of text tests
...
Tests duplicate IrTextTestCaseGenerated
#KT-24065 Fixed
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
92adfd8946
Add stub implementation of compileTimeInitializer in wrapped descriptors
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
d736a7da6b
Raw FIR: get rid of array gets, use array sets only for modifications
...
(a[b] += c etc. cannot be replaced with get/set calls easily)
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
a0c4e2f05f
Raw FIR: convert in to contains and !in to contains.not
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
4482a8f794
Remove FirOperation.RANGE which was effectively unused
...
Associated KtTokens.RANGE is included into convention call table
2019-04-05 16:18:58 +03:00
Mikhail Glukhikh
007edcb4a4
Raw FIR: generate convention / infix binary expressions with receiver
2019-04-05 16:18:57 +03:00
Dmitry Gridin
4f8e29ad23
Fix import quickfix if import has import alias
...
#KT-30669 Fixed
#KT-7380 Fixed
#KT-30663 Fixed
2019-04-05 20:01:11 +07:00
Dmitriy Novozhilov
d8cbeb8d15
Add regression test for SPREAD_OF_NULLABLE diagnostic
...
#KT-30808 Fixed
2019-04-05 14:17:34 +03:00
Mikhail Zarechenskiy
ff2ce316e1
[NI] Resolve callable reference eagerly at the end of resolution parts
...
This way we'll resolve less callable references later as we'll have
more constraints to clip wrong candidates for callable references
2019-04-05 13:16:58 +03:00
Mikhail Zarechenskiy
c3bc6ef2fa
[NI] Make callable references more robust to overloads of outer call
...
#KT-30676 Fixed
2019-04-05 13:16:54 +03:00
Mikhail Zarechenskiy
20a7f387bf
[NI] Resolve callable reference eagerly if there is only one candidate
...
#KT-30737 Fixed
2019-04-05 13:15:57 +03:00
Dmitriy Novozhilov
aa96a05469
[NI] Fix initial data flow info for analyzing lambdas
...
#KT-30734 Fixed
2019-04-05 12:52:29 +03:00
Anton Bannykh
b7ffdb9fde
JS IR: support kotlin.test
2019-04-05 12:30:21 +03:00
Anton Bannykh
d04a0246db
make smartJavaExec composable with NoDebugJavaExec
2019-04-05 12:30:21 +03:00
Anton Bannykh
ad4c2144a7
JS IR: moved klib creation to the serialization_test module
2019-04-05 12:30:20 +03:00
Anton Bannykh
0f183ed662
JS IR: split compilation and deserialization
2019-04-05 12:30:20 +03:00
Anton Bannykh
08785b7cea
JS IR: split serialization into a separate module
2019-04-05 12:30:20 +03:00
Anton Bannykh
42f576f033
IR: move serialization to serialization.common
2019-04-05 12:30:20 +03:00
Steven Schäfer
59c5d8bdb8
Add an implicit cast to Unit in returns from a constructor.
2019-04-05 12:05:53 +03:00
Vasily Levchenko
826f55ecb4
Merge pull request #2240 from JetBrains/rr/minamoto/ir-IrFunctionInlineBodyImpl
...
[IR] introduced additional field 'inlineFunctionSymbol' to IrReturnableBlock
2019-04-05 11:49:08 +03:00
Vasily Levchenko
1ebf7faedc
[IR][refactoring] g/c IrReturnableBlock[Impl]
...
- drop calculatable from 'inlineFunctionSymbol' fields: 'sourceFileSymbol' and 'sourceFileName' and
replace then with extension values
- drop unused constructors.
2019-04-05 11:47:45 +03:00
pyos
05e09df683
Throw a clearer error on unexpected IR nodes in expressions
2019-04-04 21:39:49 +02:00
pyos
c3a74ded0e
Make isDefaultValueForType shorter
2019-04-04 21:39:47 +02:00
pyos
fb55e34b8f
Merge generateBreakOrContinueExpression and doFinallyOnReturn
2019-04-04 21:39:46 +02:00
pyos
c0af91b6d1
Inline markFunctionLineNumber
2019-04-04 21:11:39 +02:00
pyos
9f28b2042a
Move common declarations up
2019-04-04 21:11:37 +02:00
pyos
a7dbd08f45
Inline genFinallyBlockOrGoto
2019-04-04 21:11:35 +02:00
pyos
6690e50dd2
Remove direct block stack manipulation
2019-04-04 21:11:33 +02:00
pyos
57450912fb
Remove a couple unused classes, inline a short method
2019-04-04 21:11:31 +02:00