KT-59093 [Analysis API] Remove error logging from KtFirCallResolver
There are too many possible error cases when code resolution cannot properly resolve a call. Since in external mode `Logger.error` calls lead to visible IDE errors, we want to avoid that ^KT-59093 Fixed
This commit is contained in:
-20
@@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api.fir.components
|
package org.jetbrains.kotlin.analysis.api.fir.components
|
||||||
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
|
||||||
import org.jetbrains.kotlin.analysis.api.calls.*
|
import org.jetbrains.kotlin.analysis.api.calls.*
|
||||||
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnostic
|
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnostic
|
||||||
import org.jetbrains.kotlin.analysis.api.diagnostics.KtNonBoundToPsiErrorDiagnostic
|
import org.jetbrains.kotlin.analysis.api.diagnostics.KtNonBoundToPsiErrorDiagnostic
|
||||||
@@ -32,8 +30,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbolOfT
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolver.AllCandidatesResolver
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolver.AllCandidatesResolver
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.ExceptionAttachmentBuilder
|
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.logErrorWithAttachment
|
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.rethrowExceptionWithDetails
|
import org.jetbrains.kotlin.analysis.utils.errors.rethrowExceptionWithDetails
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.withPsiEntry
|
import org.jetbrains.kotlin.analysis.utils.errors.withPsiEntry
|
||||||
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
|
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
|
||||||
@@ -77,8 +73,6 @@ import org.jetbrains.kotlin.util.OperatorNameConventions.EQUALS
|
|||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
private val LOG: Logger = Logger.getInstance(KtFirCallResolver::class.java)
|
|
||||||
|
|
||||||
internal class KtFirCallResolver(
|
internal class KtFirCallResolver(
|
||||||
override val analysisSession: KtFirAnalysisSession,
|
override val analysisSession: KtFirAnalysisSession,
|
||||||
override val token: KtLifetimeToken,
|
override val token: KtLifetimeToken,
|
||||||
@@ -1290,20 +1284,6 @@ internal class KtFirCallResolver(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@KtAnalysisApiInternals
|
|
||||||
override fun unresolvedKtCallError(psi: KtElement): KtErrorCallInfo {
|
|
||||||
LOG.logErrorWithAttachment("${psi::class.simpleName} should always resolve to a KtCallInfo") {
|
|
||||||
withPsiEntry("psi", psi, analysisSession::getModule)
|
|
||||||
provideAdditionalAttachmentToUnresolvedCall(psi, this)
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.unresolvedKtCallError(psi)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun provideAdditionalAttachmentToUnresolvedCall(psi: KtElement, builder: ExceptionAttachmentBuilder) {
|
|
||||||
psi.getOrBuildFir(firResolveSession)?.let { builder.withFirEntry("fir", it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private inline fun <R> wrapError(element: KtElement, action: () -> R): R {
|
private inline fun <R> wrapError(element: KtElement, action: () -> R): R {
|
||||||
return try {
|
return try {
|
||||||
action()
|
action()
|
||||||
|
|||||||
+1
-2
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api.components
|
package org.jetbrains.kotlin.analysis.api.components
|
||||||
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||||
import org.jetbrains.kotlin.analysis.api.calls.KtCallCandidateInfo
|
import org.jetbrains.kotlin.analysis.api.calls.KtCallCandidateInfo
|
||||||
import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo
|
import org.jetbrains.kotlin.analysis.api.calls.KtCallInfo
|
||||||
@@ -23,7 +22,7 @@ public abstract class KtCallResolver : KtAnalysisSessionComponent() {
|
|||||||
public abstract fun collectCallCandidates(psi: KtElement): List<KtCallCandidateInfo>
|
public abstract fun collectCallCandidates(psi: KtElement): List<KtCallCandidateInfo>
|
||||||
|
|
||||||
@KtAnalysisApiInternals
|
@KtAnalysisApiInternals
|
||||||
public open fun unresolvedKtCallError(psi: KtElement): KtErrorCallInfo {
|
public fun unresolvedKtCallError(psi: KtElement): KtErrorCallInfo {
|
||||||
return KtErrorCallInfo(
|
return KtErrorCallInfo(
|
||||||
_candidateCalls = emptyList(),
|
_candidateCalls = emptyList(),
|
||||||
KtNonBoundToPsiErrorDiagnostic(factoryName = null, "Unresolved call", token),
|
KtNonBoundToPsiErrorDiagnostic(factoryName = null, "Unresolved call", token),
|
||||||
|
|||||||
Reference in New Issue
Block a user