From 93fd2bf10f7bdd87b93ba8d2050d75d6f005e489 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Tue, 25 Dec 2012 18:51:34 +0400 Subject: [PATCH] RENDER_COLLECTION_OF_TYPES changed --- .../lang/diagnostics/rendering/Renderers.java | 15 +++++++------ .../renderCollectionOfTypes.kt | 11 ++++++++++ .../renderCollectionOfTypes1.txt | 2 ++ .../HtmlTabledDescriptorRendererTest.java | 21 +++++++++++++++++-- 4 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 idea/testData/htmlTabledRenderer/renderCollectionOfTypes.kt create mode 100644 idea/testData/htmlTabledRenderer/renderCollectionOfTypes1.txt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/Renderers.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/Renderers.java index 35eadeaea2a..5c3e5831fff 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/Renderers.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/Renderers.java @@ -19,7 +19,9 @@ package org.jetbrains.jet.lang.diagnostics.rendering; import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; +import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -314,15 +316,12 @@ public class Renderers { @NotNull @Override public String render(@NotNull Collection types) { - StringBuilder builder = new StringBuilder(); - for (Iterator iterator = types.iterator(); iterator.hasNext(); ) { - JetType jetType = iterator.next(); - builder.append(jetType); - if (iterator.hasNext()) { - builder.append(", "); + return StringUtil.join(types, new Function() { + @Override + public String fun(JetType type) { + return RENDER_TYPE.render(type); } - } - return builder.toString(); + }, ", "); } }; diff --git a/idea/testData/htmlTabledRenderer/renderCollectionOfTypes.kt b/idea/testData/htmlTabledRenderer/renderCollectionOfTypes.kt new file mode 100644 index 00000000000..74dcf725102 --- /dev/null +++ b/idea/testData/htmlTabledRenderer/renderCollectionOfTypes.kt @@ -0,0 +1,11 @@ +package aa + +import java.util.ArrayList + +fun foo(f: (List, ArrayList) -> MutableMap) = f + +fun test() { + foo { + "" + } +} \ No newline at end of file diff --git a/idea/testData/htmlTabledRenderer/renderCollectionOfTypes1.txt b/idea/testData/htmlTabledRenderer/renderCollectionOfTypes1.txt new file mode 100644 index 00000000000..4be16777c83 --- /dev/null +++ b/idea/testData/htmlTabledRenderer/renderCollectionOfTypes1.txt @@ -0,0 +1,2 @@ + +Expected 2 parameters of types jet.List, java.util.ArrayList \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/highlighter/HtmlTabledDescriptorRendererTest.java b/idea/tests/org/jetbrains/jet/plugin/highlighter/HtmlTabledDescriptorRendererTest.java index 9663d48b156..bc2150c2040 100644 --- a/idea/tests/org/jetbrains/jet/plugin/highlighter/HtmlTabledDescriptorRendererTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/highlighter/HtmlTabledDescriptorRendererTest.java @@ -26,6 +26,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.lang.diagnostics.AbstractDiagnosticFactory; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.Errors; +import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -67,8 +68,20 @@ public class HtmlTabledDescriptorRendererTest extends JetLiteFixture { int index = 1; for (Diagnostic diagnostic : diagnostics) { - String readableDiagnosticHtml = "\n" + IdeErrorMessages.RENDERER.render(diagnostic).replaceAll(">", ">\n"); - assertSameLinesWithFile(getTestDataPath() + "/" + name + index + ".html", readableDiagnosticHtml); + String readableDiagnosticText; + String extension; + if (IdeErrorMessages.MAP.get(diagnostic.getFactory()) != null) { + readableDiagnosticText = IdeErrorMessages.RENDERER.render(diagnostic).replaceAll(">", ">\n"); + extension = "html"; + } + else { + readableDiagnosticText = DefaultErrorMessages.RENDERER.render(diagnostic); + extension = "txt"; + } + String errorMessageFileName = name + index; + String path = getTestDataPath() + "/" + errorMessageFileName + "." + extension; + String actualText = "\n" + readableDiagnosticText; + assertSameLinesWithFile(path, actualText); index++; } @@ -81,4 +94,8 @@ public class HtmlTabledDescriptorRendererTest extends JetLiteFixture { public void testFunctionPlaceholder() throws Exception { doTest("functionPlaceholder", 3, Errors.TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH); } + + public void testRenderCollectionOfTypes() throws Exception { + doTest("renderCollectionOfTypes", 1, Errors.EXPECTED_PARAMETERS_NUMBER_MISMATCH); + } }