diff --git a/.idea/modules.xml b/.idea/modules.xml
index fcb0f27ee29b..2be981787cbf 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -696,6 +696,7 @@
+
diff --git a/java/plugin/intellij.java.plugin.iml b/java/plugin/intellij.java.plugin.iml
index 5ad953e34588..6e4afcda4be8 100644
--- a/java/plugin/intellij.java.plugin.iml
+++ b/java/plugin/intellij.java.plugin.iml
@@ -21,7 +21,7 @@
-
+
diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/JavaPluginLayout.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/JavaPluginLayout.kt
index 195f7f6b33a2..5ea1bc9657b1 100644
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/JavaPluginLayout.kt
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/JavaPluginLayout.kt
@@ -51,6 +51,7 @@ object JavaPluginLayout {
"intellij.jsp",
"intellij.platform.uast",
"intellij.platform.uast.ide",
+ "intellij.java.uast.ide",
))
spec.withModules(listOf(
diff --git a/uast/uast-java-ide/intellij.java.uast.ide.iml b/uast/uast-java-ide/intellij.java.uast.ide.iml
new file mode 100644
index 000000000000..36a1cdbcb73d
--- /dev/null
+++ b/uast/uast-java-ide/intellij.java.uast.ide.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/analysis/JavaUastAnalysisPlugin.kt b/uast/uast-java-ide/src/org/jetbrains/uast/java/analysis/JavaUastAnalysisPlugin.kt
similarity index 100%
rename from uast/uast-java/src/org/jetbrains/uast/java/analysis/JavaUastAnalysisPlugin.kt
rename to uast/uast-java-ide/src/org/jetbrains/uast/java/analysis/JavaUastAnalysisPlugin.kt
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt b/uast/uast-java-ide/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt
similarity index 99%
rename from uast/uast-java/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt
rename to uast/uast-java-ide/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt
index bd5b20fccb69..a9482b23cf10 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt
+++ b/uast/uast-java-ide/src/org/jetbrains/uast/java/generate/JavaUastCodeGenerationPlugin.kt
@@ -1,4 +1,4 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.uast.java.generate
import com.intellij.codeInsight.BlockUtils
diff --git a/uast/uast-java/intellij.java.uast.iml b/uast/uast-java/intellij.java.uast.iml
index d8e7b99eb9bf..894e2e698221 100644
--- a/uast/uast-java/intellij.java.uast.iml
+++ b/uast/uast-java/intellij.java.uast.iml
@@ -1,6 +1,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -11,7 +27,6 @@
-
-
+
\ No newline at end of file
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt
index 567c105e9097..5bf280f50561 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiDoWhileStatement
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UDoWhileExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt
index 5c85c5ab659f..aef1ddb7944c 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiForeachStatement
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt
index caf8b63d99c3..2d79f5c5705d 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiForStatement
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt
index 56f30fb43ecc..3c74a311eecb 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiIfStatement
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt
index 8e2c6b14c032..8fe93c72ef34 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt
@@ -3,7 +3,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.*
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.expressions.JavaUExpressionList
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt
index 32c8a9d5f443..8e76e0e89357 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt
@@ -2,7 +2,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiConditionalExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt
index 1baa6a93e8dd..0327a52dfb3f 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.*
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt
index 13d524a3646f..b37c412135a4 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiWhileStatement
import com.intellij.psi.impl.source.tree.ChildRole
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt
index 8adf97b79b22..ade54f3d5f3e 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt
@@ -18,7 +18,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiAnnotation
import com.intellij.psi.PsiClass
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.expressions.JavaUNamedExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt
index 2a0a397bc422..0a2496de1fe9 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt
@@ -6,8 +6,6 @@ import com.intellij.psi.*
import com.intellij.psi.impl.light.LightMethodBuilder
import com.intellij.psi.javadoc.PsiDocComment
import com.intellij.util.SmartList
-import com.intellij.util.asSafely
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.internal.JavaUElementWithComments
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClassInitializer.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClassInitializer.kt
index 3595a42ed34f..b22467bb322b 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClassInitializer.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClassInitializer.kt
@@ -4,7 +4,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiClassInitializer
import com.intellij.psi.PsiElement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.internal.JavaUElementWithComments
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt
index e41ff8ad74c5..3cbcccce65fb 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt
@@ -4,7 +4,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiComment
import com.intellij.psi.PsiJavaFile
import com.intellij.psi.PsiRecursiveElementWalkingVisitor
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.internal.JavaUElementWithComments
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt
index 991a63e1a6cf..2a3d754c5803 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt
@@ -18,7 +18,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiImportStatementBase
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UImportStatement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUMethod.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUMethod.kt
index dda457e3181c..1b0cc7cecb7e 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUMethod.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUMethod.kt
@@ -5,8 +5,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.*
import com.intellij.psi.impl.light.LightElement
import com.intellij.psi.impl.light.LightRecordCanonicalConstructor
-import com.intellij.util.asSafely
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.internal.convertOrReport
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt
index f6bd742bdf5c..89a19dcd097a 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt
@@ -6,10 +6,8 @@ import com.intellij.psi.*
import com.intellij.psi.impl.light.LightElement
import com.intellij.psi.impl.light.LightRecordCanonicalConstructor.LightRecordConstructorParameter
import com.intellij.psi.impl.light.LightRecordField
+import com.intellij.psi.util.PsiTreeUtil
import com.intellij.psi.util.PsiTypesUtil
-import com.intellij.psi.util.parentOfType
-import com.intellij.util.asSafely
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.internal.CONVERSION_LOGGER
@@ -137,7 +135,7 @@ private fun createAlternatives(element: PsiElement,
val (psiRecordComponent, lightRecordField, lightConstructorParameter) = when (element) {
is PsiRecordComponent -> Triple(element, null, null)
is LightRecordConstructorParameter -> {
- val containingClass = element.parentOfType()?.containingClass
+ val containingClass = PsiTreeUtil.getParentOfType(element, PsiMethod::class.java)?.containingClass
?: return logAndNull { "failed to get containingClass" }
val findFieldByName = containingClass.findFieldByName(element.name, false)
?: return logAndNull { "failed to find ${element.name} in $containingClass" }
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAnnotationCallExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAnnotationCallExpression.kt
index 8e214ee2c023..f687819deb4e 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAnnotationCallExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAnnotationCallExpression.kt
@@ -7,12 +7,12 @@ import com.intellij.psi.PsiAnnotation
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiType
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.JavaAbstractUExpression
import org.jetbrains.uast.java.JavaConverter
import org.jetbrains.uast.java.JavaUAnnotation
+import org.jetbrains.uast.java.lazyPub
import org.jetbrains.uast.visitor.UastVisitor
@ApiStatus.Internal
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt
index a42a295b3274..147d3545d4ec 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiArrayAccessExpression
import com.intellij.psi.PsiElement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UArrayAccessExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssertExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssertExpression.kt
index 6d8153bcc254..8e38ce0d6c38 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssertExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssertExpression.kt
@@ -20,7 +20,6 @@ import com.intellij.psi.PsiAssertStatement
import com.intellij.psi.PsiType
import com.intellij.psi.PsiTypes
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt
index 77ff0734176b..570945875bd2 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiAssignmentExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt
index bf91ab09aea5..5611337786b0 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiBinaryExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt
index e8ebd7753ca8..449cdecbc140 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiBlockStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UBlockExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBreakExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBreakExpression.kt
index 849957b53b29..a8983f9109ab 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBreakExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBreakExpression.kt
@@ -2,7 +2,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiBreakStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UBreakExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt
index de1959e2ae33..aee2dd12cdb7 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.*
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UCallableReferenceExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt
index 7510e276bafc..5178a9039c4b 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiClassObjectAccessExpression
import com.intellij.psi.PsiType
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UClassLiteralExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt
index 5463f15fd428..1d8b835bf575 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiCodeBlock
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UBlockExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUContinueExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUContinueExpression.kt
index 0d85f21a595e..37b309826d08 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUContinueExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUContinueExpression.kt
@@ -17,7 +17,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiContinueStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UContinueExpression
import org.jetbrains.uast.UElement
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt
index 929c3063ade2..76ce22c28fbb 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiInstanceOfExpression
import com.intellij.psi.PsiType
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt
index ca6e8f3cbbc3..42c99b8e38c0 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt
@@ -2,7 +2,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiLabeledStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt
index 851975876e4a..c0b860c8b56d 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt
@@ -16,9 +16,8 @@
package org.jetbrains.uast.java
import com.intellij.psi.*
-import com.intellij.util.asSafely
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
+import org.jetbrains.annotations.ApiStatus.Internal
import org.jetbrains.uast.*
@ApiStatus.Internal
@@ -42,7 +41,9 @@ class JavaULambdaExpression(
}
companion object {
- internal fun unwrapImplicitBody(uExpression: UExpression): PsiExpression? =
+
+ @Internal
+ fun unwrapImplicitBody(uExpression: UExpression): PsiExpression? =
uExpression
.asSafely()
?.expressions
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt
index fd2ed9628d3d..6d87b37b674e 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiLanguageInjectionHost
import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.expressions.UInjectionHost
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt
index 39d807cd9ee2..a8c3c5f8a7f4 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUModuleReferenceExpression.kt
@@ -2,11 +2,11 @@
package org.jetbrains.uast.java.expressions
import com.intellij.psi.*
-import com.intellij.util.asSafely
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UMultiResolvable
import org.jetbrains.uast.USimpleNameReferenceExpression
import org.jetbrains.uast.java.JavaAbstractUExpression
+import org.jetbrains.uast.java.asSafely
internal class JavaUModuleReferenceExpression(
override val sourcePsi: PsiJavaModuleReferenceElement,
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUNamedExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUNamedExpression.kt
index ff0ff3505579..727d43ccd57f 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUNamedExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUNamedExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java.expressions
import com.intellij.psi.PsiNameValuePair
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
@@ -24,6 +23,7 @@ import org.jetbrains.uast.UNamedExpression
import org.jetbrains.uast.UastEmptyExpression
import org.jetbrains.uast.java.JavaAbstractUExpression
import org.jetbrains.uast.java.JavaConverter
+import org.jetbrains.uast.java.lazyPub
@ApiStatus.Internal
class JavaUNamedExpression(
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt
index a2bf53a5a024..eeedb2d66d08 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt
@@ -19,7 +19,6 @@ import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiNewExpression
import com.intellij.psi.PsiType
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt
index 6eda3cac77ea..c7244e7169bf 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiParenthesizedExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPolyadicExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPolyadicExpression.kt
index 3a7785ffe0f0..8e7baac72af3 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPolyadicExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPolyadicExpression.kt
@@ -16,7 +16,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiPolyadicExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt
index 71e47d359638..636ba97f074a 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt
@@ -3,7 +3,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.JavaTokenType
import com.intellij.psi.PsiPostfixExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt
index f281aa9671c8..5127558b04df 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt
@@ -3,7 +3,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.JavaTokenType
import com.intellij.psi.PsiPrefixExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedReferenceExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedReferenceExpression.kt
index bade8a07315e..9cbde5421e53 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedReferenceExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedReferenceExpression.kt
@@ -19,7 +19,6 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiJavaCodeReferenceElement
import com.intellij.psi.PsiNamedElement
import com.intellij.psi.ResolveResult
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUReturnExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUReturnExpression.kt
index 2851463b66a0..9d7e1cbd6c65 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUReturnExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUReturnExpression.kt
@@ -17,7 +17,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiReturnStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleNameReferenceExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleNameReferenceExpression.kt
index 75533f91e2f0..a4bbd0f4f67c 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleNameReferenceExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleNameReferenceExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.*
import com.intellij.psi.infos.CandidateInfo
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSynchronizedExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSynchronizedExpression.kt
index 4dfe2c5b7972..07a8ce9f389f 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSynchronizedExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSynchronizedExpression.kt
@@ -17,7 +17,6 @@
package org.jetbrains.uast.java.expressions
import com.intellij.psi.PsiSynchronizedStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UBlockExpression
import org.jetbrains.uast.UElement
@@ -25,6 +24,7 @@ import org.jetbrains.uast.UExpression
import org.jetbrains.uast.internal.acceptList
import org.jetbrains.uast.java.JavaAbstractUExpression
import org.jetbrains.uast.java.JavaConverter
+import org.jetbrains.uast.java.lazyPub
import org.jetbrains.uast.visitor.UastVisitor
@ApiStatus.Internal
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThrowExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThrowExpression.kt
index e94124a1a6c6..fd92148b6b17 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThrowExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThrowExpression.kt
@@ -17,7 +17,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiThrowStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt
index 6a0c8c4b3565..956b320d5d2d 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt
@@ -17,7 +17,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.PsiType
import com.intellij.psi.PsiTypeCastExpression
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt
index eb71720cba52..30959781e673 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/JavaUYieldExpression.kt
@@ -2,7 +2,6 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiYieldStatement
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/expressions/javaUCallExpressions.kt b/uast/uast-java/src/org/jetbrains/uast/java/expressions/javaUCallExpressions.kt
index d467903f62c4..02af4ebe582e 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/expressions/javaUCallExpressions.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/expressions/javaUCallExpressions.kt
@@ -18,7 +18,6 @@ package org.jetbrains.uast.java
import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.psi.util.PsiTypesUtil
-import com.intellij.util.lazyPub
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.uast.*
import org.jetbrains.uast.java.expressions.JavaUExpressionList
diff --git a/uast/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt b/uast/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt
index 62af244e1ac2..0faaab476f90 100644
--- a/uast/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt
+++ b/uast/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt
@@ -89,3 +89,8 @@ fun isJava(element: PsiElement?): Boolean {
fun isJava(language: Language?): Boolean {
return language == JavaLanguage.INSTANCE
}
+
+internal fun lazyPub(initializer: () -> T): Lazy = lazy(LazyThreadSafetyMode.PUBLICATION, initializer)
+
+@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
+internal inline fun Any?.asSafely(): @kotlin.internal.NoInfer T? = this as? T
diff --git a/uast/uast-tests/intellij.platform.uast.tests.iml b/uast/uast-tests/intellij.platform.uast.tests.iml
index 81b9f2d54dea..2f09337c8342 100644
--- a/uast/uast-tests/intellij.platform.uast.tests.iml
+++ b/uast/uast-tests/intellij.platform.uast.tests.iml
@@ -12,7 +12,7 @@
-
+