mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
uast cleanup: specify return types explicitly
GitOrigin-RevId: 759797ac529472d62c7e9e6f50c36bc49ea18083
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ac7f35e7fa
commit
004bcb109a
@@ -8,7 +8,7 @@ import org.jetbrains.uast.psi.UElementWithLocation
|
||||
|
||||
@JvmField
|
||||
@Suppress("DEPRECATION")
|
||||
val allUElementSubtypes = setOf<Class<out UElement>>(
|
||||
val allUElementSubtypes: Set<Class<out UElement>> = setOf<Class<out UElement>>(
|
||||
UAnchorOwner::class.java,
|
||||
UAnnotated::class.java,
|
||||
UAnnotation::class.java,
|
||||
|
||||
@@ -17,7 +17,7 @@ fun UFile.asIdentifiers(): String = UElementToParentMap { it.toUElementOfType<UI
|
||||
)
|
||||
}.visitUFileAndGetResult(this)
|
||||
|
||||
fun UFile.asRefNames() = UElementToParentMap { it.toUElementOfType<UReferenceExpression>()?.referenceNameElement }
|
||||
fun UFile.asRefNames(): String = UElementToParentMap { it.toUElementOfType<UReferenceExpression>()?.referenceNameElement }
|
||||
.visitUFileAndGetResult(this)
|
||||
|
||||
open class UElementToParentMap(shouldIndent: (PsiElement) -> Boolean,
|
||||
|
||||
@@ -16,7 +16,9 @@ interface RenderLogTestBase {
|
||||
private fun getTestFile(testName: String, ext: String) =
|
||||
File(getTestDataPath(), testName.substringBeforeLast('.') + '.' + ext)
|
||||
|
||||
fun check(testName: String, file: UFile) = check(testName, file, true)
|
||||
fun check(testName: String, file: UFile) {
|
||||
check(testName, file, true)
|
||||
}
|
||||
|
||||
fun check(testName: String, file: UFile, checkParentConsistency: Boolean) {
|
||||
val renderFile = getTestFile(testName, "render.txt")
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.platform.uast.testFramework.common
|
||||
import com.intellij.openapi.application.runReadAction
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.editor.Document
|
||||
import com.intellij.platform.uast.testFramework.common.UastMappingsAccountant.computeMappingsInSeveralViewsSimultaneously
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
@@ -11,7 +12,6 @@ import com.intellij.psi.PsiRecursiveElementVisitor
|
||||
import com.intellij.psi.util.parents
|
||||
import org.jetbrains.uast.UElement
|
||||
import org.jetbrains.uast.UastFacade
|
||||
import com.intellij.platform.uast.testFramework.common.UastMappingsAccountant.computeMappingsInSeveralViewsSimultaneously
|
||||
import java.nio.file.Path
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ internal typealias PsiClazz = Class<out PsiElement>
|
||||
internal typealias UastClazz = Class<out UElement>
|
||||
|
||||
data class Location(val path: Path, val line: Int) {
|
||||
override fun toString() = "$path:$line"
|
||||
override fun toString(): String = "$path:$line"
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,7 +38,7 @@ typealias PsiContextBuilder = (PsiElement) -> PsiContext
|
||||
typealias UastMappingsRepository<S, T> = Map3<S, PsiContext, UastClazz, Collection<T>>
|
||||
typealias UastMutableMappingsRepository<S, T> = MutableMap3<S, PsiContext, UastClazz, MutableCollection<T>>
|
||||
|
||||
fun <S, T> mutableUastMappingsRepository() = mutableMap3Of<S, PsiContext, UastClazz, MutableCollection<T>>()
|
||||
fun <S, T> mutableUastMappingsRepository(): MutableMap3<S, PsiContext, UastClazz, MutableCollection<T>> = mutableMap3Of()
|
||||
|
||||
//endregion
|
||||
/* ------------------------------------------------------------------------------------------- */
|
||||
@@ -186,7 +186,7 @@ data class PairWithFirstIdentity<out F, out S>(val first: F, val second: S) {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode() = first?.hashCode() ?: 0
|
||||
override fun hashCode(): Int = first?.hashCode() ?: 0
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
@@ -83,10 +83,13 @@ class UastMappingsAccountantTest(
|
||||
private val ourComputedMappings by lazy { oneOfUs.get()!!.computeMappings() }
|
||||
private val ourComputedAndRenderedMappings by lazy { oneOfUs.get()!!.renderMappings(ourComputedMappings) }
|
||||
|
||||
override fun UastMappingsAccountantTest.computeOrGetMappings() =
|
||||
override fun UastMappingsAccountantTest.computeOrGetMappings(): Pair<
|
||||
UastMappingsRepository<PsiClazz, PairWithFirstIdentity<UastClazz?, Location>>,
|
||||
UastMappingsRepository<UastClazz, Location>
|
||||
> =
|
||||
oneOfUs.compareAndSet(null, this).let { ourComputedMappings }
|
||||
|
||||
override fun UastMappingsAccountantTest.computeOrGetRenderedMappings() =
|
||||
override fun UastMappingsAccountantTest.computeOrGetRenderedMappings(): AllRenderedUastMappings =
|
||||
oneOfUs.compareAndSet(null, this).let { ourComputedAndRenderedMappings }
|
||||
}
|
||||
}
|
||||
@@ -575,7 +578,7 @@ class UastMappingsAccountantTest(
|
||||
/* ------------------------------------------------------------------------------------------- */
|
||||
//region Sources grabbers
|
||||
|
||||
fun sourcesFromDirRecursive(dir: File, fileMatcher: FileNameMatcher, fixture: JavaCodeInsightTestFixture) =
|
||||
fun sourcesFromDirRecursive(dir: File, fileMatcher: FileNameMatcher, fixture: JavaCodeInsightTestFixture): Sequence<Lazy<Pair<PsiFile, Path>>> =
|
||||
dir
|
||||
.walkTopDown()
|
||||
.filter { fileMatcher.acceptsCharSequence(it.name) }
|
||||
@@ -586,7 +589,7 @@ fun sourcesFromDirRecursive(dir: File, fileMatcher: FileNameMatcher, fixture: Ja
|
||||
}
|
||||
}
|
||||
|
||||
fun sourcesFromLargeProject(fileType: FileType, project: Project, sourcesToProcessLimit: Int = Int.MAX_VALUE / 2, logger: Logger?) =
|
||||
fun sourcesFromLargeProject(fileType: FileType, project: Project, sourcesToProcessLimit: Int = Int.MAX_VALUE / 2, logger: Logger?): Sequence<Lazy<Pair<PsiFile, Path>?>> =
|
||||
runReadAction {
|
||||
val files = FileTypeIndex.getFiles(fileType, ProjectScope.getProjectScope(project))
|
||||
val actualSourcesAmount = min(files.size, sourcesToProcessLimit)
|
||||
|
||||
@@ -34,11 +34,11 @@ import kotlin.system.measureTimeMillis
|
||||
abstract class AbstractLargeProjectTest : UsefulTestCase() {
|
||||
|
||||
abstract val testProjectPath: Path
|
||||
protected open val projectLibraries get() = listOf<Pair<String, List<File>>>()
|
||||
protected open val projectLibraries: List<Pair<String, List<File>>> get() = listOf<Pair<String, List<File>>>()
|
||||
|
||||
protected lateinit var project: Project
|
||||
|
||||
override fun runInDispatchThread() = false
|
||||
override fun runInDispatchThread(): Boolean = false
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
|
||||
@@ -51,9 +51,9 @@ fun <T : UElement> capture(clazz: Class<T>): UElementPattern.Capture<T> = UEleme
|
||||
|
||||
fun <T : UExpression> expressionCapture(clazz: Class<T>): UExpressionPattern.Capture<T> = UExpressionPattern.Capture(clazz)
|
||||
|
||||
fun ProcessingContext.withRequestedPsi(psiElement: PsiElement) = this.apply { put(REQUESTED_PSI_ELEMENT, psiElement) }
|
||||
fun ProcessingContext.withRequestedPsi(psiElement: PsiElement): ProcessingContext = this.apply { put(REQUESTED_PSI_ELEMENT, psiElement) }
|
||||
|
||||
fun withRequestedPsi(psiElement: PsiElement) = ProcessingContext().withRequestedPsi(psiElement)
|
||||
fun withRequestedPsi(psiElement: PsiElement): ProcessingContext = ProcessingContext().withRequestedPsi(psiElement)
|
||||
|
||||
open class UElementPattern<T : UElement, Self : UElementPattern<T, Self>>(clazz: Class<T>) : ObjectPattern<T, Self>(clazz) {
|
||||
fun withSourcePsiCondition(pattern: PatternCondition<PsiElement>): Self =
|
||||
|
||||
@@ -9,17 +9,17 @@ sealed class Dependent : UserDataHolderBase() {
|
||||
abstract val element: UElement
|
||||
|
||||
data class CallExpression(val resolvedIndex: Int, val call: UCallExpression, val type: PsiType) : Dependent() {
|
||||
override val element get() = call
|
||||
override val element: UCallExpression get() = call
|
||||
}
|
||||
|
||||
data class Assigment(val assignee: UExpression) : Dependent() {
|
||||
override val element get() = assignee
|
||||
override val element: UExpression get() = assignee
|
||||
}
|
||||
|
||||
data class CommonDependent(override val element: UElement) : Dependent()
|
||||
|
||||
data class BinaryOperatorDependent(val binaryExpression: UBinaryExpression, val isDependentOfLeftOperand: Boolean) : Dependent() {
|
||||
override val element get() = binaryExpression
|
||||
override val element: UBinaryExpression get() = binaryExpression
|
||||
|
||||
val currentOperand: UExpression get() = if (isDependentOfLeftOperand) binaryExpression.leftOperand else binaryExpression.rightOperand
|
||||
val anotherOperand: UExpression get() = if (isDependentOfLeftOperand) binaryExpression.rightOperand else binaryExpression.leftOperand
|
||||
@@ -34,11 +34,11 @@ sealed class Dependency : UserDataHolderBase() {
|
||||
val element: UElement,
|
||||
override val referenceInfo: DependencyOfReference.ReferenceInfo? = null
|
||||
) : Dependency(), DependencyOfReference {
|
||||
override val elements = setOf(element)
|
||||
override val elements: Set<UElement> = setOf(element)
|
||||
}
|
||||
|
||||
data class ArgumentDependency(val element: UElement, val call: UCallExpression) : Dependency() {
|
||||
override val elements = setOf(element)
|
||||
override val elements: Set<UElement> = setOf(element)
|
||||
}
|
||||
|
||||
data class BranchingDependency(
|
||||
|
||||
@@ -38,7 +38,7 @@ data class DslLikeMethodDescriptor<T>(
|
||||
val methodPattern: ElementPattern<PsiMethod>,
|
||||
val lambdaDescriptor: DslLambdaDescriptor<T>
|
||||
) {
|
||||
fun accepts(method: PsiMethod?) = methodPattern.accepts(method)
|
||||
fun accepts(method: PsiMethod?): Boolean = methodPattern.accepts(method)
|
||||
}
|
||||
|
||||
fun interface BuilderMethodEvaluator<T : Any> {
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.jetbrains.uast.util.classSetOf
|
||||
@JvmDefaultWithCompatibility
|
||||
interface UastLanguagePlugin {
|
||||
companion object {
|
||||
val extensionPointName = ExtensionPointName<UastLanguagePlugin>("org.jetbrains.uast.uastLanguagePlugin")
|
||||
val extensionPointName: ExtensionPointName<UastLanguagePlugin> = ExtensionPointName<UastLanguagePlugin>("org.jetbrains.uast.uastLanguagePlugin")
|
||||
|
||||
fun getInstances(): Collection<UastLanguagePlugin> = extensionPointName.extensionList
|
||||
|
||||
@@ -49,7 +49,7 @@ interface UastLanguagePlugin {
|
||||
*
|
||||
* Priority is useful when a language N wraps its own elements (NElement) to, for example, Java's PsiElements,
|
||||
* and Java resolves the reference to such wrapped PsiElements, not the original NElement.
|
||||
* In this case N implementation can handle such wrappers in UastConverter earlier than Java's converter,
|
||||
* In this case, N implementation can handle such wrappers in UastConverter earlier than Java's converter,
|
||||
* so N language converter will have a higher priority.
|
||||
*/
|
||||
val priority: Int
|
||||
|
||||
@@ -5,13 +5,13 @@ import org.jetbrains.uast.UCallExpression
|
||||
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
object KotlinExtensionConstants {
|
||||
const val STANDARD_CLASS = "kotlin.StandardKt__StandardKt"
|
||||
const val LET_METHOD = "let"
|
||||
const val ALSO_METHOD = "also"
|
||||
const val RUN_METHOD = "run"
|
||||
const val APPLY_METHOD = "apply"
|
||||
const val STANDARD_CLASS: String = "kotlin.StandardKt__StandardKt"
|
||||
const val LET_METHOD: String = "let"
|
||||
const val ALSO_METHOD: String = "also"
|
||||
const val RUN_METHOD: String = "run"
|
||||
const val APPLY_METHOD: String = "apply"
|
||||
|
||||
const val LAMBDA_THIS_PARAMETER_NAME = "<this>"
|
||||
const val LAMBDA_THIS_PARAMETER_NAME: String = "<this>"
|
||||
|
||||
fun isExtensionWithSideEffect(call: UCallExpression): Boolean =
|
||||
call.methodName == ALSO_METHOD || call.methodName == APPLY_METHOD
|
||||
|
||||
@@ -15,7 +15,7 @@ interface UastAnalysisPlugin {
|
||||
private val extensionPointName = ExtensionPointName<UastAnalysisPlugin>("org.jetbrains.uast.analysis.uastAnalysisPlugin")
|
||||
|
||||
@JvmStatic
|
||||
fun byLanguage(language: Language) = extensionPointName.extensionList.firstOrNull { it.language == language }
|
||||
fun byLanguage(language: Language): UastAnalysisPlugin? = extensionPointName.extensionList.firstOrNull { it.language == language }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,6 +7,6 @@ import org.jetbrains.annotations.ApiStatus
|
||||
enum class UNullability {
|
||||
NULLABLE, NOT_NULL, NULL, UNKNOWN;
|
||||
|
||||
val isNullOrNullable
|
||||
val isNullOrNullable: Boolean
|
||||
get() = this == NULL || this == NULLABLE
|
||||
}
|
||||
@@ -25,7 +25,7 @@ open class UComment(override val sourcePsi: PsiComment, private val givenParent:
|
||||
@get:ApiStatus.ScheduledForRemoval
|
||||
@get:Deprecated("see the base property description")
|
||||
@Deprecated("see the base property description", ReplaceWith("sourcePsi"))
|
||||
override val psi get() = sourcePsi
|
||||
override val psi: PsiComment get() = sourcePsi
|
||||
|
||||
override val uastParent: UElement? by lazy {
|
||||
givenParent ?: sourcePsi.parent?.toUElement()
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.jetbrains.uast.values.UValue
|
||||
interface UEvaluatorExtension {
|
||||
|
||||
companion object {
|
||||
val EXTENSION_POINT_NAME = ExtensionPointName<UEvaluatorExtension>("org.jetbrains.uast.evaluation.uastEvaluatorExtension")
|
||||
val EXTENSION_POINT_NAME: ExtensionPointName<UEvaluatorExtension> = ExtensionPointName<UEvaluatorExtension>("org.jetbrains.uast.evaluation.uastEvaluatorExtension")
|
||||
}
|
||||
|
||||
val language: Language
|
||||
|
||||
@@ -21,7 +21,7 @@ interface UastCodeGenerationPlugin {
|
||||
private val extensionPointName = ExtensionPointName<UastCodeGenerationPlugin>("org.jetbrains.uast.generate.uastCodeGenerationPlugin")
|
||||
|
||||
@JvmStatic
|
||||
fun byLanguage(language: Language) = extensionPointName.extensionList.asSequence().firstOrNull { it.language == language }
|
||||
fun byLanguage(language: Language): UastCodeGenerationPlugin? = extensionPointName.extensionList.asSequence().firstOrNull { it.language == language }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -219,7 +219,7 @@ fun UQualifiedReferenceExpression.importMemberOnDemand(): UExpression? =
|
||||
UastCodeGenerationPlugin.byLanguage(this.lang)?.importMemberOnDemand(this)
|
||||
|
||||
@ApiStatus.Experimental
|
||||
inline fun <reified T : UElement> T.refreshed() = sourcePsi?.also {
|
||||
inline fun <reified T : UElement> T.refreshed(): T? = sourcePsi?.also {
|
||||
logger<UastCodeGenerationPlugin>().assertTrue(it.isValid,
|
||||
"psi $it of class ${it.javaClass} should be valid, containing file = ${it.containingFile}")
|
||||
}?.toUElementOfType<T>()
|
||||
|
||||
@@ -40,7 +40,7 @@ fun <U : UElement> Class<out UElement>.accommodate(a1: UElementAlternative<out U
|
||||
else null
|
||||
}
|
||||
|
||||
inline fun <reified U : UElement> alternative(noinline make: () -> U?) = UElementAlternative(U::class.java, make)
|
||||
inline fun <reified U : UElement> alternative(noinline make: () -> U?): UElementAlternative<U> = UElementAlternative(U::class.java, make)
|
||||
|
||||
class UElementAlternative<U : UElement>(val uType: Class<U>, val make: () -> U?)
|
||||
|
||||
@@ -52,7 +52,7 @@ private val isInsideReporting = ThreadLocal<Boolean>()
|
||||
|
||||
private val conversionLoggerCollector = ThreadLocalTroubleCollector()
|
||||
|
||||
val CONVERSION_LOGGER = conversionLoggerCollector.logger
|
||||
val CONVERSION_LOGGER: ThreadLocalTroubleCollector.Logger = conversionLoggerCollector.logger
|
||||
|
||||
fun <T : UElement> convertOrReport(psiElement: PsiElement, parent: UElement, expectedType: Class<T>): T? {
|
||||
|
||||
|
||||
@@ -39,6 +39,6 @@ open class UastBinaryExpressionWithTypeKind(val name: String) {
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val UNKNOWN = UastBinaryExpressionWithTypeKind("<unknown>")
|
||||
val UNKNOWN: UastBinaryExpressionWithTypeKind = UastBinaryExpressionWithTypeKind("<unknown>")
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ abstract class IndentedPrintingVisitor(val shouldIndent: (PsiElement) -> Boolean
|
||||
constructor(vararg kClasses: KClass<*>) : this({ psi -> kClasses.any { it.isInstance(psi) } })
|
||||
|
||||
private val builder = StringBuilder()
|
||||
var level = 0
|
||||
var level: Int = 0
|
||||
private set
|
||||
|
||||
override fun visitElement(element: PsiElement) {
|
||||
|
||||
@@ -24,7 +24,7 @@ class JavaUastAnalysisPlugin : UastAnalysisPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
override val language = JavaLanguage.INSTANCE
|
||||
override val language: JavaLanguage = JavaLanguage.INSTANCE
|
||||
|
||||
private fun DfaNullability.toUNullability() = when (this) {
|
||||
DfaNullability.NULL -> UNullability.NULL
|
||||
|
||||
@@ -31,7 +31,7 @@ class JavaUSwitchEntryList(
|
||||
override val kind: UastSpecialExpressionKind
|
||||
get() = JavaSpecialExpressionKinds.SWITCH
|
||||
|
||||
override fun asRenderString() = expressions.joinToString("\n") {
|
||||
override fun asRenderString(): String = expressions.joinToString("\n") {
|
||||
it.asRenderString().withMargin
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ abstract class AbstractJavaUClass(
|
||||
abstract override val javaPsi: PsiClass
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi get() = javaPsi
|
||||
override val psi: PsiClass get() = javaPsi
|
||||
|
||||
override val uastDeclarations: List<UDeclaration> by lazyPub {
|
||||
mutableListOf<UDeclaration>().apply {
|
||||
|
||||
@@ -15,7 +15,7 @@ class JavaUClassInitializer(
|
||||
) : JavaAbstractUElement(uastParent), UClassInitializerEx, JavaUElementWithComments, UAnchorOwner, PsiClassInitializer by sourcePsi {
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi get() = sourcePsi
|
||||
override val psi: PsiClassInitializer get() = sourcePsi
|
||||
|
||||
override val javaPsi: PsiClassInitializer = sourcePsi
|
||||
|
||||
|
||||
@@ -42,6 +42,6 @@ class JavaUFile(
|
||||
override fun equals(other: Any?): Boolean = (other as? JavaUFile)?.sourcePsi == sourcePsi
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi
|
||||
override val psi: PsiJavaFile
|
||||
get() = sourcePsi
|
||||
}
|
||||
|
||||
@@ -36,5 +36,5 @@ class JavaUImportStatement(
|
||||
sourcePsi.importReference?.multiResolve(false)?.asIterable() ?: emptyList()
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi get() = sourcePsi
|
||||
override val psi: PsiImportStatementBase get() = sourcePsi
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ open class JavaUMethod(
|
||||
) : JavaAbstractUElement(uastParent), UMethod, JavaUElementWithComments, UAnchorOwner, PsiMethod by javaPsi {
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi
|
||||
override val psi: PsiMethod
|
||||
get() = javaPsi
|
||||
|
||||
override val sourcePsi: PsiElement?
|
||||
@@ -97,7 +97,7 @@ class JavaUAnnotationMethod(
|
||||
) : JavaUMethod(javaPsi, containingElement), UAnnotationMethod, UDeclarationEx {
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi
|
||||
override val psi: PsiAnnotationMethod
|
||||
get() = javaPsi
|
||||
|
||||
override val uastDefaultValue: UExpression? by lazyPub {
|
||||
|
||||
@@ -24,7 +24,7 @@ abstract class AbstractJavaUVariable(
|
||||
abstract override val javaPsi: PsiVariable
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override val psi
|
||||
override val psi: PsiVariable
|
||||
get() = javaPsi
|
||||
|
||||
override val uastInitializer: UExpression? by lazyPub {
|
||||
|
||||
Reference in New Issue
Block a user