Mikhael Bogdanov
c42984ca33
Generate proper flags for <clinit>
2020-01-29 16:59:56 +01:00
Mikhael Bogdanov
6c07dbf351
JVM_IR. Support type annotations
2020-01-29 16:59:55 +01:00
Mikhail Glukhikh
e43a57bdee
[FIR] Do not process constructors in super-type scopes
2020-01-29 15:58:04 +03:00
Dmitry Petrov
bf9673a0a2
PSI2IR: SAM conversion should be performed once for index variables
...
Given esoteric code as in 'caoWithAdaptationForSam.kt', we should make
sure that we pass same objects to 'get' and 'set'.
2020-01-29 15:30:07 +03:00
Mikhail Zarechenskiy
e42f16c95c
[NI] Fix construction of common system for builder inference
2020-01-29 11:43:15 +03:00
Mikhail Zarechenskiy
e3b6104489
[NI] Map vararg to Array if it's resolved against type variable
...
While this behavior is questionable, it's consistent with OI and can
be changed in future
#KT-36201 Fixed
2020-01-29 11:43:14 +03:00
Mikhail Zarechenskiy
35f6810b58
[NI] Do not incorporate constraints that are needed only for nullability
2020-01-29 11:43:13 +03:00
Mikhail Zarechenskiy
ce690d8a1d
Add test for obsolete issue
...
#KT-36121 Obsolete
2020-01-29 11:43:11 +03:00
Mikhail Glukhikh
3f95ac341c
[FIR] Implement SAM candidates discrimination
2020-01-29 11:09:28 +03:00
Ilya Gorbunov
3bd3d61469
Test experimental coroutines version requirement on JVM only
...
Modify 'suspendFun' and 'nestedClassMembers' tests so that pre-release
suspend functions are tested only on JVM, where they are still supported.
2020-01-29 09:12:42 +03:00
Ilya Gorbunov
c28710419a
Drop noStdLib coroutines tests
...
They were disabled anyway because coroutines can't be compiled without
the support API in stdlib
#KT-36083
2020-01-29 09:12:42 +03:00
Ilya Gorbunov
9f8e3dad33
Add coroutines-compat jar dependency to those tests that require it
...
#KT-36083
2020-01-29 09:12:40 +03:00
Ilya Gorbunov
cef81e11b7
Do not generate JS tests for experimental coroutines support
...
#KT-36083
2020-01-29 09:12:40 +03:00
Denis Zharkov
c295f2dc25
FIR: Reimplement implicit types calculator
...
Make it works through a single component tracking computation status
instead of storing it in the nodes
2020-01-28 17:03:50 +03:00
max-kammerer
f256547cc8
Revert "JVM_IR: Use direct field access instead of calling certain accessors."
...
This reverts commit 62f9e7a810 .
2020-01-28 14:55:56 +01:00
Dmitriy Novozhilov
57a1342aac
[FIR] Fix creating DefinitelyNotNullTypes
...
Also fix substitutions to them
2020-01-28 14:14:21 +03:00
Dmitriy Novozhilov
7d8363d6aa
[FIR] Use Function<R> as super type for all FunctionNtypes
2020-01-28 14:14:20 +03:00
Mads Ager
62f9e7a810
JVM_IR: Use direct field access instead of calling certain accessors.
...
Final default properties accessors that access a backing field
on the same class can be replaced by direct field use.
Perform the optimization late in the pipeline to allow lowerings
to expose more opportunities for optimizations.
2020-01-28 10:42:15 +01:00
Georgy Bronnikov
8f4b4007fe
JVM_IR: Add test for compiling against cross-platform Klib
2020-01-28 12:19:43 +03:00
Georgy Bronnikov
5ede65c525
JVM_IR: read Klib
2020-01-28 12:19:43 +03:00
pyos
f1669e2230
IR: mark interface delegate fields as synthetic
...
This requires separating them origin-wise from property delegates.
2020-01-28 10:35:22 +03:00
Victor Petukhov
f7626d6474
Exclude reporting IMPLICIT_NOTHING_AS_TYPE_PARAMETER warning for suspend lambdas
...
^KT-36101 Fixed
2020-01-27 18:12:58 +03:00
Dmitry Petrov
c939fb7b05
PSI2IR: Fix argument adaptation for unbound references
...
NB front-end "lies".
2020-01-27 17:03:48 +03:00
Dmitry Petrov
0152f19d5f
PSI2IR: Use substituted value parameter in function reference adaptation
2020-01-27 17:03:48 +03:00
Mikhael Bogdanov
6e94eddb71
JVM_IR. Fix bridge generation
2020-01-27 14:53:36 +01:00
Mads Ager
e327b174a2
IR: Use name \$\$delegate_n for the field for interface delegation.
...
Without this change, these fields could have names such as
`<no name provided>$SuperClass$delegate` for something like
`object SuperClass by I { }`.
2020-01-27 15:28:27 +03:00
Ilya Chernikov
a37ec5a062
[minor] "fix" fir testdata for KT-32792 & KT-34857
2020-01-27 13:24:49 +01:00
Mikhail Glukhikh
f949b48b4a
[FIR] Swap priority of kotlin libraries / built-ins #KT-35948 Fixed
2020-01-27 13:21:54 +03:00
Ilya Chernikov
9623b0eedb
Report error instead of assertion when property is used as operator
...
#KT-34857 fixed
2020-01-27 10:10:44 +01:00
Ilya Chernikov
a1acb4afaf
Return correct PSI expression for EmptyLabeledReturn
...
Fixes diagnostic reporting for appropriate constraint error
#kt-32792 fixed
2020-01-27 10:10:44 +01:00
Mikhail Zarechenskiy
00469712d1
[NI] Don't use only platform specific checks for FIC in inference
2020-01-27 11:03:55 +03:00
Mikhail Glukhikh
7721eaab23
[FIR] Transform qualified access / callable refs type arguments properly
2020-01-27 00:34:17 +03:00
Mikhail Glukhikh
ef8485a232
FIR2IR: change receiver handling in case it's an outer object
...
Before this commit, FIR2IR expected that FIR will have no receiver
in this case. However, now FIR *has* receiver, so we have to convert
it to object correctly
2020-01-27 00:34:16 +03:00
Mikhail Glukhikh
14204a842a
Refactoring & clarification: implement new FIR tower resolver
2020-01-27 00:34:16 +03:00
simon.ogorodnik
a3ab763f0b
[FIR] Get rid of processors in FirScope
2020-01-27 00:34:16 +03:00
Victor Petukhov
5c6e710013
Revert "Workaround an inliner problem upon which the compiler code itself stumbled ^KT-35856 Fixed"
...
This reverts commit 59175912
2020-01-24 16:41:22 +03:00
Dmitry Petrov
90b250d241
PSI2IR: Fix bound inner class constructor callable reference generation
2020-01-24 16:32:07 +03:00
Dmitriy Novozhilov
20ac606df4
Add js runtime to failing blackbox test
2020-01-24 14:17:44 +03:00
Alexander Udalov
2fca7f1a54
Add codegen tests for old behavior of null checks
...
#KT-22275
2020-01-24 11:56:28 +01:00
Dmitry Petrov
c540116b71
IR: additional callable reference adapter stuff in IR
...
- IrFunctionReference.reflectionTarget: IrFunctionSymbol?
- add separate declaration origin for callable reference adapters
- bump IR ABI version
2020-01-24 11:21:26 +03:00
Dmitry Petrov
57bbfbbfcc
PSI2IR: capture adapted reference receiver to a local val if required
2020-01-24 11:21:25 +03:00
Dmitry Petrov
38b90b7fbd
Minor: move callable reference IR tests to a separate directory
2020-01-24 11:21:25 +03:00
Dmitry Petrov
c5f14a29a4
PSI2IR: Generate adapted callable references
...
Callable reference is "adapted" if it requires some adaptation to an
expected function type - e.g., when a reference to
```
fun foo(vararg xs: Int): Int
```
is used where `(Int, Int, Int) -> Int` is expected.
For such callable references we generate the following IR (in
pseudo-Kotlin):
```
{
fun foo'(p0: Int, p1: Int, p2: Int): Int {
return [| foo(p0, p1, p2) |]
}
::foo'
}
```
where `[| foo(p0, p1, p2) |]` is calling function `foo` with arguments
`p0`, `p1`, and `p2`, as they were mapped by callable reference
resolution.
2020-01-24 11:21:25 +03:00
Dmitriy Novozhilov
3dfad4f0c3
[FIR] Fix generating properties for varargs in primary constructors
2020-01-24 10:57:52 +03:00
Mark Punzalan
7329a1641a
[JVM IR] Fix lambdaInLocalFunction.kt by adding helper methods that
...
return the target backend under test.
2020-01-23 19:16:27 +01:00
Ilya Gorbunov
39078342ee
Remove mod function deprecation tests
...
#KT-26654
2020-01-23 19:28:23 +03:00
Ilya Gorbunov
b1766b167f
Remove mod function usage from tests
...
#KT-26654
2020-01-23 19:28:23 +03:00
Ilya Gorbunov
9fffa61596
Update builtin serialization tests
...
#KT-26654
2020-01-23 19:28:22 +03:00
Pavel Kirpichenkov
78c9bbcc0d
[NI] Soften restictions on using Nothing as proper constraint for full call completion
...
Consider lower `Nothing` constraint non-proper only if there is a dependant not analyzed postponed atom.
Early completion to `Nothing` provides data flow info for smart casts.
KT-35668 Fixed
2020-01-23 19:12:01 +03:00
Mikhail Zarechenskiy
f1d9177112
[NI] Fix issue with returning non-deparenthesized lambdas from labmdas
...
#KT-36080 Fixed
2020-01-23 18:56:02 +03:00