Commit Graph

93017 Commits

Author SHA1 Message Date
sebastian.sellmair d8b4a88400 [Gradle][MPP] GradleKpmFragmentGranularMetadataResolver: Avoid re-processing dependencies 2022-06-13 11:34:39 +00:00
sebastian.sellmair 8b595cd804 [Gradle][MPP] GranularMetadataTransformation: Avoid re-processing dependencies
Do not process any dependency that was already processed previously.
When filling up the 'resolvedDependencyQueue' there is already
one filter present, checking that the resolved dependency was not
already visited.

However, this filter is insufficient, since the queue is just an
ArrayDeque and not a set. It happened that many dependencies
were enqueued multiple, multiple times.
2022-06-13 11:34:38 +00:00
sebastian.sellmair 8c904fdab2 [Gradle][MPP] reportSourceSetCommonizerDependencies: Fix parentsClosure 2022-06-13 11:34:37 +00:00
sebastian.sellmair e6f04c84fa [Gradle][MPP] Increase test failure readability in reportSourceSetCommonizerDependencies 2022-06-13 11:34:36 +00:00
sebastian.sellmair 3c8a4c5896 [Gradle][MPP] Mark 'commonizeNativeDistribution' as UP-TO-DATE when cache hits
^KT-52632 Verification Pending
2022-06-13 11:34:35 +00:00
sebastian.sellmair 02601745a9 [Gradle] Simplify 'isHostSpecificKonanTargetsSet' implementation
The method is called pretty often during import and can return
faster and create less objects.
2022-06-13 11:34:34 +00:00
Mikhael Bogdanov 3d1bde470b Regenerate tests 2022-06-13 11:58:15 +02:00
pyos e18105e0dc JVM: remove default masks from parameters after inlining conditions 2022-06-13 11:58:15 +02:00
pyos a1f0c6208c Add a test from KT-51950 2022-06-13 11:58:15 +02:00
pyos 7bdc09301d JVM: add inline lambdas' captured parameters to constructor first
This makes the code a bit cleaner, but has no effect other than that.
2022-06-13 11:58:15 +02:00
pyos ae5acc0de1 JVM: do not remap regenerated constructor parameters to fields
^KT-51950 Fixed
2022-06-13 11:58:15 +02:00
pyos 64e8bc31e2 JVM: keep track of which regenerated field is for which parameter 2022-06-13 11:58:15 +02:00
pyos 60c27affbb JVM: inline (!) some DescriptorAsmUtils methods into the inliner
Easier to work with it that way
2022-06-13 11:58:15 +02:00
pyos 2f6c80f06f JVM: more correctly track inline lambdas in local slots
The analyzer can now handle the case where a parameter containing an
inline lambda is overwritten with something else. The local variable
remapper still can't handle that, and KT-51950 is caused by a deeper
underlying issue (the slot should't get overwritten in the first place),
but at least the problem is more visible now:

>java.lang.RuntimeException: Trying to access skipped parameter:
>  Lkotlin/jvm/functions/Function1; at 2
2022-06-13 11:58:14 +02:00
pyos 51dbc60722 JVM: use various Interpreter.new* methods in FastMethodAnalyzer
These allow e.g. specifying different values for parameters depending on
their indices.
2022-06-13 11:58:14 +02:00
Anton Lakotka de875f6349 [Gradle] Support configuration cache for buildKotlinToolingMetadata
^KT-52694 Verification Pending
2022-06-13 07:26:24 +00:00
Anton Lakotka d8bc17a53c [Gradle] Test buildKotlinToolingMetadata with configuration cache
^KT-52694
2022-06-13 07:26:24 +00:00
Pavel Mikhailovskii bcd8a28d4c KT-47823 IR.JVM Fix handling of for loop ranges with inline types and break/continue/return 2022-06-10 18:42:28 +00:00
Pavel Mikhailovskii ecb3cc193c KT-51883 Don't use "-" in generated unique lifted declaration names 2022-06-10 18:36:04 +00:00
Kristoffer Andersen fb9c5c13bd [IR] Have JVM codegen respect the GenerateClassFilter supplied to GenerationState
ClassCodegen bails before generating code if the filter supplied to
the GenerationState rejects it based on the containing file or class
declaration itself.
2022-06-10 19:10:34 +02:00
Zac Sweers 3896482e4f Fix wrong replacement name for Enum.declaringClass
Resolves https://youtrack.jetbrains.com/issue/KT-52718
2022-06-10 13:53:03 +00:00
Diego Gomez Olvera 9a430efbe7 [KT-52681] Remove unnecessary semicolon after Objective-C @end
Objective-c `@end` doesn't need a semicolon, however KMM exported header
file, for instance:
```
__attribute__((swift_name("KotlinIterator")))
@protocol MyProjectKotlinIterator
@required
- (BOOL)hasNext __attribute__((swift_name("hasNext()")));
- (id _Nullable)next __attribute__((swift_name("next()")));
@end;
```
This creates problems with some code checkers that will not expect it
there, so it seems best to remove it.
2022-06-10 15:46:27 +03:00
pyos 3840d09314 FIR: fix check for plugins that support K2 2022-06-10 09:47:35 +03:00
Dmitriy Novozhilov b23092b447 jvm-abi-gen: report compilation errors instead of throwing exceptions during configuration 2022-06-10 09:47:35 +03:00
pyos 60405237d2 jvm-abi-gen: mark as supporting K2 (in new mode) 2022-06-10 09:44:31 +03:00
pyos 526e46cffc FIR: fix some errors in local variable assignment analyzer
* wrong method was called from FirDataFlowAnalyzer.exitFunctionCall;
 * map from function to affected properties should be keyed by symbol,
   not FirFunction, as the latter may change;
 * arguments of `return` and assignment statements should be visited,
   as they may contain lambdas.
2022-06-10 09:43:48 +03:00
pyos 9968fa252a FIR: fork flow on function entry, restore receivers on exit
^KT-52680 Fixed
2022-06-10 09:42:02 +03:00
Denis.Zharkov 3ba11711d2 Adjust test data after reverting fix for KT-35811
(see previous commit)

^KT-52684 Fixed
2022-06-09 15:44:36 +00:00
Denis.Zharkov 9caa60d389 Revert "KT-35811: Type parameter angle brackets followed by equal sign are parsed incorrectly if whitespace is missing"
This reverts commit ba5c85d6

^KT-52684 Related
2022-06-09 15:44:36 +00:00
Denis.Zharkov 67f9025f9e Add test data for parsing of complicated <..> and <..>= combinations
^KT-52684 Related
^KT-8263 Related
2022-06-09 15:44:35 +00:00
Nikolay Egorov 149402cf00 Make TypeMapper use signatureWriter for scripts expression evaluation;
Support nullability detection for IrScriptSymbol;

tests in IJ commit: "[scripting] Introduce tests for KT-51755"
2022-06-09 14:08:28 +00:00
Nikolay Egorov 1c04162690 Proper script receiverValue for synthetic evaluation expression class;
tests in IJ commit: "[scripting] Introduce tests for KT-51755"
2022-06-09 14:08:27 +00:00
Alexander Shabalin ac395b21ea [K/N] Fix state switch in CAdapterGenerator ^KT-52692
Merge-request: KT-MR-6429
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2022-06-09 13:01:17 +00:00
Vladimir Sukharev 83d7524232 Fix KT-26478: Objective-C-objects-class-name-is-null-in-ClassCastExceptions-message
#KT-26478 Fixed

Merge-request: KT-MR-6405
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-06-09 12:57:11 +00:00
Mikhail Glukhikh a31d383b4d Analysis API: add implementation of ReadWriteAccessChecker via descriptors 2022-06-09 11:05:36 +00:00
nataliya.valtman b19837aa02 Change log level for compiler performance metrics 2022-06-09 08:55:47 +00:00
nataliya.valtman 120fb56f8d KT-52549: ignore reportPerf property 2022-06-09 08:55:46 +00:00
Jinseong Jeon 5c147c1ded AA: fail-safe binary root lookup 2022-06-09 10:35:17 +02:00
Jinseong Jeon c1b2469e51 AA: register CoreJavaFileManager
in a similar way
KotlinCoreEnvironment.ProjectEnvironment.registerJavaPsiFacade does
2022-06-09 10:35:17 +02:00
Jinseong Jeon af053fd8f3 AA: fail-safe JvmRoot lookup 2022-06-09 10:35:17 +02:00
Jinseong Jeon aef3df0336 AA: introduce AA session and builder 2022-06-09 10:35:16 +02:00
Jinseong Jeon 5585d84808 AA: make utils in StandaloneProjectFactory more general 2022-06-09 10:35:16 +02:00
Jinseong Jeon 72bf702309 AA: utilize file lookup utils (to reuse in facade) 2022-06-09 10:35:16 +02:00
Jinseong Jeon 4cfefbd921 AA: introduce ProjectStructureProvider builder 2022-06-09 10:35:16 +02:00
Jinseong Jeon 8528f6244d AA: introduce KtModule builders 2022-06-09 10:35:15 +02:00
Jinseong Jeon d592dab4b6 AA: rename util file to match module/pcakge name 2022-06-09 10:35:15 +02:00
Jinseong Jeon 355fd48782 AA: remove test prefix at non-test module 2022-06-09 10:35:15 +02:00
Mikhail Zarechenskiy 372879b8e7 [FE 1.0] Don't fail with exception on unresolved type with type argument
^KT-50223 Fixed
2022-06-09 08:03:35 +00:00
pyos 87dc1f7fde JVM_IR: remove ExpressionCodegen.inlinedInto 2022-06-08 23:59:58 +02:00
pyos 27c51f5f88 JVM_IR: skip SAM lambdas when computing enclosing method of objects
This is what Java 15+ does, and it permits accessing captured type
parameters via reflection. The alternative is to emit generic signatures
on the lambda methods, but that was disabled and I have no clue why.

^KT-52417 Fixed
2022-06-08 23:59:58 +02:00