[FIR] Remove line breaks after context receivers in diagnostic messages
#KT-62944 Fixed
This commit is contained in:
committed by
Space Team
parent
e18a124cbb
commit
0682a1f76d
+6
@@ -12687,6 +12687,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("contextReceiverAmbiguity.kt")
|
||||||
|
public void testContextReceiverAmbiguity() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverAmbiguity.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
||||||
public void testContextReceiverTypeParamsUsage() throws Exception {
|
public void testContextReceiverTypeParamsUsage() throws Exception {
|
||||||
|
|||||||
+6
@@ -12687,6 +12687,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("contextReceiverAmbiguity.kt")
|
||||||
|
public void testContextReceiverAmbiguity() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverAmbiguity.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
||||||
public void testContextReceiverTypeParamsUsage() throws Exception {
|
public void testContextReceiverTypeParamsUsage() throws Exception {
|
||||||
|
|||||||
+6
@@ -12681,6 +12681,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
|||||||
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("contextReceiverAmbiguity.kt")
|
||||||
|
public void testContextReceiverAmbiguity() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverAmbiguity.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
||||||
public void testContextReceiverTypeParamsUsage() throws Exception {
|
public void testContextReceiverTypeParamsUsage() throws Exception {
|
||||||
|
|||||||
+6
@@ -12687,6 +12687,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("contextReceiverAmbiguity.kt")
|
||||||
|
public void testContextReceiverAmbiguity() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverAmbiguity.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
||||||
public void testContextReceiverTypeParamsUsage() throws Exception {
|
public void testContextReceiverTypeParamsUsage() throws Exception {
|
||||||
|
|||||||
+2
-1
@@ -45,7 +45,8 @@ object FirDiagnosticRenderers {
|
|||||||
callArgumentsRenderer = FirCallNoArgumentsRenderer(),
|
callArgumentsRenderer = FirCallNoArgumentsRenderer(),
|
||||||
modifierRenderer = FirPartialModifierRenderer(),
|
modifierRenderer = FirPartialModifierRenderer(),
|
||||||
valueParameterRenderer = FirValueParameterRendererNoDefaultValue(),
|
valueParameterRenderer = FirValueParameterRendererNoDefaultValue(),
|
||||||
declarationRenderer = FirDeclarationRenderer("local ")
|
declarationRenderer = FirDeclarationRenderer("local "),
|
||||||
|
lineBreakAfterContextReceivers = false,
|
||||||
).renderElementAsString(symbol.fir, trim = true)
|
).renderElementAsString(symbol.fir, trim = true)
|
||||||
is FirTypeParameterSymbol -> symbol.name.asString()
|
is FirTypeParameterSymbol -> symbol.name.asString()
|
||||||
else -> "???"
|
else -> "???"
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ import org.jetbrains.kotlin.fir.expressions.*
|
|||||||
import org.jetbrains.kotlin.fir.expressions.impl.*
|
import org.jetbrains.kotlin.fir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.fir.references.*
|
import org.jetbrains.kotlin.fir.references.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
@@ -48,6 +46,7 @@ class FirRenderer(
|
|||||||
override val fileAnnotationsContainerRenderer: FirFileAnnotationsContainerRenderer? = null,
|
override val fileAnnotationsContainerRenderer: FirFileAnnotationsContainerRenderer? = null,
|
||||||
override val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer = FirResolvedNamedReferenceRendererWithLabel(),
|
override val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer = FirResolvedNamedReferenceRendererWithLabel(),
|
||||||
override val resolvedQualifierRenderer: FirResolvedQualifierRenderer = FirResolvedQualifierRendererWithLabel(),
|
override val resolvedQualifierRenderer: FirResolvedQualifierRenderer = FirResolvedQualifierRendererWithLabel(),
|
||||||
|
private val lineBreakAfterContextReceivers: Boolean = true,
|
||||||
) : FirRendererComponents {
|
) : FirRendererComponents {
|
||||||
|
|
||||||
override val visitor = Visitor()
|
override val visitor = Visitor()
|
||||||
@@ -149,7 +148,12 @@ class FirRenderer(
|
|||||||
print("context(")
|
print("context(")
|
||||||
renderSeparated(contextReceivers, visitor)
|
renderSeparated(contextReceivers, visitor)
|
||||||
print(")")
|
print(")")
|
||||||
printer.newLine()
|
|
||||||
|
if (lineBreakAfterContextReceivers) {
|
||||||
|
printer.newLine()
|
||||||
|
} else {
|
||||||
|
print(" ")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun List<FirTypeParameterRef>.renderTypeParameters() {
|
private fun List<FirTypeParameterRef>.renderTypeParameters() {
|
||||||
|
|||||||
Vendored
+5
@@ -0,0 +1,5 @@
|
|||||||
|
/contextReceiverAmbiguity.kt:13:9: error: overload resolution ambiguity:
|
||||||
|
context(String) public fun foo(x: Comparable<*>): Unit defined in root package in file contextReceiverAmbiguity.kt
|
||||||
|
context(String) public fun foo(x: Number): Unit defined in root package in file contextReceiverAmbiguity.kt
|
||||||
|
foo(1)
|
||||||
|
^
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
/contextReceiverAmbiguity.kt:(203,206): error: Overload resolution ambiguity between candidates: [context(String) fun foo(x: Comparable<*>): Unit, context(String) fun foo(x: Number): Unit]
|
||||||
Vendored
+15
@@ -0,0 +1,15 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
|
// !LANGUAGE: +ContextReceivers
|
||||||
|
// RENDER_DIAGNOSTICS_FULL_TEXT
|
||||||
|
|
||||||
|
context(String)
|
||||||
|
fun foo(x: Comparable<*>) {}
|
||||||
|
|
||||||
|
context(String)
|
||||||
|
fun foo(x: Number) {}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
with("") {
|
||||||
|
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+6
@@ -12687,6 +12687,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextKeywordWithElvis.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("contextReceiverAmbiguity.kt")
|
||||||
|
public void testContextReceiverAmbiguity() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverAmbiguity.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
@TestMetadata("contextReceiverTypeParamsUsage.kt")
|
||||||
public void testContextReceiverTypeParamsUsage() throws Exception {
|
public void testContextReceiverTypeParamsUsage() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user