Dmitriy Novozhilov
f76b57d260
[OI] Prefer candidate without @OverloadResolutionByLambdaReturnType
2020-05-29 09:36:33 +03:00
Dmitriy Novozhilov
a604404bff
[NI] Report warning if candidate was chosen using only @OverloadResolutionByLambdaReturnType
2020-05-29 09:36:33 +03:00
Dmitriy Novozhilov
82ce2e7b7c
[NI] Update annotation used in testdata
2020-05-29 09:36:32 +03:00
Ilya Gorbunov
e9ef6dbc28
Discriminate OverloadResolutionByLambdaReturnType annotated overloads...
...
instead of preferring them in case of unsolvable ambiguity.
2020-05-29 09:36:32 +03:00
Dmitriy Novozhilov
e1418a5540
[NI] Check for maximally specific candidate chosen with factory resolution
2020-05-29 09:36:32 +03:00
Dmitriy Novozhilov
e7869bd9d4
[NI] Analyse lambda in factory pattern resolution in independent context
2020-05-29 09:36:32 +03:00
Ilya Gorbunov
a0c7bece93
Overload resolution by lambda return type
...
Make compiler recognize new annotation enabling this feature.
Change overload selection algorithm to consider all overloads
with that annotation, not just the first one.
#KT-38480
#KT-11265
2020-05-29 09:36:32 +03:00
Ilya Gorbunov
23414496c4
Annotation to enable overload resolution by lambda return type
...
#KT-38480
2020-05-29 09:36:32 +03:00
Dmitriy Novozhilov
1c32c62a87
[NI] Choose annotated candidate if call still ambiguous
...
#KT-11265
2020-05-29 09:36:31 +03:00
Dmitriy Novozhilov
8c524769b1
[NI] Add required FactoryPattern annotation for factory pattern resolve
...
#KT-11265
2020-05-29 09:36:31 +03:00
Dmitriy Novozhilov
865ddac07a
[NI] Add feature for choosing candidate by lambda return type
2020-05-29 09:36:31 +03:00
Ilya Gorbunov
f243b8946f
Restore testOmittedStdlibVersion originally added in commit 15feeddc
2020-05-29 04:10:17 +03:00
Ilya Gorbunov
d47981f07b
Drop gradle ITs depending on AGP versions below 3.2
...
AGP of these versions cannot handle module-info class included in
kotlin-stdlib artifact from now on.
2020-05-29 04:10:17 +03:00
Dmitry Petrov
a270ee094c
Language feature for new inline class mangling rules (since 1.4)
2020-05-29 00:53:01 +03:00
Dmitry Petrov
94509bdb4e
KT-39228 Fix inliner when latest 1.4 compiler used with 1.3 stdlib
...
Since 1.4.0-dev-8774, we mangle functions returning inline class values,
including functions with return type 'kotlin.Result'. This causes
incompatibility when 1.4 compiler is used with 1.3 (or just some
pre-1.4.0-dev-8774) standard library.
Also, write "message from the future" on functions returning inline
class values indicating that they can be used since compiler version 1.4
(otherwise 1.3 compiler using 1.4 stdlib would fail to find some
@InlineOnly functions such as 'Result.success' and 'Result.failure').
2020-05-29 00:53:00 +03:00
Mikhail Glukhikh
ffdab473e2
IR symbols: enhance exception messages / toString() a bit
2020-05-28 22:59:13 +03:00
Mikhail Glukhikh
b6cdcc8d50
[FIR2IR] Mute 2 failing BB tests
2020-05-28 22:51:20 +03:00
Mikhail Glukhikh
19f1a3de1a
[FIR2IR] Populate overridden symbols also with public symbol inheritors
2020-05-28 22:19:21 +03:00
Mikhail Glukhikh
85760770a8
[FIR2IR] Initialize built-in symbols at start of conversion
2020-05-28 22:18:20 +03:00
Mikhail Glukhikh
cd24745f1f
[FIR2IR] Add primitive signature composer & use it for external classes
2020-05-28 22:18:13 +03:00
Mikhail Glukhikh
048e7a7075
[FIR] Add forgotten FirJvmBackendClassResolver to CLI
2020-05-28 22:18:05 +03:00
Andrey Uskov
0ed9356cd2
Fixed reporting duration between builds in gradle statistics
2020-05-28 22:08:18 +03:00
Andrey Uskov
8dcbc391fe
Implemented collecting JS compilation mode
...
#KT-36410 Fixed
2020-05-28 22:08:13 +03:00
Andrey Uskov
97039926f0
Fixed import of transitive HMPP dependencies
...
#KT-36792 Fixed
2020-05-28 22:08:04 +03:00
Andrey Uskov
a431e20b45
Fix import of js MPP source sets in both mode
...
#KT-38706 Fixed
2020-05-28 22:07:55 +03:00
Andrey Uskov
36c9d04cd3
Fix HMPP import tests
2020-05-28 22:07:51 +03:00
Andrey Uskov
9c2918bdd6
Drop import tests with module per source set disabled
2020-05-28 22:07:48 +03:00
Andrey Uskov
104eeb9ffd
Fixed KNPE when serialized Kotlin Facet is broken
...
#KT-37428 Fixed
2020-05-28 22:07:44 +03:00
Andrey Uskov
e6165ed785
Improved performance of MPP projects import
...
#KT-39059 Fixed
2020-05-28 22:07:39 +03:00
Andrey Uskov
8eca3c8aa8
Fixed building MPP model if project root directory does not exist
2020-05-28 22:07:36 +03:00
Andrey Uskov
c7a53e4435
Fix android import tests
2020-05-28 22:07:31 +03:00
Andrey Uskov
351d706e0d
Fixed reporting NPM download time
...
#KT-39109 Fixed
2020-05-28 22:07:27 +03:00
Andrey Uskov
15ead4cbe6
Fixed representation of project structure when MPP module is involved
...
KT-37125
2020-05-28 22:07:22 +03:00
Andrey Uskov
2eb354f211
Fixed import of MPP modules with single artifacts
...
#KT-38037 Fixed
2020-05-28 22:07:16 +03:00
Zalim Bashorov
a8623b9b28
Make sure that library file still exists before calling loadMetadata from JsResolverForModuleFactory since IDE model could be outdated
...
#EA-218905 fixed
2020-05-28 21:38:01 +03:00
Zalim Bashorov
7f41dc4828
Add more detailed message for EA-227305 and EA-226744
2020-05-28 21:38:00 +03:00
Vyacheslav Karpukhin
7b55a49ddd
Dependency on IDEA replaced with AS incompatibility
2020-05-28 19:29:22 +02:00
Steven Schäfer
dc0ef996b7
JVM IR: Implement the new inline class ABI
2020-05-28 18:00:35 +03:00
Nicolay Mitropolsky
e60a32e8d3
Uast: UastFakeLightMethod dependent generic type SOE fix KT-39155
2020-05-28 17:53:30 +03:00
Vladimir Ilmov
de790a3e3b
(UnusedSymbolInspection) Added support for typing per inspection tests
...
relates to #KT-38653
2020-05-28 15:27:58 +02:00
Alexander Udalov
1f1790d60e
Do not rely on descriptors in KParameterImpl.equals/hashCode
...
For the same reason as in the previous commit: descriptors are cached
via weak references in moduleByClassLoader.kt and can be
garbage-collected at any point. So different instances of KParameterImpl
representing the same parameter may store different instances of
descriptors.
2020-05-28 14:17:37 +02:00
Alexander Udalov
55f384cb04
Do not rely on descriptors in KTypeParameterImpl.equals/hashCode
...
Descriptors are cached via weak references in moduleByClassLoader.kt and
can be garbage-collected at any point. So relying on identity of
descriptors in KTypeParameterImpl is dangerous because the same type
parameter can be represented by different descriptors. For example, the
test equalsOnFunctionParameters.kt was flaky before this change because
of this issue, and that could be reproduced by running it a few hundred
times in the same process.
Instead, use the type parameter's container (which is either KClass or
KCallable) and name, in equals/hashCode. KClass and KCallable already
have equals/hashCode independent of descriptors, so this works in case
the descriptor is invalidated.
2020-05-28 14:17:37 +02:00
Alexander Udalov
d25f9dee62
Minor, remove temporary workarounds for JPS build
2020-05-28 14:17:36 +02:00
Victor Petukhov
e72f7d9a1d
NI: return optimization for adding constraints in ConstraintInjector.kt
2020-05-28 14:58:15 +03:00
anastasiia.spaseeva
6c1efbe812
[Spec tests] Update spec testData
2020-05-28 14:23:11 +03:00
Mikhail Glukhikh
25b1059f74
Cleanup: ExpectDependencyGenerator
2020-05-28 14:03:01 +03:00
Mikhail Glukhikh
c9f2876368
[PSI2IR] Drop unnecessary forcing of type alias RHS referencing
2020-05-28 14:03:01 +03:00
Mikhail Glukhikh
cef23a284f
[PSI2IR] Use returnTarget.symbol directly in generateReturnExpression
2020-05-28 14:03:00 +03:00
Mikhail Glukhikh
8e8bb9bf08
[IR] Simplify class parent fetching in PrimitiveCompanionLowering
2020-05-28 14:03:00 +03:00
Mikhail Glukhikh
487a698e49
[IR] Add IrSymbolBase.toString() implementation
2020-05-28 14:02:59 +03:00