Commit Graph

24881 Commits

Author SHA1 Message Date
Igor Yakovlev 2a1293e3ef Fix test data for UL suspend declatations
(remove should-load-cls flag)
2019-06-07 17:54:03 +03:00
Igor Yakovlev 63d7e479c6 Fix invalid nullability annotation for suspend functions in LightClasses 2019-06-07 17:54:03 +03:00
Igor Yakovlev d005dc685f Add nullability support to KtUltraLightSuspendContinuationParameter 2019-06-07 17:54:03 +03:00
Igor Yakovlev 0d51a2ec43 Optimize for void return type for functions with no return type
+ small refacroring
2019-06-07 17:54:03 +03:00
Igor Yakovlev 9e904598fb Add coroutines as parameters 2019-06-07 17:54:03 +03:00
Igor Yakovlev fc30e564ba Add support ultra light suspend functions declarations 2019-06-07 17:54:03 +03:00
Alexander Udalov bbbd47ead3 Minor, rename codegen test 2019-06-07 15:01:44 +02:00
Mads Ager 71604851fe JVM_IR: Allow delegated companion objects.
This currently leads to a compilation error due to metadata
generation.
2019-06-07 13:26:20 +02:00
Mikhail Zarechenskiy 4ddd9f081b [NI] Consider explicitly specified type argument as an input type
#KT-31860 Fixed
2019-06-07 12:31:42 +03:00
Mikhail Zarechenskiy 787a8bb9bd Revert "[NI] Disable capturing/approximation type in TypeSubstitutor with enabled NI"
This reverts commit 7c4101e21c.

 #KT-31866 Fixed
 #KT-31868 Fixed
 #EA-125401 Fixed
 #KT-25290 Open
2019-06-07 12:31:38 +03:00
Dmitry Gridin 8b0b135112 Add new line after modifier list if last child is comment
#KT-30804 Fixed
2019-06-07 12:23:06 +07:00
Ilya Chernikov e542c9ea84 Refactor script definitions and resolving/refining infrastructure:
- implement wrappers to wrap old and new API providers and resolvers
- make old API deprecated (with error where possible)
- drop old internal classes related to the old API
- refactor usages accordingly
- fix and add missing features to the scripting API where necessary
2019-06-06 17:21:00 +02:00
Ting-Yuan Huang a447c748bc JVM_IR: support @JvmDefaults in compatibility mode. 2019-06-06 14:10:28 +02:00
Alexander Udalov 43cb17cdd5 Check expected type of annotation parameter correctly in AnnotationDeserializer
The main idea of this refactoring is to separate two usages of
`AnnotationDeserializer.resolveValue`: the one where we load annotation
argument values, and the one where we load constant values of properties
for JS/Native/Common
(`AnnotationAndConstantLoaderImpl.loadPropertyConstant`).

In the latter case, `expectedType` is the type of the property and it
can be a supertype of the actual value (e.g. see `arrayConst` in
compiler/testData/serialization/builtinsSerializer/compileTimeConstants.kt).
But in the former case, we need to check that the value conforms to the
expected type and disregard it if it's not the case, which is possible
if the annotation was recompiled separately.

 #KT-28927
2019-06-05 14:44:15 +02:00
Alexander Udalov c666b60ca3 Support arrays of class literals in AnnotationDeserializer
#KT-28927 Fixed
2019-06-05 14:44:14 +02:00
Ting-Yuan Huang 1b4d26e490 psi2ir: keep the type of when when possible
Ideally, the type of `IrWhen` should be provided by type inference for
a consistent behavior. `USED_AS_EXPRESSION` from CFG isn't always
consistent with type inference, unfortunately.

The behavior is now aligned with `if`. The type of `when` is kept when
it *can* be an expression, instead of whether it is used or not.
2019-06-05 10:23:44 +02:00
Svyatoslav Kuzmich cd651be461 [JS IR BE] Migrate JS BE to common klib utils 2019-06-05 11:15:45 +03:00
Mads Ager 0c586ef5c1 JVM_IR: Maintain annotations in SAM conversion.
Copy method and parameter annotations to the generated SAM
implementation method.
2019-06-05 08:21:59 +02:00
Mikhael Bogdanov 79074a7650 Specify JVM target for inline tests 2019-06-04 14:56:14 +02:00
Mikhael Bogdanov 81e6416bfe Support bound callable reference inlining in IR 2019-06-04 14:56:13 +02:00
Mikhael Bogdanov 3c093f321d Support unbound callable function references in inliner 2019-06-04 14:56:12 +02:00
Mikhael Bogdanov bce774eda5 Jvm Ir. IrIntrinsicMethods.kt optimization: avoid 'IrClass.functions' call if it not necessary 2019-06-04 08:45:46 +02:00
Mikhael Bogdanov 30ab11575d Jvm Ir. Optimization: avoid 'IrClass.functions' call if it not necessary 2019-06-04 08:45:45 +02:00
Igor Yakovlev db4ba238eb Avoid to call delegate from isInheritorDeep in UL-class
(plus small refacrotoring)
2019-06-03 17:23:41 +03:00
Igor Yakovlev eaa36d4d27 Fix kotlin.Deprecated annotation for UL-classes 2019-06-03 17:23:41 +03:00
Igor Yakovlev 2a729082a0 Add UltraLightFacadeClassTest 2019-06-03 17:23:41 +03:00
Igor Yakovlev 8707edfaa3 Disable to mangling facade functions + refactoring 2019-06-03 17:23:40 +03:00
Igor Yakovlev ac85849721 Avoid access to delegate from KtUltraLightClass 2019-06-03 17:23:40 +03:00
Igor Yakovlev 3889b70f1e Avoid clsDelegate access from (UL-)KtLightClassForFacade 2019-06-03 17:23:40 +03:00
Igor Yakovlev fa6b21357b Add cache to KLightClassForFacade 2019-06-03 17:23:40 +03:00
Igor Yakovlev 24253e21d0 Add ultraKtLightClassForFacade multifile support 2019-06-03 17:23:40 +03:00
Igor Yakovlev 86e9018f49 Add text functions to KtLightClassForFacade 2019-06-03 17:23:39 +03:00
Igor Yakovlev 852a4bc0ca Add support UL for FileFacade 2019-06-03 17:23:39 +03:00
Alexander Gorshenev 10a54c2581 Moved the common klib writer from Kotlin/Native to util-klib 2019-06-03 14:38:48 +03:00
Alexander Gorshenev 7ddbd8ca80 Moved the common klib reader functionality from Kotlin/Native to util-klib 2019-06-03 14:38:48 +03:00
Alexander Gorshenev d1390365de Moved basic classes from konan/utils to util-io 2019-06-03 14:38:48 +03:00
Igor Yakovlev f5190f195d Add correct UL-method hasTypeParameters realization (#KT-30970 Fixed)
Incorrect realization is breaking-down of IDEA generic-type inference algorithm that leads to SOE.
2019-06-03 14:11:06 +03:00
Dmitriy Novozhilov ef91960fe9 [NI] Fix testdata after enabling NI in IDE tests 2019-06-03 12:13:31 +03:00
Dmitry Savvinov dca23f871c Allow to force-require syntetic SAM-adapters even in NI
This is needed for some IDE clients, particularly, completion: even
though presenting only non-converted member (e.g., 'foo(Consumer<Int>')
is nominally OK, as resolution with NI is smart enough to accept 'foo { }'
for such a call, it is inconvenient for users (for example, hitting
enter would insert round brackets instead of a figure brackets)

This commit adds very-very narrow API (borderline hacky) in
JavaSyntheticScopes, to allow clients explicitly ask for a scopes with
force-enabled synthetic conversions. It fixes several tests, which had
started to fail after corresponding commit about NI and SAM-adapters
(fe5976d7f4), e.g.:
- Java8BasicCompletionTestGenerated.testCollectionMethods
- Java8BasicCompletionTestGenerated.testStreamMethods
- JvmBasicCompletionTestGenerated$Common$StaticMembers.testJavaStaticMethods
- JvmBasicCompletionTestGenerated$Java.testSAMAdaptersStatic
- JvmWithLibBasicCompletionTestGenerated.testSamAdapter
- JvmWithLibBasicCompletionTestGenerated.testSamAdapterAndGenerics

Note that changes are made in ReferenceVariantsHelper, which is used by
several other clients in IDE. Presumably, those changes are needed for
them too.
2019-06-03 10:46:53 +03:00
Mikhail Zarechenskiy 010ac50243 Enable new type inference for UAST tests as for IDE tests 2019-06-03 02:04:53 +03:00
Roman 0163019295 [JVM IR] Unmute fixed test 2019-05-31 18:49:54 +03:00
Mikhail Zarechenskiy 268dddcb3d Remove restriction about JS_IR backend for test 2019-05-31 17:23:58 +03:00
Vyacheslav Gerasimov 15c46aa9cc 192: Fix compiler.pro for 192 platform 2019-05-31 16:32:10 +03:00
Alexander Udalov 4c9e9b1f3a Fix KotlinReflectionInternalError on encountering 'clone' in a class
`RuntimeTypeMapper.mapSignature` threw exception because the descriptor
for `clone` was created manually in CloneableClassScope and therefore it
didn't have a JVM signature as in deserialized descriptors, and wasn't
recognized as a Java method either.

 #KT-22923 Fixed
2019-05-31 12:29:20 +02:00
Roman Artemev c2d118cb75 [JS IR BE] Improve error reporting 2019-05-31 13:14:43 +03:00
Roman Artemev beb1ce55f8 [IR BE] Fix capturing of var-locals inside class/field initializers 2019-05-31 13:14:43 +03:00
Roman Artemev 5686de7e09 [JS IR BE] Make kotlinx.io compile
- Fix expect/actual default arguments
 - Fix dynamic type in inliner
 - Fix external varargs
2019-05-31 13:14:43 +03:00
Denis Zharkov 753a9a1c36 Fix performance regression caused by contracts
Do not obtain all children from KtBlockExpression when you only need
the first one.
It might be crucial for a huge blocks of code
2019-05-31 11:21:15 +03:00
Mikhael Bogdanov 79d855f7a4 Minor. Revert deleted by mistake test directive 2019-05-31 07:09:28 +02:00
Ilya Kirillov 8fa9b9923f Allow removing trivial property accessor body when the accessor can not be fully deleted in redundant getter/setter inspections 2019-05-31 00:25:52 +03:00