Mikhael Bogdanov
02d9c526e2
Proper resort variables on inlining lowered ir closures
...
Original problem is that lowered ir closures doesn't meet inliner expectations
about captured variable position in inlining method.
E.g.: Call 'foo(valueParam) { capturedParam }' to
inline function 'foo' with declaration
inline fun foo(valueParam: Foo, inlineParamWithCaptured: Bar.() ->) ....
is reorganized through inlining to equivalent call foo(valueParam, capturedParam1, cp2 ...).
But lowered closure for lambda parameter has totally different parameters order:
fun loweredLambda$x(extensionReceiver, captured1, cp2..., valueParam1, vp2...)
So before inlining lowered closure should be transformed to
fun loweredLambda$x(extensionReceiver, valueParam1, vp2..., captured1, cp2..)
#KT-28547 Fixed
2019-01-03 07:57:36 +01:00
Mikhael Bogdanov
fcf8ea44b2
Update copyright in generated FIR related stuff
2019-01-03 07:45:16 +01:00
Mikhael Bogdanov
e963c52c80
Update copyright in generated non-compiler tests
2019-01-02 13:34:03 +01:00
Mikhael Bogdanov
e0bcba5c0e
Add test for obsolete KT-17431 issue
...
#KT-17431 Obsolete
2019-01-02 12:37:07 +01:00
Mikhael Bogdanov
cf47bc0130
Update copyright in generated compiler tests
2019-01-02 12:37:06 +01:00
Mikhael Bogdanov
6bf70a5dd2
Properly find invoke method on default lambda inlining
...
In general case parameter type could differ from actual default lambda type.
E.g.: fun inlineFun(s: (Child) -> Base = { a: Base -> a as Child}),
where type of default lambda is '(Base) -> Child'.
In such case we should find somehow actual invoke method in bytecode knowing
only name, number of parameters and that's actual invoke is non-synthetic
regardless of bridge one.
#KT-21946 Fixed
2019-01-02 12:37:06 +01:00
Nikita Katkov
4db9174b4d
Error on calling suspend functions inside Lock.withLock body
...
See SuspensionPointInsideCriticalSectionChecker
2018-12-28 19:56:26 +03:00
Ilmir Usmanov
1d52fb2e26
Fix test data
2018-12-28 19:51:59 +03:00
Ilmir Usmanov
8a01da6ec6
Support val initialization in non-inline function with EXACTLY_ONCE effect
...
by generating a box for the value.
#KT-26126 Fixed
2018-12-28 15:09:11 +03:00
Ilmir Usmanov
a52f430d8f
Put default value (null or zero) to slot for uninitialized values
...
This way range of the variable is correct in LVT.
#KT-24672 Fixed
2018-12-28 15:09:07 +03:00
Alexander Udalov
8ab9226805
Fix loading default Java annotation values in actual typealias from binary classes
...
#KT-22704 Fixed
2018-12-28 13:02:15 +01:00
Alexander Udalov
3fee84b966
Use fast .class file reading implementation in boxAgainstJava tests
...
Since these tests compile Kotlin code against compiled Java code, it's
only reasonable to use the same .class file reading implementation as is
used in production for the same purpose
2018-12-28 12:53:10 +01:00
Ilmir Usmanov
871134cff8
Update test data
...
#KT-28309
2018-12-28 14:18:39 +03:00
Ilmir Usmanov
666fec41b9
Do not spill fake variables
...
#KT-28309
2018-12-28 14:18:39 +03:00
Ilmir Usmanov
ab472793ed
Add continuation parameter of suspend lambda's invoke to frame map
...
thus it will not overlap with $i$a and $i$f fake variables.
#KT-28309
2018-12-28 14:18:38 +03:00
Ilmir Usmanov
a107b5d6b6
Set type of inliner's fake variable slots to int by storing 0
...
Otherwise, D8 drops the whole LVT.
#KT-28309 Fixed
2018-12-28 14:18:37 +03:00
Nicolay Mitropolsky
55404ea00d
191: Making MockExternalAnnotationsManager not throwing exceptions in non action-required cases
2018-12-28 11:56:08 +03:00
Simon Ogorodnik
cfb446df9e
Move FIR tests to fir modules
2018-12-27 21:32:22 +03:00
Mikhail Glukhikh
95af0268b8
FIR: add transformer consistency test
2018-12-27 21:32:22 +03:00
Mikhail Glukhikh
cdc536b147
Add visitor consistency test
2018-12-27 21:32:21 +03:00
Mikhail Glukhikh
5716bda15d
Raw FIR builder: add performance test to build FIR for all Kotlin
...
#KT-24086 Fixed
2018-12-27 21:32:21 +03:00
Nicolay Mitropolsky
ebd6caaa71
Light-annotations: fix for reading class-literal varargs (KT-29027, IDEA-204252)
2018-12-27 16:04:05 +03:00
Alexander Udalov
bcb220b919
Minor, uncomment previously non-working code in test data
2018-12-27 13:12:38 +01:00
Nikolay Krasko
5a40fc8679
Add UI options for comments generation (KT-5590)
...
#KT-5590 Fixed
2018-12-26 21:10:03 +03:00
Nikolay Krasko
571ee4a1fe
Don't ruin indentation for comments inside expression declarations (KT-23295)
...
#KT-23295 Fixed
2018-12-26 15:39:40 +03:00
Nikolay Krasko
3e55b6e9f5
Consider qualified name is null if some part is null (EA-126499)
2018-12-26 15:39:39 +03:00
Mikhail Glukhikh
c0c9841e62
Switch laziness OFF in script light classes tests
...
Laziness works no more in this tests after dummyContextProvider is removed
for script light classes (see fix of KT-25395).
However, now 2/2 script light classes tests still fail in IDE mode,
because after fix of KT-26505 IDE light classes do not see
ScriptTemplateWithArgs as super-class
2018-12-26 15:11:26 +03:00
Mikhail Glukhikh
a9147ff446
More tests for KT-28997, fix isLocal for anonymous object in script
2018-12-26 12:53:25 +03:00
Mikhail Glukhikh
661ac711c0
Fix light class generation for local classes in scripts
...
Before this commit, we used script context for all classes
defined in script. However, for local classes in scripts it's mistake,
and now we generate them as usual, despite of the fact we are in script.
#KT-28997 Fixed
2018-12-26 12:53:24 +03:00
Sergey Rostov
883970fadb
Add explicit dependencies to nullable annotations
2018-12-26 09:07:06 +03:00
Sergey Rostov
423653d225
JPS build: workarounds for idea importing
2018-12-26 09:02:44 +03:00
Sergey Rostov
ea0cf659b0
AbstractMultiPlatformIntegrationTest: search stdlib-common in dist
2018-12-26 08:43:00 +03:00
Sergey Rostov
c6b4117fb9
ScriptGenTest: search classes in JPS from native IDEA gradle import output too
2018-12-26 08:43:00 +03:00
victor.petukhov
04fa6e8ab4
Add tests for local variables with type parameters (KT-8341)
2018-12-25 17:51:05 +03:00
victor.petukhov
a72515d822
Add tests for constructors of annotation classes with JvmOverloads (KT-25702)
2018-12-25 17:50:55 +03:00
Natalia Selezneva
9dc57567e4
Kotlin code fragments in markdown should have script definition because they are parsed as scripts
2018-12-25 15:32:27 +03:00
Dmitry Petrov
61ebe6a9aa
Minor: add non-intrinsified cases for javaObjectType/javaPrimitiveType
2018-12-25 13:23:48 +03:00
Mikhail Zarechenskiy
84222afe2f
Fix exception when expected type is subtype of a function type
...
#KT-28984 Fixed
#EA-132850 Fixed
2018-12-24 19:41:51 +03:00
Dmitry Petrov
a4897641d4
Minor: mute some tests in JS/JS_IR
2018-12-24 16:10:35 +03:00
Dmitry Petrov
6768ae02c3
Support inline classes in javaObjectType/javaPrimitiveType
...
#KT-28290 Fixed Target versions 1.3.30
2018-12-24 16:10:31 +03:00
Dmitry Petrov
5abbf3562b
Unbox possibly null inline class value mapped to primitive type
2018-12-24 16:09:48 +03:00
Dmitry Petrov
2f6c4a0472
Use original method signature to call accessor for hidden constructor
...
#KT-28855 Fixed Target versions 1.3.30
2018-12-24 16:09:44 +03:00
Ilmir Usmanov
10f0a2f660
Obtain correct captured suspend local function
...
if we call the function inside, for example, lambda.
#KT-28844 Fixed
2018-12-24 15:58:10 +03:00
Mikhael Bogdanov
ac5f5bd453
Get rid of jvm specific code in some tests
2018-12-24 13:40:40 +01:00
Mikhail Zarechenskiy
e4a4d1169e
Prohibit JvmOverloads on constructors of annotation classes
...
In LV >= 1.4 & -progressive
#KT-25702 Fixed
2018-12-24 12:48:00 +03:00
Mikhail Zarechenskiy
958aeff94b
Prohibit type parameters for local variables in LV >= 1.4 & -progressive
...
#KT-8341 Fixed
2018-12-24 12:47:58 +03:00
Mikhail Zarechenskiy
e509649132
Fix mapping of platform inline class types
...
For the inline class:
```
inline class IC(val x: Int)
```
Type (IC..IC?) should be mapped to the wrapper `IC`
because it can hold object and also because it does so for primitives
#KT-28983 Fixed
2018-12-24 12:32:22 +03:00
Mads Ager
48bd99730d
Suppress final failure which relies on line numbers.
2018-12-21 16:20:45 +01:00
Mads Ager
3a11322506
Enable bytecode text tests for the JVM_IR backend.
2018-12-21 16:20:45 +01:00
Mikhael Bogdanov
d1efac617d
Get rid of reduntant jvm parts in tests
2018-12-21 16:09:12 +01:00