diff --git a/.idea/libraries/kotlinc_allopen_compiler_plugin.xml b/.idea/libraries/kotlinc_allopen_compiler_plugin.xml
index 82524dcedd87..979cd5264e49 100644
--- a/.idea/libraries/kotlinc_allopen_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_allopen_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
+
c8adcf05d31e8c8b95c424ff7f4fcea7d1d2fd6c9bf240d4d195209ca4638247
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api.xml b/.idea/libraries/kotlinc_analysis_api.xml
index 50f10db93c71..96adc2bd7eef 100644
--- a/.idea/libraries/kotlinc_analysis_api.xml
+++ b/.idea/libraries/kotlinc_analysis_api.xml
@@ -1,18 +1,18 @@
-
+
-
- 1b444fb7269f7cdd1b507dd3673c837ca842e80186606fac452538cf39604983
+
+ 808d14d862550624a44d83020c4acb20df10bfb851d1921fe58acefa64de1db9
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_fe10.xml b/.idea/libraries/kotlinc_analysis_api_fe10.xml
index 24f5213f3dc6..f7bebde3b6be 100644
--- a/.idea/libraries/kotlinc_analysis_api_fe10.xml
+++ b/.idea/libraries/kotlinc_analysis_api_fe10.xml
@@ -1,18 +1,18 @@
-
+
-
- cbdbf36ad3b26ff90a88b97d35b8f753cb93495ee65618b195f8c56f1c8fb5ee
+
+ d12db97604815acc15173dc8400acae95a1de3b9e68b238b088c18ea2c7fe1ae
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_impl_base.xml b/.idea/libraries/kotlinc_analysis_api_impl_base.xml
index a41729ed38c2..f1f31ae7178f 100644
--- a/.idea/libraries/kotlinc_analysis_api_impl_base.xml
+++ b/.idea/libraries/kotlinc_analysis_api_impl_base.xml
@@ -1,18 +1,18 @@
-
+
-
- 2670c1ef5d0fee7703e85a02adbf332491f4adcbd7f4c73c37ad321284614273
+
+ 98249834548e70376d1685cd136308b9c50b13ae6229cb3988b6c4b87a89317e
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_impl_base_tests.xml b/.idea/libraries/kotlinc_analysis_api_impl_base_tests.xml
index 0c5e72e6ad04..13fa33f0ab3f 100644
--- a/.idea/libraries/kotlinc_analysis_api_impl_base_tests.xml
+++ b/.idea/libraries/kotlinc_analysis_api_impl_base_tests.xml
@@ -1,18 +1,18 @@
-
+
-
+
9244f9542fc33b743fd4eb95cb9afad94469af83cc41cd1145c837b2ea0b6438
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_k2.xml b/.idea/libraries/kotlinc_analysis_api_k2.xml
index ed00746993c4..acf0ee7ce904 100644
--- a/.idea/libraries/kotlinc_analysis_api_k2.xml
+++ b/.idea/libraries/kotlinc_analysis_api_k2.xml
@@ -1,18 +1,18 @@
-
+
-
- e9e4e766955bf04a09ff4b4c774966aa33c4226683426ef7ee86d3a2c9e87815
+
+ 7d2f49b3f048b35eae97c59fb3c89669d9ee2a6dbc9c97e93bd03d11185fd058
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_k2_tests.xml b/.idea/libraries/kotlinc_analysis_api_k2_tests.xml
index 4920941bb026..ce0fc7490a9b 100644
--- a/.idea/libraries/kotlinc_analysis_api_k2_tests.xml
+++ b/.idea/libraries/kotlinc_analysis_api_k2_tests.xml
@@ -1,18 +1,18 @@
-
+
-
- 12e9d0a4b739d4c153650cc6b5f6f0133265e1e775191187753010007478af58
+
+ 53ea7c9843d637ec9d70f4c0c043ed8fbc57acfec300f84079f92ff497a58b34
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_analysis_api_platform_interface.xml b/.idea/libraries/kotlinc_analysis_api_platform_interface.xml
index 2b13e18caf47..5d8bc33e04b8 100644
--- a/.idea/libraries/kotlinc_analysis_api_platform_interface.xml
+++ b/.idea/libraries/kotlinc_analysis_api_platform_interface.xml
@@ -1,18 +1,18 @@
-
+
-
+
208a3912cd03910dc8e8bc66ee080bea29f6690ecaf1540b24ade4052841cd0c
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml b/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml
index bdcada79938e..ae8751040853 100644
--- a/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_android_extensions_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
+
273cb56b099731bfcd042f5723d8927eb6595e60c503e2cbbf8e50279bbf6c1c
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_assignment_compiler_plugin.xml b/.idea/libraries/kotlinc_assignment_compiler_plugin.xml
index 579d73f6e1fa..3c44b6786251 100644
--- a/.idea/libraries/kotlinc_assignment_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_assignment_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 51d89282a038b9f9c5624a7047f3b05bd944afd9873855f8afc0d56369ea7235
+
+ 0f3187ed8596cf01649b033df49a03751c93b03b8a4870a61131935624aed3ec
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_compose_compiler_plugin.xml b/.idea/libraries/kotlinc_compose_compiler_plugin.xml
index 9f7f62aae717..1de14cc8c0c0 100644
--- a/.idea/libraries/kotlinc_compose_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_compose_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 98cab727bfb519b915b9daebd1ef65bef7970948d553edbd77b414d567371d1c
+
+ 7a7c7c7af8efa934124d106e3390c5476be1d8748bd5ce0a110eb0862449cd50
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml b/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml
index f41ddb13b96a..b39b208f7878 100644
--- a/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml
+++ b/.idea/libraries/kotlinc_incremental_compilation_impl_tests.xml
@@ -1,18 +1,18 @@
-
+
-
- 04b1014cb80ed3734acc384c5b73b73326c10367fcf6f4ed326d58f5de676b32
+
+ ece258b962fded77efddacd4cb8a1f2e7e644efd76107244b5383e425232e3d5
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_js_plain_objects_compiler_plugin.xml b/.idea/libraries/kotlinc_js_plain_objects_compiler_plugin.xml
index 9e44b664dba8..99f919a75af0 100644
--- a/.idea/libraries/kotlinc_js_plain_objects_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_js_plain_objects_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
+
b0c84299e91a2fe55e4d23f474442fc1d2e547be95e0cedd1725347c15884619
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_build_common_tests.xml b/.idea/libraries/kotlinc_kotlin_build_common_tests.xml
index 9a80c8d42df5..0939e8db091f 100644
--- a/.idea/libraries/kotlinc_kotlin_build_common_tests.xml
+++ b/.idea/libraries/kotlinc_kotlin_build_common_tests.xml
@@ -1,18 +1,18 @@
-
+
-
- 477d2ee6473418d930ea1c51dcf82750465dd8b60410432c03ea4012db4fabaf
+
+ 9c615ec6ac81903d064179ea39485501c1ae91f440c6e9caaf369e9dd5f4a632
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_cli.xml b/.idea/libraries/kotlinc_kotlin_compiler_cli.xml
index 444b0470ecd6..bf7a199660da 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_cli.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_cli.xml
@@ -1,18 +1,18 @@
-
+
-
- 67c21a14263fc9e4bdef697f378ff2718642c510f11f700155e7d35bf074db11
+
+ bd2525b9407cf403da08b75a189a1df39930a650ba156b68fa59233b763c8445
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_common.xml b/.idea/libraries/kotlinc_kotlin_compiler_common.xml
index 9617695a385b..0e5fe1473874 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_common.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_common.xml
@@ -1,18 +1,18 @@
-
+
-
- 0a6cc1518e695c417a415a5e9d623afdbe0ef61a5466af525fcbc1951a1bff0c
+
+ 02657dbc645409a1e6d8b3fb1b41837f7aac7f5ae6a3f01509d0235fe13f4cde
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml b/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml
index 283174a47077..4c5f4522ef63 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_fe10.xml
@@ -1,18 +1,18 @@
-
+
-
- 415c64817d712c51321be1164109f7e4e0d07adb04e57e47409cb9826c487ad6
+
+ 53d70c4680f4728019eb657edaa31390c5e5b5883b58b301cd8bb3d0bcf38c4d
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_fir.xml b/.idea/libraries/kotlinc_kotlin_compiler_fir.xml
index 30383a34c44d..b2a998d6f98a 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_fir.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_fir.xml
@@ -1,18 +1,18 @@
-
+
-
- babfd8f49f1fe2b2e57fd1ff4c39c54f73624157cdbcda67a31260efd1c5ca03
+
+ 096186388dab1266301ac08c830e2e7f8557466b26a663743dd66c873cca7a17
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_ir.xml b/.idea/libraries/kotlinc_kotlin_compiler_ir.xml
index e7ef7f5c905e..47858fd42208 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_ir.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_ir.xml
@@ -1,18 +1,18 @@
-
+
-
- 531d54d53c6ea8406f6b461dc555b5f816f8a10497fc07238b215b7e28d70a8a
+
+ 7a15cd196b4c93b1795f235c64ba276744325c246aeb746a045ab9447ede47cc
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_compiler_tests.xml b/.idea/libraries/kotlinc_kotlin_compiler_tests.xml
index 8016d7ab414d..c4fca0ffa295 100644
--- a/.idea/libraries/kotlinc_kotlin_compiler_tests.xml
+++ b/.idea/libraries/kotlinc_kotlin_compiler_tests.xml
@@ -1,18 +1,18 @@
-
+
-
- 66c7ae509ad0e1594620e177040d57af4fe5efb4e31b4f3156e83bc3fd2bce0a
+
+ eb358d63dedd3c6437b8de3eb6821295d456f928ab02a67cdf75d1b94c2727c2
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml b/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml
index 1d01a03f75e7..1fd7ff784c3d 100644
--- a/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml
+++ b/.idea/libraries/kotlinc_kotlin_gradle_statistics.xml
@@ -1,18 +1,18 @@
-
+
-
- b0c2200a590800499bb0cd1dc475627753ef87b3f71f354848a8330eb18a169b
+
+ d1b51f2f1c99d9071970e28a6e99c7bb8fb358d5b03834c26e4cdb19ea91d9a7
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_jps_common.xml b/.idea/libraries/kotlinc_kotlin_jps_common.xml
index d62f487fbc91..cab48a466126 100644
--- a/.idea/libraries/kotlinc_kotlin_jps_common.xml
+++ b/.idea/libraries/kotlinc_kotlin_jps_common.xml
@@ -1,18 +1,18 @@
-
+
-
+
386a37676bf6e05213a874c81fc15a28d8da1f86c5b6d458e9d958c9fa3549f4
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath_bootstrap_for_tests.xml b/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath_bootstrap_for_tests.xml
index 86a4cc4305e7..88539be5cafa 100644
--- a/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath_bootstrap_for_tests.xml
+++ b/.idea/libraries/kotlinc_kotlin_jps_plugin_classpath_bootstrap_for_tests.xml
@@ -1,18 +1,18 @@
-
+
-
- 6e5d3a9b59a9ccf3c0b77b5a8d9f573d83e8f23914e264d3c75d1f1e2d641d43
+
+ 454977b789636e3b4a9b142672beb1d3a9a3251eef46755e6a339a9c11c22385
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_script_runtime.xml b/.idea/libraries/kotlinc_kotlin_script_runtime.xml
index bd0c1c2154dd..2b086f6ac7dc 100644
--- a/.idea/libraries/kotlinc_kotlin_script_runtime.xml
+++ b/.idea/libraries/kotlinc_kotlin_script_runtime.xml
@@ -1,18 +1,18 @@
-
+
-
- bf2e155d2bb465376a25c23fa87da531d33c3b2d56586d5ec07b13963133e350
+
+ 08da183cbd2521e6b7f976f9b4026a5d7dcc0d98149681e39cf24578398e1926
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_scripting_common.xml b/.idea/libraries/kotlinc_kotlin_scripting_common.xml
index 19d126ec81f4..7d2a8ed42b36 100644
--- a/.idea/libraries/kotlinc_kotlin_scripting_common.xml
+++ b/.idea/libraries/kotlinc_kotlin_scripting_common.xml
@@ -1,18 +1,18 @@
-
+
-
- 062d9797abf740afac3024e04142ca51f89718a145d2fc19e34897b6be8ee504
+
+ a3df85cc9e0a0442f99a41c10733863eae944e6c12782aa68c860f27e13811ae
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml b/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml
index bbd12e623c8d..b279f3549aee 100644
--- a/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml
+++ b/.idea/libraries/kotlinc_kotlin_scripting_compiler_impl.xml
@@ -1,18 +1,18 @@
-
+
-
- 01e7966a5b8a2528cad1d0b90a8b4a471b96f13a7060e78df4a6641971d2890b
+
+ f9aa9fa13001f5a721f3d0ac2b703c3acbb4bfe1c91236df6c19b3c5741a9e74
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml b/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml
index ae6c7342b3fa..0417b837b28b 100644
--- a/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml
+++ b/.idea/libraries/kotlinc_kotlin_scripting_jvm.xml
@@ -1,18 +1,18 @@
-
+
-
- 38d5d4ae2bd8e1bcc698b4c74bba2626dee575bb20a054416a59e952f578ab3c
+
+ ebdba369cce5659094d9e0d43b4b75c212bc27d0f86e4f7769f417aabf3e05dc
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml b/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml
index 4c1fc1d47ac4..e3e8ab66b104 100644
--- a/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_kotlinx_serialization_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 8e6298709f8069827106bba06affea8d6bcbbce292ffb1b6403f9744c0ea759c
+
+ 7c78b515ffb228a6854c47a1ae1d7e64f7e354242953a22d8bb0e623577aa3e4
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_lombok_compiler_plugin.xml b/.idea/libraries/kotlinc_lombok_compiler_plugin.xml
index 59251d062a4e..d0eaeb5019f5 100644
--- a/.idea/libraries/kotlinc_lombok_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_lombok_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 37f0d61c72d7dbcbf91b079d150b3d29234875d7a74ceb9e0523dcfdb2656dba
+
+ 3f35ee8969bf029e8351cfa96200db19463ad1b4008ac939b6c150f98a53ef40
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_low_level_api_fir.xml b/.idea/libraries/kotlinc_low_level_api_fir.xml
index 6481116b4171..38e7770fc2fc 100644
--- a/.idea/libraries/kotlinc_low_level_api_fir.xml
+++ b/.idea/libraries/kotlinc_low_level_api_fir.xml
@@ -1,18 +1,18 @@
-
+
-
- eb22464cad954a6b922e69d1594883e7ec05c6bbecf74874610b931dc2e140c1
+
+ c3829c47b96f7f59c369d717fffbebf350130e3d54fc2ab9a9543e324e5bd8e8
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_noarg_compiler_plugin.xml b/.idea/libraries/kotlinc_noarg_compiler_plugin.xml
index b5bd5f7a6279..e36517b29634 100644
--- a/.idea/libraries/kotlinc_noarg_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_noarg_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
+
27ec611f8efc1e7d59d1f153cd1b7605ef38aa266095b3cca9280a976d3972a8
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml b/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml
index 760c27fbd25c..edfa87e1ee02 100644
--- a/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_parcelize_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 062fae0ea84b4bc8ab80dcc94100263f741e8e8a7e5a1ba62aaa0d0b75c0239e
+
+ e3b63fb1169de0486b557c60e673b30ccd7afe19f94ca2c6babb1bdb706af108
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml b/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml
index 0ed31e358e5a..53fd724ff9ae 100644
--- a/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_sam_with_receiver_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
+
8baba2c6e065e2895dcf483a067ed4f2088408e2b5a2522ef4f375ed27ab908b
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_scripting_compiler_plugin.xml b/.idea/libraries/kotlinc_scripting_compiler_plugin.xml
index 4fa26a9143e9..52cfec5fe886 100644
--- a/.idea/libraries/kotlinc_scripting_compiler_plugin.xml
+++ b/.idea/libraries/kotlinc_scripting_compiler_plugin.xml
@@ -1,18 +1,18 @@
-
+
-
- 83ec2e236bfb4e66c766aa84e83582fd83dbb290162fff6140627742ba1169fb
+
+ 4fe0e7ebcca741c6676e0f05b144b45cfd916f342c61c91d0b5715d6c519e8a9
-
+
-
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlinc_symbol_light_classes.xml b/.idea/libraries/kotlinc_symbol_light_classes.xml
index 91cd6445b014..1998405cb533 100644
--- a/.idea/libraries/kotlinc_symbol_light_classes.xml
+++ b/.idea/libraries/kotlinc_symbol_light_classes.xml
@@ -1,18 +1,18 @@
-
+
-
- 67cdd930333a1fee46b45e997560cb5279c6c92f060fffd44832255104834531
+
+ aae2dbec6fb5ca4f1f2b08c8db2af4f8e104fa6b244e3f8df9fdc21378e99380
-
+
-
+
\ No newline at end of file
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HyperlinkAnnotator.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HyperlinkAnnotator.java
index d84ddd3436a6..8e8aaf2ea350 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HyperlinkAnnotator.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/HyperlinkAnnotator.java
@@ -28,9 +28,7 @@ import com.intellij.psi.util.ParameterizedCachedValue;
import com.intellij.psi.util.ParameterizedCachedValueProvider;
import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.util.containers.ContainerUtil;
-import org.jetbrains.annotations.ApiStatus;
-import org.jetbrains.annotations.Nls;
-import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.*;
import java.util.List;
@@ -76,11 +74,16 @@ public class HyperlinkAnnotator implements Annotator, DumbAware {
}
}
+ @VisibleForTesting
+ public static @NotNull List calculateReferences(@NotNull PsiElement element) {
+ return PsiReferenceService.getService().getReferences(element, Hints.HIGHLIGHTED_REFERENCES);
+ }
+
private static final Key, PsiElement>> REFS_KEY = Key.create("HyperlinkAnnotator");
private static final ParameterizedCachedValueProvider, PsiElement> REFS_PROVIDER = element -> {
List references;
try {
- references = PsiReferenceService.getService().getReferences(element, Hints.HIGHLIGHTED_REFERENCES);
+ references = calculateReferences(element);
}
catch (IndexNotReadyException ignored) {
return Result.create(emptyList(), DumbService.getInstance(element.getProject()));
diff --git a/plugins/kotlin/base/analysis-api/analysis-api-utils/src/org/jetbrains/kotlin/idea/base/analysis/api/utils/importUtils.kt b/plugins/kotlin/base/analysis-api/analysis-api-utils/src/org/jetbrains/kotlin/idea/base/analysis/api/utils/importUtils.kt
new file mode 100644
index 000000000000..90899199a52b
--- /dev/null
+++ b/plugins/kotlin/base/analysis-api/analysis-api-utils/src/org/jetbrains/kotlin/idea/base/analysis/api/utils/importUtils.kt
@@ -0,0 +1,22 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.kotlin.idea.base.analysis.api.utils
+
+import org.jetbrains.annotations.ApiStatus
+import org.jetbrains.kotlin.analysis.api.imports.KaDefaultImports
+import org.jetbrains.kotlin.analysis.api.imports.getDefaultImports
+import org.jetbrains.kotlin.analysis.api.projectStructure.KaModule
+import org.jetbrains.kotlin.analysis.api.projectStructure.KaModuleProvider
+import org.jetbrains.kotlin.psi.KtFile
+import org.jetbrains.kotlin.resolve.ImportPath
+
+@ApiStatus.Internal
+fun KtFile.getDefaultImports(useSiteModule: KaModule?): KaDefaultImports {
+ val project = project
+ val kaModule = KaModuleProvider.getModule(project, this, useSiteModule)
+ return kaModule.targetPlatform.getDefaultImports(project)
+}
+
+@ApiStatus.Internal
+fun KtFile.getDefaultImportPaths(useSiteModule: KaModule?): List {
+ return getDefaultImports(useSiteModule).defaultImports.map { it.importPath }
+}
\ No newline at end of file
diff --git a/plugins/kotlin/base/analysis/kotlin.base.analysis.iml b/plugins/kotlin/base/analysis/kotlin.base.analysis.iml
index 7a3dc9125911..35819f9675d9 100644
--- a/plugins/kotlin/base/analysis/kotlin.base.analysis.iml
+++ b/plugins/kotlin/base/analysis/kotlin.base.analysis.iml
@@ -4,7 +4,7 @@
-
+
diff --git a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/KotlinSearchUsagesSupport.kt b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/KotlinSearchUsagesSupport.kt
index 8d132570fbd4..f4cf6cd6984e 100644
--- a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/KotlinSearchUsagesSupport.kt
+++ b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/KotlinSearchUsagesSupport.kt
@@ -3,7 +3,6 @@
package org.jetbrains.kotlin.idea.search
import com.intellij.openapi.components.service
-import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.psi.*
import com.intellij.psi.search.SearchScope
@@ -78,9 +77,6 @@ interface KotlinSearchUsagesSupport {
fun PsiFile.scriptDefinitionExists(): Boolean =
getInstance(project).scriptDefinitionExists(this)
- fun KtFile.getDefaultImports(): List =
- getInstance(project).getDefaultImports(this)
-
fun forEachKotlinOverride(
ktClass: KtClass,
members: List,
diff --git a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/PsiBasedClassResolver.kt b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/PsiBasedClassResolver.kt
index cd45e92e0eb0..2aebccf1345f 100644
--- a/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/PsiBasedClassResolver.kt
+++ b/plugins/kotlin/base/analysis/src/org/jetbrains/kotlin/idea/search/PsiBasedClassResolver.kt
@@ -11,11 +11,12 @@ import com.intellij.psi.util.CachedValue
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import org.jetbrains.annotations.TestOnly
+import org.jetbrains.kotlin.analysis.api.imports.getDefaultImports
+import org.jetbrains.kotlin.analysis.api.projectStructure.KaModuleProvider
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.*
import org.jetbrains.kotlin.idea.base.util.allScope
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
-import org.jetbrains.kotlin.idea.search.KotlinSearchUsagesSupport.SearchUtils.getDefaultImports
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.*
@@ -168,7 +169,10 @@ class PsiBasedClassResolver @TestOnly constructor(private val targetClassFqName:
in packagesWithTypeAliases -> return UNSURE
}
- for (importPath in file.getDefaultImports()) {
+ val project = file.project
+ val kaModule = KaModuleProvider.getModule(project, file, useSiteModule = null)
+ for (defaultImports in kaModule.targetPlatform.getDefaultImports(project).defaultImports) {
+ val importPath = defaultImports.importPath
result = analyzeSingleImport(result, importPath.fqName, importPath.isAllUnder, importPath.alias?.asString())
if (result == Result.Ambiguity) return UNSURE
}
diff --git a/plugins/kotlin/base/fe10/analysis/kotlin.base.fe10.analysis.iml b/plugins/kotlin/base/fe10/analysis/kotlin.base.fe10.analysis.iml
index 2f5c3788acf5..0f03f9038e8d 100644
--- a/plugins/kotlin/base/fe10/analysis/kotlin.base.fe10.analysis.iml
+++ b/plugins/kotlin/base/fe10/analysis/kotlin.base.fe10.analysis.iml
@@ -32,6 +32,7 @@
+
\ No newline at end of file
diff --git a/plugins/kotlin/base/fe10/analysis/src/org/jetbrains/kotlin/base/fe10/analysis/KaFe10DefaultImportsProvider.kt b/plugins/kotlin/base/fe10/analysis/src/org/jetbrains/kotlin/base/fe10/analysis/KaFe10DefaultImportsProvider.kt
new file mode 100644
index 000000000000..a027ff7034fc
--- /dev/null
+++ b/plugins/kotlin/base/fe10/analysis/src/org/jetbrains/kotlin/base/fe10/analysis/KaFe10DefaultImportsProvider.kt
@@ -0,0 +1,15 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.kotlin.base.fe10.analysis
+
+import com.intellij.openapi.project.Project
+import org.jetbrains.kotlin.analysis.api.KaImplementationDetail
+import org.jetbrains.kotlin.analysis.api.impl.base.imports.KaBaseDefaultImportsProvider
+import org.jetbrains.kotlin.idea.base.projectStructure.compositeAnalysis.findAnalyzerServices
+import org.jetbrains.kotlin.platform.TargetPlatform
+import org.jetbrains.kotlin.resolve.DefaultImportProvider
+
+@OptIn(KaImplementationDetail::class)
+internal class KaFe10DefaultImportsProvider(private val project: Project) : KaBaseDefaultImportsProvider() {
+ override fun getCompilerDefaultImportProvider(targetPlatform: TargetPlatform): DefaultImportProvider =
+ targetPlatform.findAnalyzerServices(project)
+}
\ No newline at end of file
diff --git a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/base/indices/names/internalUtils.kt b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/base/indices/names/internalUtils.kt
index 4bf4c6575739..f2870fe497da 100644
--- a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/base/indices/names/internalUtils.kt
+++ b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/base/indices/names/internalUtils.kt
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinaryClass
import org.jetbrains.kotlin.metadata.ProtoBuf
-import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
+import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmNameResolver
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil
import org.jetbrains.kotlin.name.FqName
@@ -63,7 +63,7 @@ internal fun readProtoPackageData(kotlinJvmBinaryClass: KotlinJvmBinaryClass): P
internal fun FileContent.toKotlinJvmBinaryClass(): KotlinJvmBinaryClass? {
val result = try {
- KotlinBinaryClassCache.getKotlinBinaryClassOrClassFileContent(file, JvmMetadataVersion.INSTANCE, content) ?: return null
+ KotlinBinaryClassCache.getKotlinBinaryClassOrClassFileContent(file, MetadataVersion.INSTANCE, content) ?: return null
} catch (e: Exception) {
if (e is ControlFlowException) throw e
diff --git a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinJvmModuleAnnotationsIndex.kt b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinJvmModuleAnnotationsIndex.kt
index af7fa3caa5bc..dc8c07b40693 100644
--- a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinJvmModuleAnnotationsIndex.kt
+++ b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinJvmModuleAnnotationsIndex.kt
@@ -7,7 +7,7 @@ import com.intellij.util.indexing.hints.FileTypeInputFilterPredicate
import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.IOUtil
import org.jetbrains.kotlin.idea.KotlinModuleFileType
-import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
+import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
import org.jetbrains.kotlin.metadata.jvm.deserialization.ModuleMapping
import org.jetbrains.kotlin.name.ClassId
import java.io.DataInput
@@ -50,7 +50,7 @@ class KotlinJvmModuleAnnotationsIndex internal constructor() : FileBasedIndexExt
debugName = file.toString(),
skipMetadataVersionCheck = false,
isJvmPackageNameSupported = true,
- metadataVersionFromLanguageVersion = JvmMetadataVersion.INSTANCE,
+ metadataVersionFromLanguageVersion = MetadataVersion.INSTANCE,
) {}
if (moduleMapping !== ModuleMapping.EMPTY) {
diff --git a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinModuleMappingIndex.kt b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinModuleMappingIndex.kt
index 2557be75ee48..9253c82145a3 100644
--- a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinModuleMappingIndex.kt
+++ b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/vfilefinder/KotlinModuleMappingIndex.kt
@@ -8,7 +8,7 @@ import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.IOUtil
import com.intellij.util.io.KeyDescriptor
import org.jetbrains.kotlin.idea.KotlinModuleFileType
-import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
+import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
import org.jetbrains.kotlin.metadata.jvm.deserialization.ModuleMapping
import org.jetbrains.kotlin.metadata.jvm.deserialization.PackageParts
import java.io.DataInput
@@ -69,7 +69,7 @@ class KotlinModuleMappingIndex internal constructor() : FileBasedIndexExtension<
debugName = file.toString(),
skipMetadataVersionCheck = false,
isJvmPackageNameSupported = true,
- metadataVersionFromLanguageVersion = JvmMetadataVersion.INSTANCE,
+ metadataVersionFromLanguageVersion = MetadataVersion.INSTANCE,
) {
// Do nothing; it's OK for an IDE index to just ignore incompatible module files
}
diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/imprt/ImportQuickFixProvider.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/imprt/ImportQuickFixProvider.kt
index c1aefa5eb12d..9b1c3e7431d4 100644
--- a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/imprt/ImportQuickFixProvider.kt
+++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/imprt/ImportQuickFixProvider.kt
@@ -15,16 +15,14 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KaNamedSymbol
import org.jetbrains.kotlin.analysis.api.types.KaErrorType
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
import org.jetbrains.kotlin.idea.base.analysis.api.utils.KtSymbolFromIndexProvider
+import org.jetbrains.kotlin.idea.base.analysis.api.utils.getDefaultImports
import org.jetbrains.kotlin.idea.base.codeInsight.KotlinIconProvider.getIconFor
-import org.jetbrains.kotlin.idea.base.facet.platform.platform
-import org.jetbrains.kotlin.idea.base.projectStructure.compositeAnalysis.findAnalyzerServices
-import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
import org.jetbrains.kotlin.idea.base.utils.fqname.isImported
import org.jetbrains.kotlin.idea.codeInsight.K2StatisticsInfoProvider
import org.jetbrains.kotlin.idea.codeinsight.utils.getFqNameIfPackageOrNonLocal
-import org.jetbrains.kotlin.idea.highlighter.kotlinUnresolvedReferenceKinds
import org.jetbrains.kotlin.idea.highlighter.KotlinUnresolvedReferenceKind
import org.jetbrains.kotlin.idea.highlighter.KotlinUnresolvedReferenceKind.UnresolvedDelegateFunction
+import org.jetbrains.kotlin.idea.highlighter.kotlinUnresolvedReferenceKinds
import org.jetbrains.kotlin.idea.quickfix.ImportFixHelper
import org.jetbrains.kotlin.idea.quickfix.ImportPrioritizer
import org.jetbrains.kotlin.idea.util.positionContext.*
@@ -152,11 +150,16 @@ object ImportQuickFixProvider {
val containingKtFile = position.containingKtFile
- val analyzerServices = containingKtFile.platform.findAnalyzerServices(position.project)
- val defaultImports = analyzerServices.getDefaultImports(position.languageVersionSettings, includeLowPriorityImports = true)
- val excludedImports = analyzerServices.excludedImports
+ val defaultImports = containingKtFile.getDefaultImports(useSiteModule)
+
+ val isImported = { fqName: FqName ->
+ ImportPath(fqName, isAllUnder = false)
+ .isImported(
+ defaultImports.defaultImports.map { it.importPath },
+ defaultImports.excludedFromDefaultImports.map { it.fqName }
+ )
+ }
- val isImported = { fqName: FqName -> ImportPath(fqName, isAllUnder = false).isImported(defaultImports, excludedImports) }
val importPrioritizer = ImportPrioritizer(containingKtFile, isImported)
val expressionImportWeigher = ExpressionImportWeigher.createWeigher(position)
diff --git a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/references/KotlinIssueReferenceContributor.kt b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/references/KotlinIssueReferenceContributor.kt
index bfe181824e85..80e5486ddfc2 100644
--- a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/references/KotlinIssueReferenceContributor.kt
+++ b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/references/KotlinIssueReferenceContributor.kt
@@ -5,13 +5,22 @@ import com.intellij.patterns.PlatformPatterns
import com.intellij.psi.PsiReferenceContributor
import com.intellij.psi.PsiReferenceRegistrar
import com.intellij.psi.impl.source.resolve.reference.CommentsReferenceContributor
+import org.jetbrains.kotlin.kdoc.psi.impl.KDocSection
import org.jetbrains.kotlin.psi.KtStringTemplateExpression
class KotlinIssueReferenceContributor : PsiReferenceContributor() {
override fun registerReferenceProviders(registrar: PsiReferenceRegistrar) {
+ val provider = CommentsReferenceContributor.COMMENTS_REFERENCE_PROVIDER_TYPE.provider
+
registrar.registerReferenceProvider(
PlatformPatterns.psiElement(KtStringTemplateExpression::class.java),
- CommentsReferenceContributor.COMMENTS_REFERENCE_PROVIDER_TYPE.provider,
+ provider,
+ PsiReferenceRegistrar.LOWER_PRIORITY,
+ )
+
+ registrar.registerReferenceProvider(
+ PlatformPatterns.psiElement(KDocSection::class.java),
+ provider,
PsiReferenceRegistrar.LOWER_PRIORITY,
)
}
diff --git a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/ImportStrategyDetector.kt b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/ImportStrategyDetector.kt
index 2e0ab0ff296d..e7ad6ed77541 100644
--- a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/ImportStrategyDetector.kt
+++ b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/ImportStrategyDetector.kt
@@ -4,14 +4,8 @@ package org.jetbrains.kotlin.idea.completion.impl.k2
import com.intellij.openapi.project.Project
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.kotlin.analysis.api.KaSession
-import org.jetbrains.kotlin.analysis.api.symbols.KaCallableSymbol
-import org.jetbrains.kotlin.analysis.api.symbols.KaClassLikeSymbol
-import org.jetbrains.kotlin.analysis.api.symbols.KaClassSymbol
-import org.jetbrains.kotlin.analysis.api.symbols.KaClassifierSymbol
-import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolLocation
-import org.jetbrains.kotlin.idea.base.facet.platform.platform
-import org.jetbrains.kotlin.idea.base.projectStructure.compositeAnalysis.findAnalyzerServices
-import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
+import org.jetbrains.kotlin.analysis.api.symbols.*
+import org.jetbrains.kotlin.idea.base.analysis.api.utils.getDefaultImports
import org.jetbrains.kotlin.idea.base.utils.fqname.isImported
import org.jetbrains.kotlin.idea.completion.lookups.ImportStrategy
import org.jetbrains.kotlin.idea.completion.lookups.isExtensionCall
@@ -21,11 +15,15 @@ import org.jetbrains.kotlin.resolve.ImportPath
@ApiStatus.Internal
class ImportStrategyDetector(originalKtFile: KtFile, project: Project) {
- private val analyzerServices = originalKtFile.platform.findAnalyzerServices(project)
- private val defaultImports = analyzerServices
- .getDefaultImports(originalKtFile.languageVersionSettings, includeLowPriorityImports = true).toSet()
+ private val defaultImports: Set
+ private val excludedImports: List
+
+ init {
+ val imports = originalKtFile.getDefaultImports(useSiteModule = null)
+ defaultImports = imports.defaultImports.mapTo(mutableSetOf()) { it.importPath }
+ excludedImports = imports.excludedFromDefaultImports.map { it.fqName }
+ }
- private val excludedImports = analyzerServices.excludedImports
context(KaSession)
fun detectImportStrategyForCallableSymbol(symbol: KaCallableSymbol, isFunctionalVariableCall: Boolean = false): ImportStrategy {
diff --git a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/weighers/Weighers.kt b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/weighers/Weighers.kt
index 346dc8b45079..8aed542fc822 100644
--- a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/weighers/Weighers.kt
+++ b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/weighers/Weighers.kt
@@ -17,8 +17,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.KaSymbol
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaNamedSymbol
import org.jetbrains.kotlin.analysis.api.types.KaType
import org.jetbrains.kotlin.config.LanguageVersionSettings
-import org.jetbrains.kotlin.idea.base.facet.platform.platform
-import org.jetbrains.kotlin.idea.base.projectStructure.compositeAnalysis.findAnalyzerServices
+import org.jetbrains.kotlin.idea.base.analysis.api.utils.getDefaultImportPaths
import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
import org.jetbrains.kotlin.idea.base.utils.fqname.ImportableFqNameClassifier
import org.jetbrains.kotlin.idea.completion.contributors.helpers.CompletionSymbolOrigin
@@ -104,7 +103,7 @@ internal class WeighingContext private constructor(
symbolsToSkip: Set = emptySet(),
): WeighingContext {
val fakeCompletionFile = positionInFakeCompletionFile.containingFile as KtFile
- val defaultImportPaths = fakeCompletionFile.getDefaultImportPaths()
+ val defaultImportPaths = fakeCompletionFile.getDefaultImportPaths(useSiteModule = basicContext.useSiteModule).toSet()
val languageVersionSettings = fakeCompletionFile.languageVersionSettings
return WeighingContext(
token,
@@ -131,11 +130,6 @@ internal class WeighingContext private constructor(
positionInFakeCompletionFile
)
- private fun KtFile.getDefaultImportPaths(): Set {
- return this.platform.findAnalyzerServices(project)
- .getDefaultImports(languageVersionSettings, true).toSet()
- }
-
private fun Set.hasImport(name: FqName): Boolean {
return ImportPath(name, false) in this || ImportPath(name.parent(), true) in this
}
diff --git a/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-28743.kt b/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-28743.kt
index 93d0b8e5d55d..6333d32dfbd9 100644
--- a/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-28743.kt
+++ b/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-28743.kt
@@ -1,4 +1,5 @@
-// IGNORE_K2
+// FIR_IDENTICAL
+// FIR_COMPARISON
fun CharSequence.fooBar() {}
open class Foo(private val element: CharSequence)
diff --git a/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-30225.kt b/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-30225.kt
index 97339aa599a6..e7756829a6a4 100644
--- a/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-30225.kt
+++ b/plugins/kotlin/completion/testData/basic/common/extensions/KTIJ-30225.kt
@@ -1,4 +1,5 @@
-// IGNORE_K2
+// FIR_IDENTICAL
+// FIR_COMPARISON
class Foo(private val bar: () -> String) {
fun foo() {
diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeCompiledLightClassesByFqNameTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeCompiledLightClassesByFqNameTestGenerated.java
index 6c3257a596a2..b5f8bc9518b3 100644
--- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeCompiledLightClassesByFqNameTestGenerated.java
+++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeCompiledLightClassesByFqNameTestGenerated.java
@@ -365,6 +365,16 @@ public abstract class IdeCompiledLightClassesByFqNameTestGenerated extends Abstr
runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/CompanionObjectWithAConflictingProperty.kt"));
}
+ @TestMetadata("constructorWithValueClass.kt")
+ public void testConstructorWithValueClass() throws Exception {
+ runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/constructorWithValueClass.kt"));
+ }
+
+ @TestMetadata("constructorWithValueClassAsProperty.kt")
+ public void testConstructorWithValueClassAsProperty() throws Exception {
+ runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/constructorWithValueClassAsProperty.kt"));
+ }
+
@TestMetadata("Constructors.kt")
public void testConstructors() throws Exception {
runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/Constructors.kt"));
diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeLightClassesByFqNameTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeLightClassesByFqNameTestGenerated.java
index ddfd3d3e634c..b7d3b6f67dbb 100644
--- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeLightClassesByFqNameTestGenerated.java
+++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/asJava/classes/IdeLightClassesByFqNameTestGenerated.java
@@ -635,6 +635,16 @@ public abstract class IdeLightClassesByFqNameTestGenerated extends AbstractIdeLi
runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/CompanionObjectWithAConflictingProperty.kt"));
}
+ @TestMetadata("constructorWithValueClass.kt")
+ public void testConstructorWithValueClass() throws Exception {
+ runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/constructorWithValueClass.kt"));
+ }
+
+ @TestMetadata("constructorWithValueClassAsProperty.kt")
+ public void testConstructorWithValueClassAsProperty() throws Exception {
+ runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/constructorWithValueClassAsProperty.kt"));
+ }
+
@TestMetadata("Constructors.kt")
public void testConstructors() throws Exception {
runTest(compilerTestData("compiler/testData/asJava/lightClasses/lightClassByFqName/Constructors.kt"));
diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/KotlinIssueReferenceContributorTest.kt b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/KotlinIssueReferenceContributorTest.kt
index 38c8d7ae46dc..8c7e7562d43d 100644
--- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/KotlinIssueReferenceContributorTest.kt
+++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/KotlinIssueReferenceContributorTest.kt
@@ -1,6 +1,7 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.kotlin.idea.codeInsight
+import com.intellij.codeInsight.highlighting.HyperlinkAnnotator
import com.intellij.openapi.paths.WebReference
import com.intellij.openapi.vcs.IssueNavigationConfiguration
import com.intellij.openapi.vcs.IssueNavigationLink
@@ -8,7 +9,6 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiRecursiveElementWalkingVisitor
import com.intellij.psi.PsiReference
-import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.junit.Assert
import org.junit.Before
@@ -26,7 +26,7 @@ class KotlinIssueReferenceContributorTest : KotlinLightCodeInsightFixtureTestCas
}
@Test
- fun `web reference in string`() {
+ fun `web reference in strings, comments and kdoc`() {
val quotes = "\"\"\""
val dlr = "\$"
myFixture.configureByText(
@@ -38,7 +38,12 @@ class KotlinIssueReferenceContributorTest : KotlinLightCodeInsightFixtureTestCas
IDEA-320295
${quotes}
val s4 = "${dlr}{s1} IDEA-320298"
- val s5 = " zIDEA-320299 "
+ val s5 = " zIDEA-320299 " // IDEA-320300
+
+ /**
+ * IDEA-320301
+ */
+ fun foo(){}
""".trimIndent()
)
assertWebReferences("""
@@ -47,6 +52,8 @@ class KotlinIssueReferenceContributorTest : KotlinLightCodeInsightFixtureTestCas
IDEA-320297->http://youtrack.jetbrains.com/issue/IDEA-320297
IDEA-320295->http://youtrack.jetbrains.com/issue/IDEA-320295
IDEA-320298->http://youtrack.jetbrains.com/issue/IDEA-320298
+ IDEA-320300->http://youtrack.jetbrains.com/issue/IDEA-320300
+ IDEA-320301->http://youtrack.jetbrains.com/issue/IDEA-320301
""".trimIndent())
}
@@ -63,7 +70,12 @@ class KotlinIssueReferenceContributorTest : KotlinLightCodeInsightFixtureTestCas
IDEA-320295
${quotes}
val s4 = "${dlr}{s1} IDEA-320295"
- val s5 = " zIDEA-320295 "
+ val s5 = " zIDEA-320295 " // IDEA-320300
+
+ /**
+ * IDEA-320301
+ */
+ fun foo(){}
""".trimIndent()
)
@@ -82,7 +94,7 @@ class KotlinIssueReferenceContributorTest : KotlinLightCodeInsightFixtureTestCas
file.accept(object : PsiRecursiveElementWalkingVisitor(true) {
override fun visitElement(element: PsiElement) {
super.visitElement(element)
- result.addAll(ReferenceProvidersRegistry.getReferencesFromProviders(element))
+ result.addAll(HyperlinkAnnotator.calculateReferences(element))
}
})
return result
diff --git a/plugins/kotlin/idea/tests/testData/checker/codeFragments/classHeaderWithTypeArguments.kt.fragment.k2 b/plugins/kotlin/idea/tests/testData/checker/codeFragments/classHeaderWithTypeArguments.kt.fragment.k2
index c8ebe7f13691..9c38a9400e67 100644
--- a/plugins/kotlin/idea/tests/testData/checker/codeFragments/classHeaderWithTypeArguments.kt.fragment.k2
+++ b/plugins/kotlin/idea/tests/testData/checker/codeFragments/classHeaderWithTypeArguments.kt.fragment.k2
@@ -1 +1 @@
-this.foo("a")
\ No newline at end of file
+this.foo("a")
\ No newline at end of file
diff --git a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/diagnostics/mppIsNotEnabled.kt.highlighting.k2 b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/diagnostics/mppIsNotEnabled.kt.highlighting.k2
index 4b62aa379073..f37d23db47a9 100644
--- a/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/diagnostics/mppIsNotEnabled.kt.highlighting.k2
+++ b/plugins/kotlin/idea/tests/testData/highlighterMetaInfo/diagnostics/mppIsNotEnabled.kt.highlighting.k2
@@ -7,4 +7,4 @@
public operator fun invoke(cause: Throwable?)
}
- = Bar'.'; highlightingTextAttributesKey='ERRORS_ATTRIBUTES'")!>public actual typealias CompletionHandler = (cause: Throwable?) -> Unit
+ = Bar'.'; highlightingTextAttributesKey='ERRORS_ATTRIBUTES'")!>public actual typealias CompletionHandler = (cause: Throwable?) -> Unit
diff --git a/plugins/kotlin/idea/tests/testData/inspections/dfa/ReifiedGenericK2.kt b/plugins/kotlin/idea/tests/testData/inspections/dfa/ReifiedGenericK2.kt
index 9716324ce0ec..0a37b49d8a9d 100644
--- a/plugins/kotlin/idea/tests/testData/inspections/dfa/ReifiedGenericK2.kt
+++ b/plugins/kotlin/idea/tests/testData/inspections/dfa/ReifiedGenericK2.kt
@@ -26,7 +26,7 @@ class TreeWalker {
// K2 reports it (which looks correct), and this causes the warning suppression
while (current != null) {
// Difference from K1: error messages is spelled differently
- if (current.type is T)
+ if (current.type is T)
return true
current = current.parent()
}
diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject3.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject3.kt
index 8706dee77a48..80c0eeb146f4 100644
--- a/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject3.kt
+++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject3.kt
@@ -9,5 +9,3 @@ object B : A({})
object C : A({
fun foo() = B.prop.toString()
})
-
-// IGNORE_K2
\ No newline at end of file
diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject4.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject4.kt
index ceaf2dbfdf93..c9b6be20e704 100644
--- a/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject4.kt
+++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/removeRedundantQualifierName/notApplicableObject4.kt
@@ -13,5 +13,3 @@ constructor(): super(
}
)
}
-
-// IGNORE_K2
\ No newline at end of file
diff --git a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt
index 5cd545dd701a..c5a7327336d6 100644
--- a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt
+++ b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt
@@ -1,4 +1,4 @@
-// ERROR: The feature "context receivers" is experimental and should be enabled explicitly
+// ERROR: The feature "context receivers" is experimental and should be enabled explicitly. This can be done by supplying the compiler argument '-Xcontext-receivers', but note that no stability guarantees are provided.
class A
context(A)
diff --git a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt.after b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt.after
index f165c70dd6d5..397dc3d2a542 100644
--- a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt.after
+++ b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/hasModifier5.kt.after
@@ -1,4 +1,4 @@
-// ERROR: The feature "context receivers" is experimental and should be enabled explicitly
+// ERROR: The feature "context receivers" is experimental and should be enabled explicitly. This can be done by supplying the compiler argument '-Xcontext-receivers', but note that no stability guarantees are provided.
class A
context(A)
diff --git a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt
index 833e4781e5c8..ec0b364dc015 100644
--- a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt
+++ b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt
@@ -1,4 +1,4 @@
-// ERROR: The feature "context receivers" is experimental and should be enabled explicitly
+// ERROR: The feature "context receivers" is experimental and should be enabled explicitly. This can be done by supplying the compiler argument '-Xcontext-receivers', but note that no stability guarantees are provided.
class A
context(A)
diff --git a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt.after b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt.after
index 65dece4e1dbd..633d6249a76c 100644
--- a/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt.after
+++ b/plugins/kotlin/idea/tests/testData/intentions/changeVisibility/private/noModifierListContext.kt.after
@@ -1,4 +1,4 @@
-// ERROR: The feature "context receivers" is experimental and should be enabled explicitly
+// ERROR: The feature "context receivers" is experimental and should be enabled explicitly. This can be done by supplying the compiler argument '-Xcontext-receivers', but note that no stability guarantees are provided.
class A
context(A)
diff --git a/plugins/kotlin/idea/tests/testData/intentions/convertParameterToReceiver/explicitThis.kt.after.k2 b/plugins/kotlin/idea/tests/testData/intentions/convertParameterToReceiver/explicitThis.kt.after.k2
new file mode 100644
index 000000000000..73d4ba3a269d
--- /dev/null
+++ b/plugins/kotlin/idea/tests/testData/intentions/convertParameterToReceiver/explicitThis.kt.after.k2
@@ -0,0 +1,8 @@
+class A
+
+class B {
+ val foo = 1
+ fun A.test() {
+ foo
+ }
+}
\ No newline at end of file
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts
index 742251f4d556..56e1d40866c4 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'B' on 'SomeImplementation'
// ACTION: Propagate 'B' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class A
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts.after
index dd10bfa8e729..082d37170ca8 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn.kts.after
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'B' on 'SomeImplementation'
// ACTION: Propagate 'B' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class A
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts
index e2a9d027f967..2002488d7b18 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to containing class 'Derived'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts.after
index fad157fe2940..44e82a3cd618 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn2.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to containing class 'Derived'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts
index 9671b4434c66..f78fb48c8959 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts.after
index d3ca8a68370b..78db4d601b43 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn3.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts
index 765057ed1612..13c73ad14b48 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts.after
index 8adc2c7df405..090a012a9a49 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn4.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts
index 5599d9bd80a6..a6e34af83a2a 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts.after
index 82996b46e6a8..ba4d45f6f657 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn5.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts
index 4186ba56fe4e..2f12e2987d36 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts.after
index 77a6280521dd..028af75c350a 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn6.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts
index c5b25a0ea474..fd26fb8911ab 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts.after
index 5b64d15be291..1469412b5dbc 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn7.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'UnstableApi' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn8.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn8.kts
index 949b1f01b6d2..c1b02b75be27 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn8.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateOptIn8.kts
@@ -8,7 +8,7 @@
// ACTION: Opt in for 'UnstableApi' on 'foo'
// ACTION: Propagate 'UnstableApi' opt-in requirement to 'foo'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts
index 86e630e9fea7..a2b5950a1a72 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts
@@ -1,6 +1,6 @@
// "Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts.after
index 032bb124fbe5..e8f29922c02f 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired.kts.after
@@ -1,6 +1,6 @@
// "Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'" "true"
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts
index 144f3fd5818a..7c76a1b27fb3 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts
@@ -9,7 +9,7 @@
// ACTION: Propagate 'SubclassOptInRequired(A::class)' opt-in requirement to 'SomeImplementation'
// ERROR: This class or interface requires opt-in to be implemented. Its usage must be marked with '@PropagateSubclassOptInRequired2.B', '@OptIn(PropagateSubclassOptInRequired2.B::class)' or '@SubclassOptInRequired(PropagateSubclassOptInRequired2.B::class)'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class A
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts.after
index 0681ab68e581..642c29bd6d9a 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired2.kts.after
@@ -9,7 +9,7 @@
// ACTION: Propagate 'SubclassOptInRequired(A::class)' opt-in requirement to 'SomeImplementation'
// ERROR: This class or interface requires opt-in to be implemented. Its usage must be marked with '@PropagateSubclassOptInRequired2.B', '@OptIn(PropagateSubclassOptInRequired2.B::class)' or '@SubclassOptInRequired(PropagateSubclassOptInRequired2.B::class)'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class A
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts
index fa69d952a4f6..f5e141d0f344 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts.after
index 7531131b37f7..6744232dde26 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired3.kts.after
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts
index 5a570126ebf5..ccce844b9989 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts.after
index 00873b80ced7..85f1e13ffd39 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired4.kts.after
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts
index 4b9b6bc3f9d3..67f11a44f2e8 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts.after b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts.after
index c5c25f2d8bc8..306627f049d8 100644
--- a/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts.after
+++ b/plugins/kotlin/idea/tests/testData/quickfix/optIn/scripts/general/propagateSubclassOptInRequired5.kts.after
@@ -7,7 +7,7 @@
// ACTION: Opt in for 'UnstableApi' on 'SomeImplementation'
// ACTION: Propagate 'SubclassOptInRequired(UnstableApi::class)' opt-in requirement to 'SomeImplementation'
// RUNTIME_WITH_SCRIPT_RUNTIME
-@file:OptIn(ExperimentalSubclassOptIn::class)
+// LANGUAGE_VERSION: 2.1
@RequiresOptIn
annotation class UnstableApi
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClass.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClass.kt.k2.after
index 26b720864a01..3ceaeba0496e 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClass.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClass.kt.k2.after
@@ -3,7 +3,7 @@ class Foo(val i: Int) {
object : Runnable {
override fun run() {
if ((1..2).find {
- println(this@Foo.i)
+ println(i)
true
} != 0) {
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClassViaReceiver.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClassViaReceiver.kt.k2.after
index cb94c60bad60..4e7bcd9b5d20 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClassViaReceiver.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/accessToPropertyOfClassViaReceiver.kt.k2.after
@@ -6,7 +6,7 @@ fun Foo.m() {
object : Runnable {
override fun run() {
if ((1..2).find {
- println(this@m.i)
+ println(i)
true
} != 0) {
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField.kt.k2.after
index 8aa5e0542561..e05748146f79 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherFiled
+ otherFiled
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
index 8aa5e0542561..e05748146f79 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherFiled
+ otherFiled
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField.kt.k2.after
index 8aa5e0542561..e05748146f79 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherFiled
+ otherFiled
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField2.kt.k2.after
index 8aa5e0542561..e05748146f79 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToField2.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherFiled
+ otherFiled
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod2.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/inlineVariableOrProperty/fromJavaToKotlin/delegateToMethod2.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/OuterClassReceiver.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/OuterClassReceiver.kt.k2.after
index c309acc554d8..c2b92b7dcfd6 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/OuterClassReceiver.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/OuterClassReceiver.kt.k2.after
@@ -2,7 +2,7 @@ class Test {
inner class Inner {
fun bar() {
listOf("").forEach {
- this@Test.bizz(it)
+ bizz(it)
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField.kt.k2.after
index 602bf4e249b1..42df0acfe8f3 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.field
+ field
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
index 602bf4e249b1..42df0acfe8f3 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToField2.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.field
+ field
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromFinalJavaToKotlin/delegateToMethod2.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField.kt.k2.after
index 602bf4e249b1..42df0acfe8f3 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.field
+ field
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField2.kt.k2.after
index 602bf4e249b1..42df0acfe8f3 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToField2.kt.k2.after
@@ -16,7 +16,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.field
+ field
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod2.kt.k2.after
index 0f006b3c9121..2ed10e0edd50 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/fromJavaToKotlin/delegateToMethod2.kt.k2.after
@@ -18,7 +18,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.otherMethod()
+ otherMethod()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction.kt.k2.after
index 486d42e0ea6d..42c549bf8173 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction.kt.k2.after
@@ -22,7 +22,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.functionFromKotlin()
+ functionFromKotlin()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction2.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction2.kt.k2.after
index 486d42e0ea6d..42c549bf8173 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction2.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/methodFunction2.kt.k2.after
@@ -22,7 +22,7 @@ fun a() {
with(d) out@{
with(4) {
- this@out.functionFromKotlin()
+ functionFromKotlin()
}
}
}
diff --git a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/nestedLambdas.kt.k2.after b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/nestedLambdas.kt.k2.after
index 4f9e5f2fb68a..a927eae75618 100644
--- a/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/nestedLambdas.kt.k2.after
+++ b/plugins/kotlin/idea/tests/testData/refactoring/inline/namedFunction/nestedLambdas.kt.k2.after
@@ -9,7 +9,7 @@ fun bar(a: Bar.() -> Unit) {}
fun foobs() {
foo {
bar {
- this@foo.baz("Ah")
+ baz("Ah")
}
}
}
diff --git a/plugins/kotlin/j2k/shared/kotlin.j2k.shared.iml b/plugins/kotlin/j2k/shared/kotlin.j2k.shared.iml
index caa930074863..640a6c66b39d 100644
--- a/plugins/kotlin/j2k/shared/kotlin.j2k.shared.iml
+++ b/plugins/kotlin/j2k/shared/kotlin.j2k.shared.iml
@@ -4,7 +4,7 @@
-
+
diff --git a/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/JKImportStorage.kt b/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/JKImportStorage.kt
index 7f02c5e2200b..fe6341a61acd 100644
--- a/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/JKImportStorage.kt
+++ b/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/JKImportStorage.kt
@@ -2,23 +2,24 @@
package org.jetbrains.kotlin.nj2k
+import com.intellij.openapi.project.Project
import com.intellij.psi.CommonClassNames
-import org.jetbrains.kotlin.config.LanguageVersionSettings
+import org.jetbrains.kotlin.analysis.api.imports.getDefaultImports
import org.jetbrains.kotlin.idea.base.psi.kotlinFqName
import org.jetbrains.kotlin.idea.base.utils.fqname.isImported
import org.jetbrains.kotlin.idea.references.mainReference
import org.jetbrains.kotlin.load.java.NULLABILITY_ANNOTATIONS
import org.jetbrains.kotlin.name.FqName
+import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.psi.KtQualifiedExpression
import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.resolve.calls.util.getCalleeExpressionIfAny
-import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
-class JKImportStorage(languageSettings: LanguageVersionSettings) {
+class JKImportStorage(targetPlatform: TargetPlatform, project: Project) {
private val imports = mutableSetOf()
private val defaultImports: Set =
- JvmPlatformAnalyzerServices.getDefaultImports(languageSettings, includeLowPriorityImports = true).toSet()
+ targetPlatform.getDefaultImports(project).defaultImports.mapTo(mutableSetOf()) { it.importPath }
fun addImport(import: FqName) {
if (isImportNeeded(import, allowSingleIdentifierImport = false)) {
diff --git a/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt b/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt
index 7761db09ad53..ba6efd3c73d6 100644
--- a/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt
+++ b/plugins/kotlin/j2k/shared/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt
@@ -10,7 +10,9 @@ import com.intellij.psi.*
import com.intellij.util.concurrency.ThreadingAssertions
import org.jetbrains.kotlin.analysis.api.KaSession
import org.jetbrains.kotlin.analysis.api.analyze
+import org.jetbrains.kotlin.analysis.api.projectStructure.KaModuleProvider
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
+import org.jetbrains.kotlin.idea.base.projectStructure.getMainKtSourceModule
import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
import org.jetbrains.kotlin.idea.base.projectStructure.productionOrTestSourceModuleInfo
import org.jetbrains.kotlin.idea.base.projectStructure.toKaModule
@@ -21,7 +23,10 @@ import org.jetbrains.kotlin.nj2k.J2KConversionPhase.*
import org.jetbrains.kotlin.nj2k.externalCodeProcessing.NewExternalCodeProcessing
import org.jetbrains.kotlin.nj2k.printing.JKCodeBuilder
import org.jetbrains.kotlin.nj2k.types.JKTypeFactory
-import org.jetbrains.kotlin.psi.*
+import org.jetbrains.kotlin.psi.KtDeclaration
+import org.jetbrains.kotlin.psi.KtFile
+import org.jetbrains.kotlin.psi.KtImportList
+import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import org.jetbrains.kotlin.resolve.ImportPath
@@ -132,7 +137,12 @@ class NewJavaToKotlinConverter(
else -> LanguageVersionSettingsImpl.DEFAULT
}
- val importStorage = JKImportStorage(languageVersionSettings)
+ val kaModule =
+ targetFile?.let { KaModuleProvider.getModule(project, it, useSiteModule = null) }
+ ?: targetModule?.getMainKtSourceModule()
+ ?: KaModuleProvider.getModule(project, contextElement, useSiteModule = null)
+
+ val importStorage = JKImportStorage(kaModule.targetPlatform, project)
val treeBuilder = JavaToJKTreeBuilder(symbolProvider, typeFactory, referenceSearcher, importStorage, bodyFilter, forInlining)
// we want to leave all imports as is in the case when user is converting only imports
diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/array.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/array.k2.kt
index 911b1ce9829e..55612a8fe303 100644
--- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/array.k2.kt
+++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/array.k2.kt
@@ -1,5 +1,5 @@
// ERROR: Initializer type mismatch: expected 'kotlin.Array', actual 'kotlin.Array'.
-// ERROR: Type mismatch: inferred type is 'kotlin.Array', but 'kotlin.Array' was expected.
+// ERROR: Type mismatch: inferred type is 'kotlin.Array arrayOfNulls)>', but 'kotlin.Array' was expected.
// ERROR: Return type mismatch: expected 'kotlin.Array', actual 'kotlin.Array'.
// TODO support array initializers
internal class ArrayArgument {
diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/arrayNewNoInitializerTodo.k2.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/arrayNewNoInitializerTodo.k2.kt
index c3481fea0728..cfbeef45a9fa 100644
--- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/arrayNewNoInitializerTodo.k2.kt
+++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/arrayNewNoInitializerTodo.k2.kt
@@ -1,5 +1,5 @@
// ERROR: Initializer type mismatch: expected 'kotlin.Array', actual 'kotlin.Array'.
-// ERROR: Type mismatch: inferred type is 'kotlin.Array', but 'kotlin.Array' was expected.
+// ERROR: Type mismatch: inferred type is 'kotlin.Array arrayOfNulls)>', but 'kotlin.Array' was expected.
internal class ArrayField {
fun test() {
val array: Array = arrayOfNulls(0)
diff --git a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/notNullTypeArgumentFromKotlinTypeParameterInCall.kt b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/notNullTypeArgumentFromKotlinTypeParameterInCall.kt
index 9581ee85ff2a..0e379a58a5f8 100644
--- a/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/notNullTypeArgumentFromKotlinTypeParameterInCall.kt
+++ b/plugins/kotlin/j2k/shared/tests/testData/newJ2k/nullabilityGenerics/notNullTypeArgumentFromKotlinTypeParameterInCall.kt
@@ -1,5 +1,5 @@
-// ERROR: Argument type mismatch: actual type is 'Topic', but 'Topic' was expected.
-// ERROR: Argument type mismatch: actual type is 'Topic', but 'Topic' was expected.
+// ERROR: Argument type mismatch: actual type is 'Topic', but 'Topic f)>' was expected.
+// ERROR: Argument type mismatch: actual type is 'Topic', but 'Topic f)>' was expected.
internal class J {
var topic: Topic = Topic()
diff --git a/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/InlineScopesAndK2IdeK2CodeEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/InlineScopesAndK2IdeK2CodeEvaluateExpressionTestGenerated.java
index a19c399fa155..065fa6420ac7 100644
--- a/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/InlineScopesAndK2IdeK2CodeEvaluateExpressionTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/InlineScopesAndK2IdeK2CodeEvaluateExpressionTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class InlineScopesAndK2IdeK2CodeEvaluateExpressionTestGenerated
runTest("../testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("../testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("../testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/K2IdeK2CodeKotlinEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/K2IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
index 940b372b1ab3..0086550e4f2d 100644
--- a/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/K2IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/k2/test/org/jetbrains/kotlin/idea/k2/debugger/test/cases/K2IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class K2IdeK2CodeKotlinEvaluateExpressionTestGenerated extends A
runTest("../testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("../testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("../testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IndyLambdaIrKotlinEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IndyLambdaIrKotlinEvaluateExpressionTestGenerated.java
index 0c9afca2ff8b..150bd31afc0d 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IndyLambdaIrKotlinEvaluateExpressionTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IndyLambdaIrKotlinEvaluateExpressionTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class IndyLambdaIrKotlinEvaluateExpressionTestGenerated extends
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/InlineScopesAndK1IdeK2CodeEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/InlineScopesAndK1IdeK2CodeEvaluateExpressionTestGenerated.java
index ad5f5f9c3127..4a1ecefebd1c 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/InlineScopesAndK1IdeK2CodeEvaluateExpressionTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/InlineScopesAndK1IdeK2CodeEvaluateExpressionTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class InlineScopesAndK1IdeK2CodeEvaluateExpressionTestGenerated
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionInMppTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionInMppTestGenerated.java
index 0e9a56a72458..9aab9f33cd30 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionInMppTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionInMppTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class IrKotlinEvaluateExpressionInMppTestGenerated extends Abstr
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java
index 6fe4b197f20e..06de053f6752 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class IrKotlinEvaluateExpressionWithIRFragmentCompilerTestGenera
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionInMppTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionInMppTestGenerated.java
index 9c437c722826..93881af32cff 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionInMppTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionInMppTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class K1IdeK2CodeKotlinEvaluateExpressionInMppTestGenerated exte
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionTestGenerated.java b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
index 5466336f08e5..228a70a4b3f9 100644
--- a/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
+++ b/plugins/kotlin/jvm-debugger/test/test/org/jetbrains/kotlin/idea/debugger/test/K1IdeK2CodeKotlinEvaluateExpressionTestGenerated.java
@@ -2294,6 +2294,11 @@ public abstract class K1IdeK2CodeKotlinEvaluateExpressionTestGenerated extends A
runTest("testData/evaluation/singleBreakpoint/unsignedArrayOf.kt");
}
+ @TestMetadata("unsignedConst.kt")
+ public void testUnsignedConst() throws Exception {
+ runTest("testData/evaluation/singleBreakpoint/unsignedConst.kt");
+ }
+
@TestMetadata("unusedTransitiveDependencies.kt")
public void testUnusedTransitiveDependencies() throws Exception {
runTest("testData/evaluation/singleBreakpoint/unusedTransitiveDependencies.kt");
diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.kt b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.kt
new file mode 100644
index 000000000000..6a239052ece3
--- /dev/null
+++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.kt
@@ -0,0 +1,32 @@
+val uByteMax: UByte = UByte.MAX_VALUE
+val uShortMin: UShort = UShort.MIN_VALUE
+val uIntMax: UInt = UInt.MAX_VALUE
+val uLongMin: ULong = ULong.MIN_VALUE
+
+fun main() {
+ //Breakpoint!
+}
+
+// EXPRESSION: UByte.MAX_VALUE as Any?
+// RESULT: instance of kotlin.UByte(id=ID): Lkotlin/UByte;
+
+// EXPRESSION: UShort.MIN_VALUE as Any?
+// RESULT: instance of kotlin.UShort(id=ID): Lkotlin/UShort;
+
+// EXPRESSION: UInt.MAX_VALUE as Any?
+// RESULT: instance of kotlin.UInt(id=ID): Lkotlin/UInt;
+
+// EXPRESSION: ULong.MIN_VALUE as Any?
+// RESULT: instance of kotlin.ULong(id=ID): Lkotlin/ULong;
+
+// EXPRESSION: uByteMax as Any?
+// RESULT: instance of kotlin.UByte(id=ID): Lkotlin/UByte;
+
+// EXPRESSION: uShortMin as Any?
+// RESULT: instance of kotlin.UShort(id=ID): Lkotlin/UShort;
+
+// EXPRESSION: uIntMax as Any?
+// RESULT: instance of kotlin.UInt(id=ID): Lkotlin/UInt;
+
+// EXPRESSION: uLongMin as Any?
+// RESULT: instance of kotlin.ULong(id=ID): Lkotlin/ULong;
diff --git a/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.out b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.out
new file mode 100644
index 000000000000..bfd79098ff55
--- /dev/null
+++ b/plugins/kotlin/jvm-debugger/test/testData/evaluation/singleBreakpoint/unsignedConst.out
@@ -0,0 +1,15 @@
+LineBreakpoint created at unsignedConst.kt:8
+Run Java
+Connected to the target VM
+unsignedConst.kt:8
+Compile bytecode for UByte.MAX_VALUE as Any?
+Compile bytecode for UShort.MIN_VALUE as Any?
+Compile bytecode for UInt.MAX_VALUE as Any?
+Compile bytecode for ULong.MIN_VALUE as Any?
+Compile bytecode for uByteMax as Any?
+Compile bytecode for uShortMin as Any?
+Compile bytecode for uIntMax as Any?
+Compile bytecode for uLongMin as Any?
+Disconnected from the target VM
+
+Process finished with exit code 0
diff --git a/plugins/kotlin/kotlin.searching/kotlin.searching.k2.iml b/plugins/kotlin/kotlin.searching/kotlin.searching.k2.iml
index 03ad1cdd9a80..fe580f3ce2ab 100644
--- a/plugins/kotlin/kotlin.searching/kotlin.searching.k2.iml
+++ b/plugins/kotlin/kotlin.searching/kotlin.searching.k2.iml
@@ -4,7 +4,7 @@
-
+
diff --git a/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/KotlinK2SearchUsagesSupport.kt b/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/KotlinK2SearchUsagesSupport.kt
index 69da3c6e35c4..7e7fa5d9f85e 100644
--- a/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/KotlinK2SearchUsagesSupport.kt
+++ b/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/KotlinK2SearchUsagesSupport.kt
@@ -5,15 +5,17 @@ package org.jetbrains.kotlin.idea.searching.usages
import com.intellij.openapi.actionSystem.ex.ActionUtil
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runReadAction
-import com.intellij.openapi.progress.ProgressManager
+import com.intellij.openapi.project.Project
import com.intellij.psi.*
import com.intellij.psi.search.SearchScope
import com.intellij.psi.util.MethodSignatureUtil
import com.intellij.psi.util.PsiTreeUtil
-import kotlinx.coroutines.Runnable
-import org.jetbrains.kotlin.analysis.api.*
+import org.jetbrains.kotlin.analysis.api.KaSession
+import org.jetbrains.kotlin.analysis.api.analyze
+import org.jetbrains.kotlin.analysis.api.imports.getDefaultImports
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
+import org.jetbrains.kotlin.analysis.api.projectStructure.KaModuleProvider
import org.jetbrains.kotlin.analysis.api.resolution.KaDelegatedConstructorCall
import org.jetbrains.kotlin.analysis.api.resolution.symbol
import org.jetbrains.kotlin.analysis.api.symbols.*
@@ -23,8 +25,6 @@ import org.jetbrains.kotlin.analysis.api.types.KaType
import org.jetbrains.kotlin.analysis.api.types.KaTypeArgumentWithVariance
import org.jetbrains.kotlin.asJava.toLightMethods
import org.jetbrains.kotlin.asJava.unwrapped
-import org.jetbrains.kotlin.descriptors.Modality
-import org.jetbrains.kotlin.psi.psiUtil.isExpectDeclaration
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.references.KtReference
import org.jetbrains.kotlin.idea.references.unwrappedTargets
@@ -39,12 +39,13 @@ import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
+import org.jetbrains.kotlin.psi.psiUtil.isExpectDeclaration
import org.jetbrains.kotlin.psi.psiUtil.parents
import org.jetbrains.kotlin.resolve.ImportPath
import org.jetbrains.kotlin.util.OperatorNameConventions
import org.jetbrains.kotlin.util.match
-internal class KotlinK2SearchUsagesSupport : KotlinSearchUsagesSupport {
+internal class KotlinK2SearchUsagesSupport(private val project: Project) : KotlinSearchUsagesSupport {
override fun isInvokeOfCompanionObject(psiReference: PsiReference, searchTarget: KtNamedDeclaration): Boolean {
if (searchTarget is KtObjectDeclaration && searchTarget.isCompanion() && psiReference is KtReference) {
analyze(psiReference.element) {
@@ -275,7 +276,10 @@ internal class KotlinK2SearchUsagesSupport : KotlinSearchUsagesSupport {
}
override fun getDefaultImports(file: KtFile): List {
- return file.getDefaultImports()
+ return KaModuleProvider.getModule(project, file, useSiteModule = null)
+ .targetPlatform.getDefaultImports(project)
+ .defaultImports
+ .map { it.importPath }
}
override fun forEachKotlinOverride(
diff --git a/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/findUsagesUtils.kt b/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/findUsagesUtils.kt
index 4fe1205cfa09..9ebe16a22202 100644
--- a/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/findUsagesUtils.kt
+++ b/plugins/kotlin/kotlin.searching/src/org/jetbrains/kotlin/idea/searching/usages/findUsagesUtils.kt
@@ -5,21 +5,10 @@ import org.jetbrains.kotlin.analysis.api.KaSession
import org.jetbrains.kotlin.analysis.api.analyze
import org.jetbrains.kotlin.analysis.api.resolution.KaCall
import org.jetbrains.kotlin.analysis.api.resolution.calls
-import org.jetbrains.kotlin.idea.base.facet.platform.platform
-import org.jetbrains.kotlin.idea.base.projectStructure.compositeAnalysis.findAnalyzerServices
-import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
import org.jetbrains.kotlin.psi.KtElement
-import org.jetbrains.kotlin.psi.KtFile
-import org.jetbrains.kotlin.resolve.ImportPath
internal inline fun withResolvedCall(element: KtElement, crossinline block: KaSession.(KaCall) -> R): R? {
return analyze(element) {
element.resolveToCall()?.calls?.singleOrNull()?.let { block(it) }
}
}
-
-fun KtFile.getDefaultImports(): List {
- return platform
- .findAnalyzerServices(project)
- .getDefaultImports(project.languageVersionSettings, includeLowPriorityImports = true)
-}
\ No newline at end of file
diff --git a/plugins/kotlin/plugin/k1/resources/META-INF/kotlin-core-fe10.xml b/plugins/kotlin/plugin/k1/resources/META-INF/kotlin-core-fe10.xml
index e2ac60bfdcb7..348af7e2806c 100644
--- a/plugins/kotlin/plugin/k1/resources/META-INF/kotlin-core-fe10.xml
+++ b/plugins/kotlin/plugin/k1/resources/META-INF/kotlin-core-fe10.xml
@@ -58,6 +58,10 @@
+
+
() {
+class KotlinJvmMetadataVersionIndex internal constructor() : KotlinMetadataVersionIndexBase() {
companion object {
- val NAME: ID = ID.create(KotlinJvmMetadataVersionIndex::class.java.canonicalName)
+ val NAME: ID = ID.create(KotlinJvmMetadataVersionIndex::class.java.canonicalName)
}
- override fun getName(): ID = NAME
+ override fun getName(): ID = NAME
- override fun createBinaryVersion(versionArray: IntArray, extraBoolean: Boolean?): JvmMetadataVersion =
- JvmMetadataVersion(versionArray, isStrictSemantics = extraBoolean!!)
+ override fun createBinaryVersion(versionArray: IntArray, extraBoolean: Boolean?): MetadataVersion =
+ MetadataVersion(versionArray, isStrictSemantics = extraBoolean!!)
override fun getIndexer() = INDEXER
@@ -38,7 +38,7 @@ class KotlinJvmMetadataVersionIndex internal constructor() : KotlinMetadataVersi
override fun isExtraBooleanNeeded(): Boolean = true
- override fun getExtraBoolean(version: JvmMetadataVersion): Boolean = version.isStrictSemantics
+ override fun getExtraBoolean(version: MetadataVersion): Boolean = version.isStrictSemantics
private val kindsToIndex: Set by lazy {
setOf(
@@ -48,8 +48,8 @@ class KotlinJvmMetadataVersionIndex internal constructor() : KotlinMetadataVersi
)
}
- private val INDEXER: DataIndexer by lazy {
- DataIndexer { inputData: FileContent ->
+ private val INDEXER: DataIndexer by lazy {
+ DataIndexer { inputData: FileContent ->
var versionArray: IntArray? = null
var isStrictSemantics = false
var annotationPresent = false
@@ -89,7 +89,7 @@ class KotlinJvmMetadataVersionIndex internal constructor() : KotlinMetadataVersi
version = null
} else if (annotationPresent && version == null) {
// No version at all because the class is too old, or version is set to something weird
- version = JvmMetadataVersion.INVALID_VERSION
+ version = MetadataVersion.INVALID_VERSION
}
if (version != null) mapOf(version to null) else emptyMap()
diff --git a/plugins/kotlin/project-configuration/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/plugins/kotlin/project-configuration/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
index 35a36e5ebdbf..401b0bb620ce 100644
--- a/plugins/kotlin/project-configuration/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
+++ b/plugins/kotlin/project-configuration/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt
@@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nls
import org.jetbrains.kotlin.idea.base.facet.platform.platform
import org.jetbrains.kotlin.idea.projectConfiguration.KotlinProjectConfigurationBundle
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
-import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
+import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
import org.jetbrains.kotlin.platform.isJs
import org.jetbrains.kotlin.platform.jvm.isJvm
import org.jetbrains.kotlin.utils.JsMetadataVersion
@@ -37,8 +37,8 @@ fun getLibraryRootsWithIncompatibleAbi(module: Module): Collection> {
- return getLibraryRootsWithAbiIncompatibleVersion(module, JvmMetadataVersion.INSTANCE, KotlinJvmMetadataVersionIndex.NAME)
+fun getLibraryRootsWithIncompatibleAbiJvm(module: Module): Collection> {
+ return getLibraryRootsWithAbiIncompatibleVersion(module, MetadataVersion.INSTANCE, KotlinJvmMetadataVersionIndex.NAME)
}
fun getLibraryRootsWithIncompatibleAbiJavaScript(module: Module): Collection> {
diff --git a/plugins/kotlin/uast/uast-kotlin-fir/tests/testData/declaration/valueClass.render.fir.txt b/plugins/kotlin/uast/uast-kotlin-fir/tests/testData/declaration/valueClass.render.fir.txt
index e2f250ae16a7..2252a78f9cf2 100644
--- a/plugins/kotlin/uast/uast-kotlin-fir/tests/testData/declaration/valueClass.render.fir.txt
+++ b/plugins/kotlin/uast/uast-kotlin-fir/tests/testData/declaration/valueClass.render.fir.txt
@@ -26,7 +26,7 @@ public final class User {
return foo()
}
}
- public fun User(@org.jetbrains.annotations.NotNull p: float, @org.jetbrains.annotations.NotNull q: float) = UastEmptyExpression
+ private fun User(@org.jetbrains.annotations.NotNull p: float, @org.jetbrains.annotations.NotNull q: float) = UastEmptyExpression
public final fun getP() : float = UastEmptyExpression
public final fun getQ() : float = UastEmptyExpression
public final fun setQ(@org.jetbrains.annotations.NotNull : float) : void = UastEmptyExpression
@@ -39,7 +39,7 @@ public final class Alignment {
@org.jetbrains.annotations.NotNull private static final var Start: int = Horizontal.Start
@org.jetbrains.annotations.NotNull private final var horizontal: int
@org.jetbrains.annotations.NotNull private final var vertical: int
- public fun Alignment(@org.jetbrains.annotations.NotNull horizontal: int, @org.jetbrains.annotations.NotNull vertical: int) = UastEmptyExpression
+ private fun Alignment(@org.jetbrains.annotations.NotNull horizontal: int, @org.jetbrains.annotations.NotNull vertical: int) = UastEmptyExpression
public final fun getHorizontal() : int = UastEmptyExpression
public final fun getVertical() : int = UastEmptyExpression
public static final class Horizontal {
diff --git a/plugins/kotlin/util/project-model-updater/resources/model.properties b/plugins/kotlin/util/project-model-updater/resources/model.properties
index 28ce0b146327..2bb73370e459 100644
--- a/plugins/kotlin/util/project-model-updater/resources/model.properties
+++ b/plugins/kotlin/util/project-model-updater/resources/model.properties
@@ -1,5 +1,5 @@
# Please do not touch this file. It is the responsibility of Kotlin/IntelliJ Kotlin team to advance kotlin compiler version
-kotlincVersion=2.1.20-dev-1411
+kotlincVersion=2.1.20-dev-1873
kotlincArtifactsMode=MAVEN
jpsPluginVersion=2.0.21-release-482