Added test to settle format of HtmlTabledDescriptorRenderer.
This commit is contained in:
@@ -0,0 +1,169 @@
|
|||||||
|
<html>
|
||||||
|
Type inference failed: Cannot infer type parameter <b>
|
||||||
|
T</b>
|
||||||
|
in<table>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td align="right" colspan="2">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
<b>
|
||||||
|
fun</b>
|
||||||
|
<T, E>
|
||||||
|
writeToMyList</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
(</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
l : MyList<in T>,</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
t : T</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
)</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
: Unit <b>
|
||||||
|
where</b>
|
||||||
|
E : java.lang.Cloneable, E : java.io.Closeable</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="8">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
None of the following substitutions</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<font color=red>
|
||||||
|
<b>
|
||||||
|
MyList<in jet.Any></b>
|
||||||
|
</font>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
jet.Any</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
MyList<in jet.Int></b>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<font color=red>
|
||||||
|
<b>
|
||||||
|
jet.Int</b>
|
||||||
|
</font>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="8">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
can be applied to</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
MyList<jet.Int></b>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
jet.Any</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
<html>
|
||||||
|
Type inference failed: Cannot infer type parameter <b>
|
||||||
|
T</b>
|
||||||
|
in<table>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td align="right" colspan="2">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
<b>
|
||||||
|
ctor</b>
|
||||||
|
Cons<T, E : java.lang.Cloneable>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
(</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
l : MyList<in T>,</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
t : T</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
)</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;font-weight:bold;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="8">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
None of the following substitutions</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<font color=red>
|
||||||
|
<b>
|
||||||
|
MyList<in jet.Any></b>
|
||||||
|
</font>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
jet.Any</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
MyList<in jet.Int></b>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<font color=red>
|
||||||
|
<b>
|
||||||
|
jet.Int</b>
|
||||||
|
</font>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="8">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
can be applied to</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="10%">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
(</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
MyList<jet.Int></b>
|
||||||
|
<b>
|
||||||
|
,</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td align="right">
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
jet.Any</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div style="white-space:nowrap;">
|
||||||
|
<b>
|
||||||
|
)</b>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
// see org.jetbrains.jet.plugin.highlighter.HtmlTabledDescriptorRendererTest
|
||||||
|
|
||||||
|
import java.io.Closeable
|
||||||
|
|
||||||
|
class MyList<T>(t: T) {}
|
||||||
|
|
||||||
|
fun <T> getMyList(t: T): MyList<T> = MyList(t)
|
||||||
|
fun <T, E: Cloneable> writeToMyList (l: MyList< in T>, t: T) where E: Closeable {}
|
||||||
|
class Cons<T, E: Cloneable>(l: MyList<in T>, t: T)
|
||||||
|
|
||||||
|
fun test1(int: Int, any: Any) {
|
||||||
|
writeToMyList(getMyList(int), any)
|
||||||
|
Cons(getMyList(int), any)
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2012 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.plugin.highlighter;
|
||||||
|
|
||||||
|
import com.intellij.openapi.util.Condition;
|
||||||
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
|
import org.jetbrains.jet.ConfigurationKind;
|
||||||
|
import org.jetbrains.jet.JetLiteFixture;
|
||||||
|
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||||
|
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||||
|
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||||
|
import org.jetbrains.jet.lang.diagnostics.Errors;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
|
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||||
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||||
|
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class HtmlTabledDescriptorRendererTest extends JetLiteFixture {
|
||||||
|
@Override
|
||||||
|
protected JetCoreEnvironment createEnvironment() {
|
||||||
|
return createEnvironmentWithMockJdk(ConfigurationKind.JDK_ONLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTestDataPath() {
|
||||||
|
return PluginTestCaseBase.getTestDataPathBase() + "/htmlTabledRenderer/";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testHtmlTabledRenderer() throws Exception {
|
||||||
|
String fileName = "htmlTabledRenderer.kt";
|
||||||
|
JetFile psiFile = createPsiFile(null, fileName, loadFile(fileName));
|
||||||
|
|
||||||
|
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(psiFile, Collections.<AnalyzerScriptParameter>emptyList());
|
||||||
|
BindingContext bindingContext = analyzeExhaust.getBindingContext();
|
||||||
|
|
||||||
|
List<Diagnostic> diagnostics = ContainerUtil.filter(bindingContext.getDiagnostics(), new Condition<Diagnostic>() {
|
||||||
|
@Override
|
||||||
|
public boolean value(Diagnostic diagnostic) {
|
||||||
|
return diagnostic.getFactory() == Errors.TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
assertEquals(diagnostics.size(), 2);
|
||||||
|
|
||||||
|
int index = 1;
|
||||||
|
for (Diagnostic diagnostic : diagnostics) {
|
||||||
|
String readableDiagnosticHtml = IdeErrorMessages.RENDERER.render(diagnostic).replaceAll(">", ">\n");
|
||||||
|
assertSameLinesWithFile(getTestDataPath() + "/diagnostic" + index + ".html", readableDiagnosticHtml);
|
||||||
|
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user