Commit Graph

68954 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 68f3d84e22 [FIR] Use CandidateApplicability from FE 1.0 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov cd557ad178 Change order of enum entries in CandidateApplicability 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov d1568c1ce6 Rename ResolutionCandidateApplicability to CandidateApplicability 2020-09-09 12:38:33 +03:00
Mikhail Glukhikh db2e3f219f [FIR] Keep bare type for type alias case 2020-09-09 12:16:09 +03:00
Alexander Udalov 3a5d0ab427 JVM IR: fix HashCode intrinsic for generics substituted with primitives
The problem here was that although the IR type of the expression was
primitive, the type of the actual expression in the bytecode generated
after type erasure was `Ljava/lang/Object;`, and we were trying to call
a non-existing method `Object.hashCode(Object)`.

 #KT-41669 Fixed
2020-09-08 23:37:00 +02:00
Alexander Udalov c46c80822c JVM IR: fix enclosing constructor for lambdas in inner classes
Before this change, we stored the enclosing constructor in a map in
JvmBackendContext before moving lambdas and local classes out of
initializer blocks. However, in case the lambda was declared in an inner
class, we stored a reference to the unlowered constructor of the inner
class, whose JVM signature is "()V" instead of the correct "(LOuter;)V".
Java reflection then threw exception if we tried to call
`getEnclosingConstructor()` on such class at runtime. Proguard finished
with errors for the same reason.

It turns out that we can just store the fact that the class has been
moved, and load the matching constructor in codegen, where everything is
already lowered and guaranteed to match with the signatures of the
actual generated declarations.

 #KT-41668 Fixed
2020-09-08 23:37:00 +02:00
Alexander Udalov 228e329d1f JVM IR: generate enclosing constructor only for lambdas in initializers
There was a typo in JvmLocalClassPopupLowering which allowed the
EnclosingMethod for lambdas and anonymous classes in initializers to
become any function in a class, in case when there was no primary
constructor in that class. E.g. in the added test, `getIrrelevantField`
was the EnclosingMethod of the lambda class before this change.
2020-09-08 23:37:00 +02:00
Ilya Kirillov 2ab68b3245 Wizard: move boolean setting description to the bottom 2020-09-09 00:20:58 +03:00
Ilya Kirillov ce00366c7f Wizard: fix when first selected template cannot be applied 2020-09-09 00:20:58 +03:00
Ilya Kirillov 3a6011fae9 Wizard: always generate android MPP tests
#KT-40940 fixed
2020-09-09 00:20:57 +03:00
Ilya Kirillov 553c525701 Wizard: fix Gradle buildscript formatting
#KT-37965 fixed
2020-09-09 00:20:57 +03:00
Ilya Kirillov 0f799d593d Wizard: specify test platform to use on JVM
#KT-37965 fixed
2020-09-09 00:20:57 +03:00
Ilya Kirillov 7002e86d6b Wizard: fix path & artifactId updating on name update
#KT-41695 fixed
2020-09-09 00:20:56 +03:00
Alexander Udalov 929b5f727d Build: add :compiler:fir:entrypoint to compilerModules
This fixes FIR usage from the CLI compiler.
2020-09-08 20:26:28 +02:00
Alexander Udalov 7fb7dc0210 Fix deprecation warnings related to Project extensions 2020-09-08 20:26:20 +02:00
Alexander Udalov 196893bc4d Build: fix more warnings about deprecated/Alpha MPP plugins
Using the new flags added in KT-41340 and
413d02621b.
2020-09-08 20:26:20 +02:00
Mads Ager 06680452dc [JVM_IR] Always look for default lambdas in the inliner.
This allows compiler plugins such as Compose to do custom
default argument handling in methods that do not have origin
`FUNCTION_FOR_DEFAULT_PARAMETER`.

The code still bails out early is there is not defaults
mask, so there should be no compile-time penalty.
2020-09-08 19:07:31 +02:00
anastasiia.spaseeva a12e22bba4 [Spec tests] Fix dependencies for spec tests generator 2020-09-08 16:14:47 +03:00
Ilya Goncharov 9d3426486b [Gradle, JS] Support explicitApi in js plugin
^KT-41328 fixed
2020-09-08 12:54:11 +03:00
Dmitriy Novozhilov 28a83b04cd [FIR] Minor. Fix code style 2020-09-08 12:51:13 +03:00
Dmitriy Novozhilov 67604dcb66 [FIR] Add generator for checkers aliases and sets of checkers 2020-09-08 12:51:12 +03:00
Dmitriy Novozhilov 4de57fcac2 [FIR] Initialize module for checkers generator 2020-09-08 12:51:12 +03:00
Dmitriy Novozhilov 6656669551 [FIR] Fix typo 2020-09-08 12:51:12 +03:00
Dmitriy Novozhilov 3b9e86ccbf [FIR] Remove empty file 2020-09-08 12:51:12 +03:00
Dmitriy Novozhilov a8a5ed3cd3 [FIR] Get rid of runCheck in checkers components 2020-09-08 12:51:11 +03:00
Dmitriy Novozhilov 71a855112e [FIR] Get rid of ParallelDiagnosticsCollector 2020-09-08 12:51:11 +03:00
Ilya Goncharov 20a1ea0413 [Wizard, JS] Change js compiler default
^KT-41656 fixed
2020-09-08 12:48:52 +03:00
Dmitry Petrov 6746bd81d5 PSI2IR tests for KT-41735 2020-09-08 12:34:19 +03:00
Vladimir Ilmov aa04c0b5df Parent call already on KotlinBuiltInDecompiler.kt:79 2020-09-08 10:59:17 +02:00
Steven Schäfer 44ffb1fb3e Psi2Ir: Fix SAM conversion with new inference 2020-09-08 11:14:14 +03:00
pyos 75891e860b FIR2IR: split getIrPropertyOrFieldSymbol, handle locals there 2020-09-08 08:40:13 +03:00
pyos f198a19ab0 FIR2IR: add local delegated property generation 2020-09-08 08:40:07 +03:00
Steven Schäfer 4792be2522 JVM IR: Optimize static property references (KT-36975) 2020-09-07 21:01:29 +02:00
Alexander Udalov 669fda6b77 Do not add duplicate $completion when compiling JVM against JVM_IR
This change fixes JvmOldAgainstIrBoxInlineTestGenerated.Suspend and
JvmIrAgainstOldBoxInlineTestGenerated.Suspend tests.
2020-09-07 19:41:38 +02:00
Alexander Udalov ae448ececb Minor, add compileKotlinAgainstKotlin test case for KT-41374 2020-09-07 19:41:37 +02:00
Alexander Udalov 9e357354fb Add JVM/JVM_IR mixed compilation tests for compileKotlinAgainstKotlin/boxInline 2020-09-07 19:41:37 +02:00
Alexander Udalov e324733b01 Tests: accept TargetBackend in KotlinBaseTest.createConfiguration 2020-09-07 19:41:37 +02:00
Alexander Udalov 0dea6b94c6 JVM IR: unmute boxInline tests on enclosing method/class
In box tests, only check that Java reflection does not crash on the
EnclosingMethod attribute generated in these classes. If it doesn't
crash, most likely it returns the value that can be read from the class
file by ASM, which is what the newly added bytecode listing tests are
checking now.
2020-09-07 19:41:37 +02:00
Ilya Goncharov 985088a3f1 [Gradle, JS] Add test on dukat with both mode 2020-09-07 19:29:17 +03:00
Ilya Goncharov b694e3b009 [Gradle, JS] Dukat with both create externals only once 2020-09-07 19:29:17 +03:00
Ilya Goncharov 210cd982f0 [Gradle, JS] Use webpack config's required dependencies in karma
^KT-41663 fixed
^KT-41662 fixed
2020-09-07 18:56:47 +03:00
Pavel Kirpichenkov b5aca450b1 Make cancellation checks when building resolution anchor caches
^KT-39734
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 54811613f4 Minor: drop unnecessary wrapper for utility function
^KT-39734
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 1ff064d98d Make Kotlin OOCBM updater for modules internal again
Replace direct API access with dedicated service.
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 9d6bdc6fc4 Support modification tracking for source-dependent LibraryInfo
#KT-39734
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 6abd708d42 Preserve order entry to module info mapping in IdeaModelInfosCache 2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 24d8aee2bb Prioritize resolution anchors during resolution
When required dependency is present both in source dependencies and in
library dependencies, the former one should be selected.

#KT-24309
2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov f8ee976720 Use union of all available descriptors in composite importing scope 2020-09-07 18:52:10 +03:00
Pavel Kirpichenkov 5892bdf3f4 Extend import resolution for library-to-source analysis
Use composite importing scope for references when resolution anchors are enabled.
Composite scope provides additional descriptors from scope of resolution anchor module.
Overriding old importing scope with a new one is not possible as it breaks library
dependencies on other libraries, which are inaccessible in anchor scope (scope for sources).

KT-24309 In Progress
2020-09-07 18:52:10 +03:00
Roman Golyshev 8c876e4621 FIR IDE: Get rid of originalPosition in KtFirCompletionCandidateChecker 2020-09-07 18:46:38 +03:00