Commit Graph

82423 Commits

Author SHA1 Message Date
Nikita Bobko 61bf6bc447 Remove ':idea:idea-jps-common' from 'compiler-components-for-jps' artifact
It seems that it was added by mistake 'compiler-components-for-jps' artifact is used in IDE.
And in IDE we have our own jps-common module
2021-05-20 16:05:38 +02:00
Nikita Bobko 0fc31bc9c7 Disable IDE modules if 'attachedIntellijVersion' flag is specified 2021-05-20 16:05:37 +02:00
Nikita Bobko 897dafc7f3 GenerateTests: extract IDE part into separate module
It's refactoring-preparation commit. In later commits I will add possibility
to disable IDE modules with flags in gradle build (first step towards
removing IDE modules from kotlin repo). Thus, we need to extract IDE tests
generator in separate module for being possible to disable it with flags
2021-05-20 16:05:37 +02:00
Nikita Bobko ac6c810d25 Make it possible to attach platforms with different versions to kotlin repo 2021-05-20 16:05:37 +02:00
Nikita Bobko cc34f65392 [cleanup] Remove unused variable 2021-05-20 16:05:37 +02:00
Nikita Bobko 1fa4874426 Create 'installIdeArtifacts' task
This task is used for cooperative compilation with intellij.
See 'Install compiler-for-ide jars' run configuration in
intellij/kotlin-ide/intellij-kotlin repo
2021-05-20 16:05:37 +02:00
Nikita Bobko 8dec62de2b [kotlin + intellij combined] Add one more artifact url
This commit fixes:
```
* What went wrong:
Execution failed for task ':kotlin-ide.intellij.platform.testExtensions:compileKotlin'.
> Could not resolve all files for configuration ':kotlin-ide.intellij.platform.testExtensions:compileClasspath'.
   > Could not find intellij-core-analysis-deprecated-202.7660.26.jar (kotlin.build:ideaIC:202.7660.26).
     Searched in the following locations:
         file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/lib/intellij-core-analysis-deprecated.jar
         file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/intellij-core-analysis-deprecated.jar
         file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/artifacts/plugins/ideaIC/lib/intellij-core-analysis-deprecated.jar
         file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/sources/intellij-core-analysis-deprecated-202.7660.26.jar
         file:/home/bobko/.gradle/kotlin-build-dependencies/repo/kotlin.build/ideaIC/202.7660.26/intellij-core-analysis-deprecated.jar
```
2021-05-20 16:05:37 +02:00
Nikita Bobko 54f7633738 build.gradle.kts: exclude :kotlin-ide from allprojects
We don't need to setup compiler args and JDK version for kotlin-ide modules.
Generated build.gradle.kts will do it themselves
2021-05-20 16:05:37 +02:00
Nikita Bobko 6d125e0880 Initial implementation of kotlin + intellij combined repo 2021-05-20 16:05:36 +02:00
Nikita Bobko cedafedfb0 Add kotlin-ide/ to .gitignore 2021-05-20 16:05:36 +02:00
Alexander Udalov e0b0df01da Rename fields in KotlinIr.proto according to protobuf style guide
Field names should use snake_case, and names of repeated fields should
use the singular form: https://developers.google.com/protocol-buffers/docs/style#message_and_field_names
2021-05-20 15:59:42 +02:00
Alexander Udalov 8dee36d420 Tests: do not add transitive dependencies in multi-module tests
Prefer to have all module dependencies, including dependencies on
stdlib/reflect, declared explicitly. This allows to have tests on
situations like the one in KT-45308: three modules A<-B<-C, where C
doesn't depend on A, which was compiling correctly with the old JVM
backend before 1.5, but started to fail with JVM IR in 1.5.

Also simplify the code a bit, remove duplicated logic.
2021-05-20 15:58:05 +02:00
Alexander Shabalin eac3f507b6 Make Kotlin_initRuntimeIfNeeded switch to native state 2021-05-20 13:48:49 +00:00
Ilya Goncharov f40110eb83 [JS IR] Fixes after rebase 2021-05-20 16:37:52 +03:00
Ilya Goncharov d65cbdf44d [JS IR] Fixes in tests
- Compilation of tests
- add arguments to extra help
2021-05-20 16:37:50 +03:00
Ilya Goncharov b76f5547e4 [JS IR] Remove unnecessary overrides in IrNamer 2021-05-20 16:37:48 +03:00
Ilya Goncharov 0921235637 [JS IR] Remove redundant file after rebase 2021-05-20 16:37:47 +03:00
Ilya Goncharov 18cb8a1b9b [JS IR] Add flag with writing base class to metadata 2021-05-20 16:37:45 +03:00
Ilya Goncharov 228c6879f5 [JS IR] Add per-module output module name 2021-05-20 16:37:44 +03:00
Ilya Goncharov 4d7f7fc50f [Gradle, JS] Use jsOutputName as module name 2021-05-20 16:37:43 +03:00
Ilya Goncharov eaf25b517d [JS IR] Use module name instead of output file wo extension 2021-05-20 16:37:41 +03:00
Ilya Goncharov 0e00186ca1 [JS IR] Fix compilation after rebase 2021-05-20 16:37:39 +03:00
Anton Bannykh 0182c09318 [JS IR] fix name clashes for imported external declarations 2021-05-20 16:37:38 +03:00
Anton Bannykh 6e40c814c8 [JS IR] add a flag which prepends a custom prefix to the per-module .js files 2021-05-20 16:37:37 +03:00
Anton Bannykh 7bd9462ffb [JS IR] save the desired JS output file name in the klib.
This is only usedful for code splitting. The output .js file name
is provided by the build system during the module compilation.
It is desirable to keep the .js output file names same as in old BE,
but calculating those name during the klib -> js phase is tricky.

Thus the desired names are saved in the klib, and used later on.
2021-05-20 16:37:35 +03:00
Anton Bannykh 6633a9edc0 [JS IR] add a flag which enable safe property access
If an accessor is not available at runtime we fall back
to the property access.

This is useful in cases when JS objects are casted to Kotlin
classes implicitly. This pattern did work in the old BE, which
lead to a significant amount of code which doesn't work anymore.
2021-05-20 16:37:34 +03:00
Anton Bannykh 8b18818bcc [JS IR] add base class to the $metadata$.interfaces list
This is needed for better compatibility with the old BE.
Some code in Space relies on the $metadata$ format.
2021-05-20 16:37:32 +03:00
Steven Schäfer 984e912f8d JVM IR: Do not unbox Results in suspend lambda invoke methods (KT-46813) 2021-05-20 14:40:00 +02:00
Dmitriy Novozhilov ff3f3d2f9b [FIR] Properly setup search scope for IC symbol provider 2021-05-20 14:21:49 +03:00
Dmitriy Novozhilov 6e4cc49f1d [FIR] Cleanup IC provider creation in FirSessionFactory 2021-05-20 14:21:47 +03:00
Dmitriy Novozhilov 6d38a236c1 [FIR] Extract FIR related part of KotlinToJVMBytecodeCompiler to separate file 2021-05-20 14:21:46 +03:00
Jinseong Jeon f0f1e2d945 FIR checker: report CAPTURED_VAL_INITIALIZATION 2021-05-20 13:59:13 +03:00
Andrey Zinovyev d38effcbbe Use camel-case in FirFunctionCallOrigin
Also componentCall is operator call
2021-05-20 13:46:35 +03:00
Andrey Zinovyev 419aa65381 [FIR] Fix more tests because of modifier usage in resolution 2021-05-20 13:46:34 +03:00
Andrey Zinovyev 07a8ae7e71 [FIR] Mark more calls origin as OPERATOR 2021-05-20 13:46:32 +03:00
Andrey Zinovyev 0a45b3a50b [FIR] Set Function call origin to assign operators' functions 2021-05-20 13:46:31 +03:00
Andrey Zinovyev cd22255ab7 [FIR] Set Function call origin in light tree too
Plus actualize some tests
2021-05-20 13:46:30 +03:00
Andrey Zinovyev e021e25d6c [FIR] Resolve operator calls to operator functions only 2021-05-20 13:46:29 +03:00
Andrey Zinovyev b1c8669b43 [FIR] Resolve infix calls to infix functions only
Implements INFIX_MODIFIER_REQUIRED diagnostics
2021-05-20 13:46:27 +03:00
Hung Nguyen df14deb5a0 Organize integration tests for incremental Kotlin compile
Refactor common code into new abstract class
IncrementalCompilationBaseIT to make the code cleaner and easier to
evolve.

Also add a few missing key scenarios for ABI and non-ABI changes in
Kotlin files, and make it consistent with the test for changes in Java
files.

Bug: KT-45777
Test: Updating them
2021-05-20 12:59:07 +03:00
Mikhail Glukhikh f3c9bd16ee Fix FIR IDE overrideImplement/androidxNotNull test 2021-05-20 12:22:23 +03:00
Mikhail Glukhikh eac6da62d6 Fix FIR IDE highlighting tests 2021-05-20 12:22:22 +03:00
Mikhail Glukhikh 6dd41b617a FIR: position INAPPLICABLE_FILE_TARGET on file use-site (when possible) 2021-05-20 12:22:22 +03:00
Mikhail Glukhikh 6572010eed Introduce use-site annotation target checks for FIR 2021-05-20 12:22:22 +03:00
Mikhail Glukhikh 9a13ec9b76 FIR: report WRONG_ANNOTATION_TARGET on types 2021-05-20 12:22:22 +03:00
Mikhail Glukhikh 2a33a6927c FIR: report WRONG_ANNOTATION_TARGET(_WITH_USE_SITE_TARGET) on declarations 2021-05-20 12:22:21 +03:00
Mikhail Glukhikh 95f2c52659 FirAnnotationHelpers: use KotlinTarget instead of AnnotationTarget 2021-05-20 12:22:21 +03:00
Mikhail Glukhikh 7675ea3c23 Move AnnotationTargetLists & KotlinTarget to common compiler code 2021-05-20 12:22:21 +03:00
Mikhail Glukhikh d11092ae3c FIR: support WRONG_ANNOTATION_TARGET on expressions 2021-05-20 12:22:21 +03:00
Mikhail Glukhikh 92ab600081 FIR: add check of SOURCE retention for EXPRESSION-targeted annotation 2021-05-20 12:22:21 +03:00