Commit Graph

63359 Commits

Author SHA1 Message Date
Mikhail Glukhikh 20c4a7b244 [FIR2IR] Introduce staged transformation (first step)
Now FE IR -> BE IR transformation is performed in multiple stages
controller by Fir2IrConverter. Stages are
 * files & classes registration
 * supertypes & type parameters handling
 * functions & properties signature generation
 * body generation

After each step we have guarantee (with exception of local classes &
type inference combination, and external symbols) that required symbols
(class/function/property/variable/type parameter)
are already bound to real declarations and have correct parents.

This commit also fixes incorrect parents for local classes
2020-03-13 12:18:02 +03:00
Alexander Udalov a9f7ff254b Add -Xno-optimized-callable-references to disable KT-27362 optimization
This argument is useful in situations where the stdlib version which the
code compiles against is different from the one which is available at
runtime, such as the case of kotlin-gradle-plugin, which depends on the
compiler/stdlib compiled by 1.4, but may be executed in Gradle where
only 1.3.x is available.

 #KT-37435
2020-03-13 10:07:22 +01:00
Vladimir Dolzhenko ae4629a5a6 Fetch analysis results if it is available
The general idea is to try to fetch a full analysis if it is existed in PerFileAnalysisCache instead of go to ResolveElementCache and do analysis there. Do not perform analysis if it is not in PerFileAnalysisCache.

#KT-37467 Fixed
2020-03-13 09:25:28 +01:00
Zalim Bashorov 7cf8697e30 [JS BEs] use star projection when type parameter used recursively
#KT-37128 Fixed
2020-03-13 10:15:56 +03:00
Zalim Bashorov 8c7562d338 [CJS BE] don't crash when intersection types passed for a reified parameter
#KT-37163 Fixed
2020-03-13 10:15:53 +03:00
Zalim Bashorov 415893b8aa [JS CLI] revert disabling NI by default 2020-03-13 01:51:24 +03:00
Zalim Bashorov 5188bc6584 [JS FE] remove unused ReleaseCoroutinesDisabledLanguageVersionSettings 2020-03-13 01:51:24 +03:00
Vladimir Dolzhenko 87242b419a Improvements in KotlinCopyPasteReferenceProcessor
reduced scope of nonBlockingRead to avoid long rerun of it
used smart pointers to keep valid elements over changes
moved back to non-modal progress

Relates to #KT-37414
2020-03-12 22:42:58 +01:00
Victor Petukhov b1c4b5f51b NI: Analyze lambdas which are return arguments of another lambda
^KT-36044 Fixed
2020-03-12 23:29:09 +03:00
Georgy Bronnikov 426738b7d4 JVM_IR: Cache stubs in CollectionStubMethodLowering 2020-03-12 23:14:17 +03:00
Georgy Bronnikov 92268c8144 JVM_IR: do not generate excessive stubs for immutable collections 2020-03-12 23:14:17 +03:00
Dmitriy Novozhilov 9955f342c0 [FIR-TEST] Move FIR ide tests to separate module 2020-03-12 18:15:38 +03:00
Abduqodiri Qurbonzoda b1fac4e721 Implement reduceIndexedOrNull and reduceRightIndexedOrNull #KT-36866 2020-03-12 18:08:55 +03:00
Abduqodiri Qurbonzoda b60633d79a Add associateWith to Array<T> #KT-30372 2020-03-12 18:06:54 +03:00
Abduqodiri Qurbonzoda e632d58936 Nullable Array.contentEquals/contentHashCode/contentToString #KT-34161 2020-03-12 18:01:23 +03:00
Zalim Bashorov 179ec41a6b [JS BEs] Generate tests for whole "codegen/boxInline" 2020-03-12 17:22:33 +03:00
Zalim Bashorov fe3a81ebc9 [JS BEs] Minor: fix warnings in abstract classes for generated tests 2020-03-12 17:21:06 +03:00
Abduqodiri Qurbonzoda c664bfc62b Update property delegate test data 2020-03-12 16:52:36 +03:00
Alexander Udalov 3762b5cba7 Minor, remove extraneous field CodegenTestCase.coroutinesPackage
After a795c38eb7, this field is available in the base class
KotlinBaseTest.
2020-03-12 13:51:40 +01:00
Alexander Udalov 244db9bcf9 JVM IR: don't rename fake overrides for fields
In case derived class has a field with the same name as the base class,
RenameFieldsLowering previously tried to rename one of the fields by
adding the "...$1" suffix, which led to NoSuchFieldError.
2020-03-12 13:51:40 +01:00
kovalp 9ceca69154 Do not stop searchTextOccurrences when isSearchForTextOccurrences is false
#KT-36657 Fixed
2020-03-12 13:40:49 +01:00
Mikhail Glukhikh 6fd8ccc293 [FIR2IR] Support (simple) conversion of captured types 2020-03-12 15:17:51 +03:00
Sergey Bogolepov e919e7b79a [Gradle][Native][Cache] Don't skip metadata-based interop libraries
`resolveSingleFileKlib` by default doesn't support klibs with
non-default ir providers. In case of cache generation for native interop
libraries we need to override this behavior because they have
ir_provider=kotlin.native.cinterop.
2020-03-12 18:11:47 +07:00
Dmitry Petrov c0b15b1768 KT-37448 'this' in delegating constructor call may refer to outer object 2020-03-12 13:40:14 +03:00
Ilya Goncharov 2bd5872782 201: [Gradle, JS] Non jvm configurator from xml including 2020-03-12 13:23:46 +03:00
Ilya Goncharov dc2dd2e3e3 [Gradle, JS] Remove idle test runner
#KT-37037 fixed
2020-03-12 13:23:45 +03:00
Ilya Goncharov 8c8307d0d2 201: [Gradle, JS] Remove redundant non jvm configurator for 201 2020-03-12 13:23:28 +03:00
Ilya Goncharov 857f3335bb [Gradle, JS] TestFramework is public to detect it in debug extension
#KT-37037 fixed
2020-03-12 13:23:27 +03:00
Ilya Goncharov 3728dd45ce [Gradle, JS] Remove redundant hacks for debug
#KT-37037 fixed
2020-03-12 13:22:42 +03:00
Ilmir Usmanov 7efab887aa JVM_IR: Do not generate accessor for private function
if the function is called in suspendCoroutine's lambda.
 #KT-37242 Fixed
2020-03-12 11:15:46 +01:00
Dmitry Gridin 80caa063b3 UnusedUnaryOperatorInspection: shouldn't report on annotation entry
#KT-37294 Fixed
2020-03-12 08:46:33 +00:00
Georgy Bronnikov fded6fb494 JVM_IR: fix suspendCoroutineUninterceptedOrReturn 2020-03-12 11:28:42 +03:00
Ilya Chernikov 3cbfdd19f5 Optimize constraints simplification
simplify only when affecting changes are detected
2020-03-12 08:02:46 +01:00
Ilya Chernikov c2b866fe7a Reduce number of constraints simplifications
assuming that MutableVariableWithConstraints is constructed either
with no initial constraints or already from simplified list
2020-03-12 08:02:46 +01:00
Ilya Chernikov 84a0e39956 Skip duplicates removal on constraints simplification
It is already coveren on addition. Speeds up inference a bit.
2020-03-12 08:02:46 +01:00
Ilya Chernikov 6f97745de2 Optimize MutableDiagnosticsWithSuppression
avoid modificationTracker and own diagnostics list initialization if
possible
2020-03-12 08:02:46 +01:00
Ilya Chernikov a28c25b805 Add NI benchmarks configuration 2020-03-12 08:02:46 +01:00
Ilya Chernikov e9cb7770e3 Fix benchmark compiler configuration 2020-03-12 08:02:46 +01:00
Ilya Chernikov 53d289206e Optimize hot TypeUtils.contains function
optimize for small number of visited types
2020-03-12 08:02:45 +01:00
Ilya Chernikov 4538e212db Optimize hot addSubTypeConstraintAndIncorporateIt function
reduce number of allocations, optimize for cases with small number
of possible new constraints
2020-03-12 08:02:45 +01:00
Ilya Chernikov 357ceeae19 Avoid unnecessary freshTypeConstructor() calls 2020-03-12 08:02:45 +01:00
Ilya Chernikov 54f10a709a Cache isProperType calculations in the constraint system
avoid expensive calculations with type.contains
2020-03-12 08:02:45 +01:00
Ilya Chernikov 70c89a28e1 Stop subtyping constraint search if equality constraints for...
all not fixed type vars are found
#KT-35626 fixed
2020-03-12 08:02:45 +01:00
Ilya Chernikov b6c9432334 [minor] Optimize diagnostic reporting a bit
Eliminating a couple of function calls on reporting, speeds up
diagnostic tests for a few %
2020-03-12 08:02:45 +01:00
Ilya Chernikov 2727507d18 Fix diagnostic inferred type calculation for null in some cases
#KT-36222 fixed
2020-03-12 08:02:45 +01:00
Nikolay Krasko 997debdd42 201: Mute GradleMultiplatformWizardTest.testMobile because of leaked JDK 2020-03-12 03:02:30 +03:00
Nikolay Krasko 34fda45113 201: Update test data about test run markers under gradle 2020-03-12 03:02:30 +03:00
Nikolay Krasko ab141bab1d 201: Update to 201.6073.9 2020-03-12 03:02:29 +03:00
Nikolay Krasko 0e65d0e00b 201: Mute JS android tests in MultiplatformProjectImportingTest 2020-03-12 03:02:29 +03:00
Nikolay Krasko a9044b8a69 201: Mute test because of NPE: element.parent must not be null (IDEA-234737) 2020-03-12 03:02:29 +03:00