mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java UAST cleanup, remove unused caching
This commit is contained in:
@@ -85,15 +85,12 @@ class JavaUastLanguagePlugin : UastLanguagePlugin {
|
||||
}
|
||||
|
||||
override fun convertElement(element: PsiElement, parent: UElement?, requiredType: Class<out UElement>?): UElement? {
|
||||
if (element !is PsiElement) return null
|
||||
return convertDeclaration(element, parent, requiredType) ?:
|
||||
JavaConverter.convertPsiElement(element, parent, requiredType)
|
||||
}
|
||||
|
||||
override fun convertElementWithParent(element: PsiElement, requiredType: Class<out UElement>?): UElement? {
|
||||
if (element !is PsiElement) return null
|
||||
if (element is PsiJavaFile) return requiredType.el<UFile> { JavaUFile(element, this) }
|
||||
JavaConverter.getCached<UElement>(element)?.let { return it }
|
||||
|
||||
return convertDeclaration(element, null, requiredType) ?:
|
||||
JavaConverter.convertPsiElement(element, null, requiredType)
|
||||
@@ -108,10 +105,6 @@ class JavaUastLanguagePlugin : UastLanguagePlugin {
|
||||
}
|
||||
}
|
||||
|
||||
element.getUserData(JAVA_CACHED_UELEMENT_KEY)?.let { ref ->
|
||||
ref.get()?.let { return it }
|
||||
}
|
||||
|
||||
return with(requiredType) {
|
||||
when (element) {
|
||||
is PsiJavaFile -> el<UFile> { JavaUFile(element, this@JavaUastLanguagePlugin) }
|
||||
@@ -143,13 +136,7 @@ internal inline fun <reified ActualT : UElement> Class<out UElement>?.expr(f: ()
|
||||
return if (this == null || isAssignableFrom(ActualT::class.java)) f() else null
|
||||
}
|
||||
|
||||
private fun UElement?.toCallback() = if (this != null) fun(): UElement? { return this } else null
|
||||
|
||||
internal object JavaConverter {
|
||||
internal inline fun <reified T : UElement> getCached(element: PsiElement): T? {
|
||||
return null
|
||||
//todo
|
||||
}
|
||||
|
||||
internal tailrec fun unwrapElements(element: PsiElement?): PsiElement? = when (element) {
|
||||
is PsiExpressionStatement -> unwrapElements(element.parent)
|
||||
@@ -164,7 +151,6 @@ internal object JavaConverter {
|
||||
internal fun convertPsiElement(el: PsiElement,
|
||||
givenParent: UElement?,
|
||||
requiredType: Class<out UElement>? = null): UElement? {
|
||||
getCached<UElement>(el)?.let { return it }
|
||||
|
||||
fun <P : PsiElement> build(ctor: (P, UElement?) -> UElement): () -> UElement? {
|
||||
return fun(): UElement? {
|
||||
@@ -192,8 +178,7 @@ internal object JavaConverter {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun convertBlock(block: PsiCodeBlock, parent: UElement?): UBlockExpression =
|
||||
getCached(block) ?: JavaUCodeBlockExpression(block, parent)
|
||||
internal fun convertBlock(block: PsiCodeBlock, parent: UElement?): UBlockExpression = JavaUCodeBlockExpression(block, parent)
|
||||
|
||||
internal fun convertReference(reference: PsiJavaCodeReferenceElement,
|
||||
givenParent: UElement?,
|
||||
@@ -212,8 +197,6 @@ internal object JavaConverter {
|
||||
internal fun convertExpression(el: PsiExpression,
|
||||
givenParent: UElement?,
|
||||
requiredType: Class<out UElement>? = null): UExpression? {
|
||||
getCached<UExpression>(el)?.let { return it }
|
||||
|
||||
fun <P : PsiElement> build(ctor: (P, UElement?) -> UExpression): () -> UExpression? {
|
||||
return fun(): UExpression? {
|
||||
return ctor(el as P, givenParent)
|
||||
@@ -275,8 +258,6 @@ internal object JavaConverter {
|
||||
internal fun convertStatement(el: PsiStatement,
|
||||
givenParent: UElement?,
|
||||
requiredType: Class<out UElement>? = null): UExpression? {
|
||||
getCached<UExpression>(el)?.let { return it }
|
||||
|
||||
fun <P : PsiElement> build(ctor: (P, UElement?) -> UExpression): () -> UExpression? {
|
||||
return fun(): UExpression? {
|
||||
return ctor(el as P, givenParent)
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.jetbrains.uast.java
|
||||
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.psi.JavaTokenType
|
||||
import com.intellij.psi.PsiAnnotation
|
||||
import com.intellij.psi.PsiElement
|
||||
@@ -25,9 +24,6 @@ import com.intellij.psi.tree.IElementType
|
||||
import org.jetbrains.uast.UDeclaration
|
||||
import org.jetbrains.uast.UElement
|
||||
import org.jetbrains.uast.UastBinaryOperator
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
internal val JAVA_CACHED_UELEMENT_KEY = Key.create<WeakReference<UElement>>("cached-java-uelement")
|
||||
|
||||
internal fun IElementType.getOperatorType() = when (this) {
|
||||
JavaTokenType.EQ -> UastBinaryOperator.ASSIGN
|
||||
|
||||
Reference in New Issue
Block a user