Introduced DispatchingDiagnosticRenderer, which replaced DefaultDiagnosticRenderer.
This commit is contained in:
@@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.descriptors.ClassOrNamespaceDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.diagnostics.*;
|
import org.jetbrains.jet.lang.diagnostics.*;
|
||||||
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultDiagnosticRenderer;
|
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||||
@@ -155,7 +155,7 @@ public class CompileSession {
|
|||||||
render = ((SyntaxErrorDiagnostic)diagnostic).message;
|
render = ((SyntaxErrorDiagnostic)diagnostic).message;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
render = DefaultDiagnosticRenderer.INSTANCE.render(diagnostic);
|
render = DefaultErrorMessages.RENDERER.render(diagnostic);
|
||||||
}
|
}
|
||||||
collector.report(diagnostic.getSeverity(), render, path, lineAndColumn.getLine(), lineAndColumn.getColumn());
|
collector.report(diagnostic.getSeverity(), render, path, lineAndColumn.getLine(), lineAndColumn.getColumn());
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.jet.lang.diagnostics.rendering;
|
package org.jetbrains.jet.lang.diagnostics.rendering;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetTypeConstraint;
|
import org.jetbrains.jet.lang.psi.JetTypeConstraint;
|
||||||
@@ -38,6 +39,7 @@ import static org.jetbrains.jet.lang.diagnostics.rendering.Renderers.TO_STRING;
|
|||||||
*/
|
*/
|
||||||
public class DefaultErrorMessages {
|
public class DefaultErrorMessages {
|
||||||
public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap();
|
public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap();
|
||||||
|
public static final DiagnosticRenderer<Diagnostic> RENDERER = new DispatchingDiagnosticRenderer(MAP);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
MAP.put(EXCEPTION_WHILE_ANALYZING, "{0}", new Renderer<Throwable>() {
|
MAP.put(EXCEPTION_WHILE_ANALYZING, "{0}", new Renderer<Throwable>() {
|
||||||
|
|||||||
+13
-9
@@ -21,21 +21,25 @@ import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Evgeny Gerashchenko
|
* @author Evgeny Gerashchenko
|
||||||
* @since 4/12/12
|
* @since 4/13/12
|
||||||
*/
|
*/
|
||||||
public class DefaultDiagnosticRenderer implements DiagnosticRenderer<Diagnostic> {
|
public class DispatchingDiagnosticRenderer implements DiagnosticRenderer<Diagnostic> {
|
||||||
public static final DefaultDiagnosticRenderer INSTANCE = new DefaultDiagnosticRenderer();
|
private final DiagnosticFactoryToRendererMap[] maps;
|
||||||
|
|
||||||
private final DiagnosticFactoryToRendererMap map = DefaultErrorMessages.MAP;
|
public DispatchingDiagnosticRenderer(DiagnosticFactoryToRendererMap... maps) {
|
||||||
|
this.maps = maps;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String render(@NotNull Diagnostic diagnostic) {
|
public String render(@NotNull Diagnostic diagnostic) {
|
||||||
DiagnosticRenderer renderer = map.get(diagnostic.getFactory());
|
for (DiagnosticFactoryToRendererMap map : maps) {
|
||||||
if (renderer == null) {
|
DiagnosticRenderer renderer = map.get(diagnostic.getFactory());
|
||||||
throw new IllegalArgumentException("Don't know how to render diagnostic of type " + diagnostic.getFactory().getName());
|
if (renderer != null) {
|
||||||
|
//noinspection unchecked
|
||||||
|
return renderer.render(diagnostic);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//noinspection unchecked
|
throw new IllegalArgumentException("Don't know how to render diagnostic of type " + diagnostic.getFactory().getName());
|
||||||
return renderer.render(diagnostic);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,9 +27,9 @@ import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
|||||||
import org.jetbrains.jet.compiler.JetCoreEnvironment;
|
import org.jetbrains.jet.compiler.JetCoreEnvironment;
|
||||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||||
import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnosticFactory;
|
import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnosticFactory;
|
||||||
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultDiagnosticRenderer;
|
|
||||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||||
import org.jetbrains.jet.lang.diagnostics.Severity;
|
import org.jetbrains.jet.lang.diagnostics.Severity;
|
||||||
|
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
@@ -153,7 +153,7 @@ public class JetTestUtils {
|
|||||||
@Override
|
@Override
|
||||||
public void report(@NotNull Diagnostic diagnostic) {
|
public void report(@NotNull Diagnostic diagnostic) {
|
||||||
if (diagnostic.getSeverity() == Severity.ERROR) {
|
if (diagnostic.getSeverity() == Severity.ERROR) {
|
||||||
throw new IllegalStateException(DefaultDiagnosticRenderer.INSTANCE.render(diagnostic));
|
throw new IllegalStateException(DefaultErrorMessages.RENDERER.render(diagnostic));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ import com.intellij.psi.PsiReference;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.TestOnly;
|
import org.jetbrains.annotations.TestOnly;
|
||||||
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultDiagnosticRenderer;
|
|
||||||
import org.jetbrains.jet.lang.diagnostics.*;
|
import org.jetbrains.jet.lang.diagnostics.*;
|
||||||
|
import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
import org.jetbrains.jet.lang.psi.JetReferenceExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
@@ -238,7 +238,7 @@ public class JetPsiChecker implements Annotator {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static String getMessage(@NotNull Diagnostic diagnostic) {
|
private static String getMessage(@NotNull Diagnostic diagnostic) {
|
||||||
String message = DefaultDiagnosticRenderer.INSTANCE.render(diagnostic);
|
String message = DefaultErrorMessages.RENDERER.render(diagnostic);
|
||||||
if (ApplicationManager.getApplication().isInternal() || ApplicationManager.getApplication().isUnitTestMode()) {
|
if (ApplicationManager.getApplication().isInternal() || ApplicationManager.getApplication().isUnitTestMode()) {
|
||||||
return "[" + diagnostic.getFactory().getName() + "] " + message;
|
return "[" + diagnostic.getFactory().getName() + "] " + message;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user