Made single parameter of Renderer.render() @NotNull, because argument was almost never @Nullable on call-sites.
This commit is contained in:
@@ -18,7 +18,6 @@ package org.jetbrains.jet.compiler;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.diagnostics.*;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
|
||||
@@ -41,7 +40,7 @@ public class DefaultDiagnosticRenderer implements DiagnosticRenderer<Diagnostic>
|
||||
factoryToRenderer.put(EXCEPTION_WHILE_ANALYZING, new DiagnosticWithParameters1Renderer<JetFile, Throwable>("{0}", new Renderer<Throwable>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Throwable e) {
|
||||
public String render(@NotNull Throwable e) {
|
||||
return e.getClass().getSimpleName() + ": " + e.getMessage();
|
||||
}
|
||||
}));
|
||||
@@ -49,10 +48,7 @@ public class DefaultDiagnosticRenderer implements DiagnosticRenderer<Diagnostic>
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Diagnostic diagnostic) {
|
||||
if (diagnostic == null) {
|
||||
throw new IllegalArgumentException("Diagnostic passed to diagnostic renderer cannot be null");
|
||||
}
|
||||
public String render(@NotNull Diagnostic diagnostic) {
|
||||
DiagnosticRenderer renderer = factoryToRenderer.get(diagnostic.getFactory());
|
||||
if (renderer == null) {
|
||||
return diagnostic.getMessage(); // TODO throw IllegalArgumentException instead
|
||||
@@ -72,8 +68,8 @@ public class DefaultDiagnosticRenderer implements DiagnosticRenderer<Diagnostic>
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable DiagnosticWithParameters1<E, A> diagnostic) {
|
||||
return diagnostic == null ? "null" : messageFormat.format(new Object[]{rendererForA.render(diagnostic.getA())});
|
||||
public String render(@NotNull DiagnosticWithParameters1<E, A> diagnostic) {
|
||||
return messageFormat.format(new Object[]{rendererForA.render(diagnostic.getA())});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ public class AmbiguousDescriptorDiagnosticFactory extends DiagnosticFactory1<Psi
|
||||
new Renderer<Collection<? extends ResolvedCall<? extends CallableDescriptor>>>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Collection<? extends ResolvedCall<? extends CallableDescriptor>> argument) {
|
||||
public String render(@NotNull Collection<? extends ResolvedCall<? extends CallableDescriptor>> argument) {
|
||||
StringBuilder stringBuilder = new StringBuilder("\n");
|
||||
for (ResolvedCall<? extends CallableDescriptor> call : argument) {
|
||||
stringBuilder.append(DescriptorRenderer.TEXT.render(call.getResultingDescriptor())).append("\n");
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.jet.lang.diagnostics;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Evgeny Gerashchenko
|
||||
@@ -26,5 +25,5 @@ import org.jetbrains.annotations.Nullable;
|
||||
public interface DiagnosticRenderer<D extends Diagnostic> extends Renderer<D> {
|
||||
@NotNull
|
||||
@Override
|
||||
String render(@Nullable D diagnostic);
|
||||
String render(@NotNull D diagnostic);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ public interface Errors {
|
||||
DiagnosticFactory1<JetFile, Throwable> EXCEPTION_WHILE_ANALYZING = DiagnosticFactory1.create(ERROR, "{0}", new Renderer<Throwable>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Throwable e) {
|
||||
public String render(@NotNull Throwable e) {
|
||||
return e.getClass().getSimpleName() + ": " + e.getMessage();
|
||||
}
|
||||
});
|
||||
@@ -70,8 +70,7 @@ public interface Errors {
|
||||
new Renderer<Collection<JetKeywordToken>>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Collection<JetKeywordToken> element) {
|
||||
assert element != null;
|
||||
public String render(@NotNull Collection<JetKeywordToken> element) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Iterator<JetKeywordToken> iterator = element.iterator(); iterator.hasNext(); ) {
|
||||
JetKeywordToken modifier = iterator.next();
|
||||
@@ -337,8 +336,7 @@ public interface Errors {
|
||||
DiagnosticFactory1<JetExpression, JetExpression> EXPRESSION_EXPECTED = DiagnosticFactory1.create(ERROR, "{0} is not an expression, and only expression are allowed here", new Renderer<JetExpression>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable JetExpression expression) {
|
||||
assert expression != null;
|
||||
public String render(@NotNull JetExpression expression) {
|
||||
String expressionType = expression.toString();
|
||||
return expressionType.substring(0, 1) + expressionType.substring(1).toLowerCase();
|
||||
}
|
||||
@@ -424,8 +422,8 @@ public interface Errors {
|
||||
DiagnosticFactory2<JetSimpleNameExpression, JetTypeConstraint, JetTypeParameterListOwner> NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER = DiagnosticFactory2.create(ERROR, "{0} does not refer to a type parameter of {1}", new Renderer<JetTypeConstraint>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable JetTypeConstraint typeConstraint) {
|
||||
assert typeConstraint != null;
|
||||
public String render(@NotNull JetTypeConstraint typeConstraint) {
|
||||
//noinspection ConstantConditions
|
||||
return typeConstraint.getSubjectTypeParameterName().getReferencedName();
|
||||
}
|
||||
}, NAME);
|
||||
@@ -446,7 +444,7 @@ public interface Errors {
|
||||
DiagnosticFactory3.create(ERROR, "Type parameter {0} of {1} has inconsistent values: {2}", NAME, DescriptorRenderer.TEXT, new Renderer<Collection<JetType>>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Collection<JetType> types) {
|
||||
public String render(@NotNull Collection<JetType> types) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (Iterator<JetType> iterator = types.iterator(); iterator.hasNext(); ) {
|
||||
JetType jetType = iterator.next();
|
||||
@@ -462,7 +460,8 @@ public interface Errors {
|
||||
DiagnosticFactory3<JetBinaryExpression, JetSimpleNameExpression, JetType, JetType> EQUALITY_NOT_APPLICABLE = DiagnosticFactory3.create(ERROR, "Operator {0} cannot be applied to {1} and {2}", new Renderer<JetSimpleNameExpression>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable JetSimpleNameExpression nameExpression) {
|
||||
public String render(@NotNull JetSimpleNameExpression nameExpression) {
|
||||
//noinspection ConstantConditions
|
||||
return nameExpression.getReferencedName();
|
||||
}
|
||||
}, TO_STRING, TO_STRING);
|
||||
@@ -537,8 +536,7 @@ public interface Errors {
|
||||
DiagnosticFactory1<JetElement, Integer> WRONG_NUMBER_OF_TYPE_ARGUMENTS = DiagnosticFactory1.create(ERROR, "{0} type arguments expected", new Renderer<Integer>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Integer argument) {
|
||||
assert argument != null;
|
||||
public String render(@NotNull Integer argument) {
|
||||
return argument == 0 ? "No" : argument.toString();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -16,15 +16,12 @@
|
||||
|
||||
package org.jetbrains.jet.lang.diagnostics;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author abreslav
|
||||
*/
|
||||
public interface Renderer<P> {
|
||||
|
||||
public interface Renderer<O> {
|
||||
@NotNull
|
||||
String render(@Nullable P element);
|
||||
String render(@NotNull O object);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.diagnostics;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.Named;
|
||||
import org.jetbrains.jet.lang.psi.JetClass;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
@@ -32,8 +31,8 @@ public class Renderers {
|
||||
public static final Renderer<Object> TO_STRING = new Renderer<Object>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Object element) {
|
||||
return element == null ? "null" : element.toString();
|
||||
public String render(@NotNull Object element) {
|
||||
return element.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -45,8 +44,7 @@ public class Renderers {
|
||||
public static final Renderer<Object> NAME = new Renderer<Object>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable Object element) {
|
||||
if (element == null) return "null";
|
||||
public String render(@NotNull Object element) {
|
||||
if (element instanceof Named) {
|
||||
return ((Named) element).getName();
|
||||
}
|
||||
@@ -57,8 +55,7 @@ public class Renderers {
|
||||
public static final Renderer<PsiElement> ELEMENT_TEXT = new Renderer<PsiElement>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable PsiElement element) {
|
||||
if (element == null) return "null";
|
||||
public String render(@NotNull PsiElement element) {
|
||||
return element.getText();
|
||||
}
|
||||
};
|
||||
@@ -66,8 +63,7 @@ public class Renderers {
|
||||
public static final Renderer<JetClassOrObject> RENDER_CLASS_OR_OBJECT = new Renderer<JetClassOrObject>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable JetClassOrObject classOrObject) {
|
||||
assert classOrObject != null;
|
||||
public String render(@NotNull JetClassOrObject classOrObject) {
|
||||
String name = classOrObject.getName() != null ? " '" + classOrObject.getName() + "'" : "";
|
||||
if (classOrObject instanceof JetClass) {
|
||||
return "Class" + name;
|
||||
@@ -80,8 +76,7 @@ public class Renderers {
|
||||
public static final Renderer<JetType> RENDER_TYPE = new Renderer<JetType>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@Nullable JetType type) {
|
||||
assert type != null;
|
||||
public String render(@NotNull JetType type) {
|
||||
return DescriptorRenderer.TEXT.renderType(type);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -209,8 +209,7 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(DeclarationDescriptor declarationDescriptor) {
|
||||
if (declarationDescriptor == null) return lt() + "null>";
|
||||
public String render(@NotNull DeclarationDescriptor declarationDescriptor) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
declarationDescriptor.accept(rootVisitor, stringBuilder);
|
||||
if (shouldRenderDefinedIn()) {
|
||||
|
||||
@@ -23,6 +23,8 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.CompileCompilerDependenciesTest;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
@@ -185,7 +187,7 @@ public abstract class ExpectedResolveData {
|
||||
assertTrue(
|
||||
"Must have been unresolved: " +
|
||||
renderReferenceInContext(referenceExpression) +
|
||||
" but was resolved to " + DescriptorRenderer.TEXT.render(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
" but was resolved to " + renderNullableDescriptor(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
unresolvedReferences.contains(referenceExpression));
|
||||
continue;
|
||||
}
|
||||
@@ -193,7 +195,7 @@ public abstract class ExpectedResolveData {
|
||||
assertTrue(
|
||||
"Must have been resolved to multiple descriptors: " +
|
||||
renderReferenceInContext(referenceExpression) +
|
||||
" but was resolved to " + DescriptorRenderer.TEXT.render(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
" but was resolved to " + renderNullableDescriptor(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, referenceExpression) != null);
|
||||
continue;
|
||||
}
|
||||
@@ -201,7 +203,7 @@ public abstract class ExpectedResolveData {
|
||||
assertTrue(
|
||||
"Must have been resolved to null: " +
|
||||
renderReferenceInContext(referenceExpression) +
|
||||
" but was resolved to " + DescriptorRenderer.TEXT.render(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
" but was resolved to " + renderNullableDescriptor(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
bindingContext.get(REFERENCE_TARGET, referenceExpression) == null
|
||||
);
|
||||
continue;
|
||||
@@ -210,7 +212,7 @@ public abstract class ExpectedResolveData {
|
||||
assertTrue(
|
||||
"Must have been resolved to error: " +
|
||||
renderReferenceInContext(referenceExpression) +
|
||||
" but was resolved to " + DescriptorRenderer.TEXT.render(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
" but was resolved to " + renderNullableDescriptor(bindingContext.get(REFERENCE_TARGET, referenceExpression)),
|
||||
ErrorUtils.isError(bindingContext.get(REFERENCE_TARGET, referenceExpression))
|
||||
);
|
||||
continue;
|
||||
@@ -355,4 +357,9 @@ public abstract class ExpectedResolveData {
|
||||
T result = (T) element;
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String renderNullableDescriptor(@Nullable DeclarationDescriptor d) {
|
||||
return d == null ? "<null>" : DescriptorRenderer.TEXT.render(d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.intellij.util.PsiNavigateUtil;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.Modality;
|
||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
||||
import org.jetbrains.jet.lang.psi.JetProperty;
|
||||
@@ -132,7 +133,10 @@ public class JetLineMarkerProvider implements LineMarkerProvider {
|
||||
public String getElementText(PsiElement element) {
|
||||
if (element instanceof JetNamedFunction) {
|
||||
JetNamedFunction function = (JetNamedFunction) element;
|
||||
return DescriptorRenderer.HTML.render(bindingContext.get(BindingContext.FUNCTION, function));
|
||||
SimpleFunctionDescriptor fd =
|
||||
bindingContext.get(BindingContext.FUNCTION, function);
|
||||
assert fd != null;
|
||||
return DescriptorRenderer.HTML.render(fd);
|
||||
}
|
||||
return super.getElementText(element);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ class DecompiledDataFactory {
|
||||
return r;
|
||||
}
|
||||
|
||||
private void appendDescriptor(DeclarationDescriptor descriptor, String indent) {
|
||||
private void appendDescriptor(@NotNull DeclarationDescriptor descriptor, String indent) {
|
||||
int startOffset = myBuilder.length();
|
||||
String renderedDescriptor = DescriptorRenderer.COMPACT.render(descriptor);
|
||||
renderedDescriptor = renderedDescriptor.replace("= ...", "= " + DECOMPILED_COMMENT);
|
||||
|
||||
Reference in New Issue
Block a user