uast cleanup: specify return types explicitly

GitOrigin-RevId: 759797ac529472d62c7e9e6f50c36bc49ea18083
This commit is contained in:
Alexey Kudravtsev
2023-05-18 13:13:16 +02:00
committed by intellij-monorepo-bot
parent ac7f35e7fa
commit 004bcb109a
27 changed files with 53 additions and 48 deletions

View File

@@ -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,

View File

@@ -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,

View File

@@ -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")

View File

@@ -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

View File

@@ -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)

View File

@@ -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()

View File

@@ -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 =

View File

@@ -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(

View File

@@ -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> {

View File

@@ -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

View File

@@ -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

View File

@@ -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 }
}
/**

View File

@@ -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
}

View File

@@ -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()

View File

@@ -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

View File

@@ -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>()

View File

@@ -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? {

View File

@@ -39,6 +39,6 @@ open class UastBinaryExpressionWithTypeKind(val name: String) {
companion object {
@JvmField
val UNKNOWN = UastBinaryExpressionWithTypeKind("<unknown>")
val UNKNOWN: UastBinaryExpressionWithTypeKind = UastBinaryExpressionWithTypeKind("<unknown>")
}
}

View File

@@ -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) {

View File

@@ -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

View File

@@ -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
}

View File

@@ -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 {

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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 {

View File

@@ -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 {