[FIR] Trim rendered symbols in diagnostic messages

This commit is contained in:
Kirill Rakhman
2023-04-03 18:36:01 +02:00
committed by Space Team
parent 456d3e0f42
commit 674397be82
5 changed files with 9 additions and 13 deletions
@@ -48,8 +48,7 @@ KtApplicableCallCandidateInfo:
isInBestCandidates = true
KtInapplicableCallCandidateInfo:
diagnostic = ERROR<TOO_MANY_ARGUMENTS: Too many arguments for public final inline fun <T, K> R|kotlin/collections/Iterable<T>|.kotlin/collections/groupBy(keySelector: R|(T) -> K|): R|kotlin/collections/Map<K, kotlin/collections/List<T>>|
>
diagnostic = ERROR<TOO_MANY_ARGUMENTS: Too many arguments for public final inline fun <T, K> R|kotlin/collections/Iterable<T>|.kotlin/collections/groupBy(keySelector: R|(T) -> K|): R|kotlin/collections/Map<K, kotlin/collections/List<T>>|>
candidate = KtSimpleFunctionCall:
isImplicitInvoke = false
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
@@ -37,7 +37,7 @@ object FirDiagnosticRenderers {
callArgumentsRenderer = FirCallNoArgumentsRenderer(),
modifierRenderer = FirPartialModifierRenderer(),
valueParameterRenderer = FirValueParameterRendererNoDefaultValue(),
).renderElementAsString(symbol.fir)
).renderElementAsString(symbol.fir, trim = true)
is FirTypeParameterSymbol -> symbol.name.asString()
else -> "???"
}
@@ -109,7 +109,7 @@ object FirDiagnosticRenderers {
@OptIn(SymbolInternals::class)
FirRenderer(
annotationRenderer = null, bodyRenderer = null, idRenderer = ConeIdFullRenderer()
).renderElementAsString(symbol.fir)
).renderElementAsString(symbol.fir, trim = true)
}
val AMBIGUOUS_CALLS = Renderer { candidates: Collection<FirBasedSymbol<*>> ->
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.util.OperatorNameConventions
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
import java.util.*
class FirRenderer(
@@ -88,9 +89,9 @@ class FirRenderer(
fileAnnotationsContainerRenderer?.components = this
}
fun renderElementAsString(element: FirElement): String {
fun renderElementAsString(element: FirElement, trim: Boolean = false): String {
element.accept(visitor)
return printer.toString()
return printer.toString().applyIf(trim, String::trim)
}
fun renderElementWithTypeAsString(element: FirElement): String {
+3 -6
View File
@@ -1,14 +1,11 @@
warning: language version 2.0 is experimental, there are no backwards compatibility guarantees for new language and library features
compiler/testData/cli/jvm/firDeprecationJava.kt:3:12: warning: '@Deprecated(...) fun stop(): Unit
' is deprecated. Deprecated in Java
compiler/testData/cli/jvm/firDeprecationJava.kt:3:12: warning: '@Deprecated(...) fun stop(): Unit' is deprecated. Deprecated in Java
thread.stop()
^
compiler/testData/cli/jvm/firDeprecationJava.kt:4:17: warning: '@Deprecated(...) fun bar(a: String!, b: Int, c: Double): String!
' is deprecated. Deprecated in Java
compiler/testData/cli/jvm/firDeprecationJava.kt:4:17: warning: '@Deprecated(...) fun bar(a: String!, b: Int, c: Double): String!' is deprecated. Deprecated in Java
JavaClass().bar("", 1, 2.0)
^
compiler/testData/cli/jvm/firDeprecationJava.kt:5:27: warning: '@Deprecated(...) field baz: List!
' is deprecated. Deprecated in Java
compiler/testData/cli/jvm/firDeprecationJava.kt:5:27: warning: '@Deprecated(...) field baz: List!' is deprecated. Deprecated in Java
val baz = JavaClass().baz
^
OK
@@ -13,7 +13,6 @@ compiler/testData/cli/jvm/firMultiplatformCompilationWithError/jvm.kt:1:18: erro
expect fun foo(): Unit
actual interface A
^
COMPILATION_ERROR