Dmitry Savvinov
d08bed888c
[Core API] Introduce useTypeRefinement analysis flag
2019-07-30 12:41:36 +03:00
Dmitriy Novozhilov
2fe3a23183
[Core API] Introduce KotlinTypeRefiner component
2019-07-30 12:41:36 +03:00
Dmitry Savvinov
fe78e153f7
[Misc] Introduce helper-method 'IntersectionTypeConstructor.createType()'
2019-07-30 12:41:36 +03:00
Dmitriy Novozhilov
f026a98403
[Misc] Make NewKotlinTypeChecker non-static
2019-07-30 12:41:36 +03:00
Denis Zharkov
c1144f35f1
[Misc] Move TypeAliasExpander to core
2019-07-30 12:41:35 +03:00
Denis Zharkov
7ba3f7e599
[Misc] Make ArgumentTypeResolver::isSubtypeOfForArgumentType not static
...
Later, it will use type-refinement component that'll be injected there
2019-07-30 12:41:35 +03:00
Denis Zharkov
529763b9bd
[Misc] Get rid of public Companion methods in SmartCastManager
...
It's necessary for type-refinement component to be injected
2019-07-30 12:41:35 +03:00
Steven Schäfer
3ce731cf7c
Avoid eager deserialization of array classes in ArrayConstructorLowering
2019-07-30 10:35:00 +02:00
Ilmir Usmanov
2910d8e9b2
Also check predecessors of PUSH Unit in unit tail-call optimization
2019-07-29 20:34:53 +03:00
Ilmir Usmanov
e60674f5e1
Fix test data
2019-07-29 20:34:51 +03:00
Ilmir Usmanov
cc06798e2c
Implement unit suspend functions tail-call optimisation
...
Unlike previously, this optimisation works on every callee return type.
Tail-calls inside unit functions can be either
INVOKE...
ARETURN
or
INVOKE
POP
GETSTATIC kotlin/Unit.INSTANCE
ARETURN
The first pattern is already covered. The second one is a bit tricky,
since we cannot just assume than the function is tail-call, we also need
to check whether the callee returned COROUTINE_SUSPENDED marker.
Thus, resulting bytecode of function's 'epilogue' look like
DUP
INVOKESTATIC getCOROUTINE_SUSPENDED
IF_ACMPNE LN
ARETURN
LN:
POP
#KT-28938 Fixed
2019-07-29 20:34:48 +03:00
Alexey Tsvetkov
317c39f27d
Enable assertions in Kotlin Compile Daemon process
...
#KT-32992 Fixed
2019-07-29 19:40:36 +03:00
Alexey Tsvetkov
560f1483e8
Drop MaxPermSize support from compiler daemon
...
#KT-17045 Fixed
2019-07-29 19:38:40 +03:00
Igor Chevdar
e575ca4f53
[IR] Fixed parents during constructors moving
2019-07-29 16:18:15 +03:00
Nikolay Krasko
58f294a757
Fix kotlin compiler tests in 192 (KT-32193)
...
#KT-32193 Fixed
2019-07-26 12:38:40 +03:00
Georgy Bronnikov
3729c4e770
JVM: simplify choice of wrapped receiver descriptors
2019-07-26 11:57:51 +03:00
Ilya Chernikov
0072f8c265
Improve JSR-223 engine diagnostics
...
also abstract invoke wrapper creation
2019-07-26 08:55:14 +02:00
Victor Petukhov
e25b315319
Introduce -Xpolymorphic-signature compiler flag as more priority than -XXLanguage:+PolymorphicSignature
2019-07-26 09:01:25 +03:00
Victor Petukhov
944ee8fcd5
Introduce -Xinline-classes compiler flag as more priority than -XXLanguage:+InlineClasses
2019-07-26 09:01:25 +03:00
Vyacheslav Gerasimov
3b78ef9cb2
as36: Add bunches for AS 3.6 C6 based on 192 platform
2019-07-25 20:50:02 +03:00
Yan Zhulanow
ccff347ffc
Kapt: Attach generated Kotlin sources in 'compilation' mode (KT-32535)
2019-07-26 02:40:32 +09:00
Alexey Tsvetkov
a4c62d156f
Make lookup storage addAll order independent
...
Lookup storage output files could differ for projects
with different absolute paths.
This happened because, paths for lookups were
relativized only before writing to the underlying storage.
Storing absolute paths in a hash table could
result in different order of adding files to the lookup storage.
This commit fixes the issue by sorting lookups and files in
LookupStorage#addAll
#KT-32674 Fixed
2019-07-25 20:30:56 +03:00
Alexander Podkhalyuzin
66fdc148be
Revert strong references for compiler only
...
#KT-32521 Fixed
2019-07-25 16:13:47 +03:00
Alexey Tsvetkov
f3112f752d
Inherit max metaspace size of client VM for Kotlin compile daemon
...
#KT-32521 In Progress
#KT-32950 Fixed
2019-07-25 16:13:47 +03:00
Ilmir Usmanov
a35d405892
Do not generate accessor if private function is accessed from
...
coroutines intrinsic lambda.
The logic is if the lambda is crossinline we need to generate the
accessor. However, suspendCoroutine's and
suspendCoroutineUninterceptedOrReturn's parameter, despite being
crossinline, are effectively inline. Thus, we do not need to generate
the accessor.
#KT-27503 Fixed
2019-07-25 15:25:59 +03:00
Ilya Kirillov
f79b282c60
New J2K: add better support of implicit functional interfaces
...
#KT-32702 fixed
#KT-19327 fixed
2019-07-25 14:34:34 +03:00
Mikhail Glukhikh
2381aa330a
FIR: fix delegate expression consistency tests
2019-07-25 09:46:46 +03:00
Mikhail Glukhikh
d32e5065c5
FIR: implementation of delegateProvider in delegate resolve
2019-07-25 09:46:42 +03:00
Mikhail Glukhikh
213f951da3
FIR: partial implementation of delegate resolve #KT-32217 Fixed
2019-07-25 09:46:34 +03:00
Mikhail Glukhikh
63b7fa70f9
FIR2IR: add extension receiver parameters to functions
2019-07-25 09:46:29 +03:00
Georgy Bronnikov
f66b475867
Create wrapped receiver descriptors where needed
2019-07-24 20:25:47 +03:00
Nicolay Mitropolsky
5f9660cd33
KtLightParameter introduced as interface
2019-07-24 10:11:45 +03:00
Nicolay Mitropolsky
50158e508a
org.jetbrains.kotlin.asJava.elements.LightParameter converted to Kotlin
...
to avoid clashes in `getMethod` with `KtLightParameter`
2019-07-24 10:11:44 +03:00
Nicolay Mitropolsky
7dcd3849e0
org.jetbrains.kotlin.asJava.elements.LightParameter converted to Kotlin: Rename .java to .kt
2019-07-24 10:11:44 +03:00
Nicolay Mitropolsky
8982a49dcb
renaming KtLightParameter to KtLightParameterImpl
2019-07-24 10:11:44 +03:00
Ilmir Usmanov
56b6b957d1
Generate line numbers for RHS of elvis expression if both LHS and RHS
...
are at the same line.
#KT-32689 Fixed
2019-07-23 18:00:44 +03:00
Alexander Udalov
1f36f60f43
JVM IR: remove CrIrType, use class container in callable reference lowerings
...
This is possible now because after 3a9b94235f , 0423d0f41e and
5341de253f , all top level functions/properties in sources and in
binaries have a corresponding containing facade class
2019-07-23 16:39:38 +02:00
Igor Chevdar
a048a11074
Enabled/disabled some tests for K/N
2019-07-23 19:16:46 +05:00
Igor Chevdar
c4da5cb95c
[IR] Added IrType.isKSuspendFunction()
2019-07-23 19:16:46 +05:00
Alexander Udalov
35e4295e16
IR: deduplicate code in DeepCopyWithWrappedDescriptors/DeepCopyIrTreeWithDescriptors
2019-07-22 19:47:25 +02:00
Alexander Udalov
96efae2b48
IR: fix endless recursion in IrTypeSystemContext.isMarkedNullable
2019-07-22 19:47:25 +02:00
Mikhael Bogdanov
74e49d91ca
Proper implement 'classForImplicitThis'
2019-07-22 10:35:03 +02:00
Dmitriy Novozhilov
b99efb9a2b
[NI] Look for type variables in captured flexible types
...
#KT-32434 Fixed
2019-07-22 11:08:39 +03:00
Dmitriy Novozhilov
58b4ab35f0
[NI] Fix passing callable references to suspend functions as functional parameter
...
#KT-32452
2019-07-22 11:06:19 +03:00
Dmitry Petrov
127be9be03
psi2ir: Fix KT-30796 ErrorType for '?:' in OI
2019-07-22 09:46:21 +03:00
Ilya Chernikov
c0804000eb
Shorten temp paths used in tests
...
#KT-32490 fixed
2019-07-19 16:37:50 +02:00
Dmitry Petrov
dd3f8ecaac
IR BE Common: Provisional IrFunctionExpression lowering
...
Transforms IrFunctionExpression elements to local function references,
as it was done before IrFunctionExpression introduction.
2019-07-19 11:36:19 +03:00
Dmitry Petrov
92984b2626
Serialize/deserialize IrFunctionExpression
2019-07-19 11:36:19 +03:00
Dmitry Petrov
ffd9b45ef3
IrFunctionExpression: add 'origin'
...
This is actually either a LAMBDA or an ANONYMOUS_FUNCTION.
Not quite sure if it's really required, but some tools such as IR-based
decompiler might require this information.
2019-07-19 11:36:19 +03:00
Dmitry Petrov
41b59f9b9a
IrFunctionExpression: update fir2ir tests
2019-07-19 11:36:19 +03:00