Update annotation rendering in diagnostics
Disable annotation rendering in default type and descriptor renderers. Preserve annotations in Android and Serialization plugins. Update error texts in ide tests. Nullability annotations in Java descriptors are rendered with context-dependent renderer. #KT-20258 Fixed
This commit is contained in:
@@ -116,7 +116,7 @@ public class IdeErrorMessages {
|
||||
"<tr><td>Parameter:</td><td>{1}</td></tr></table></html>", HTML_RENDER_TYPE, HTML_RENDER_TYPE);
|
||||
|
||||
MAP.put(RETURN_TYPE_MISMATCH_ON_OVERRIDE, "<html>Return type is ''{0}'', which is not a subtype of overridden<br/>" +
|
||||
"{1}</html>", HTML_RENDER_RETURN_TYPE, HTML);
|
||||
"{1}</html>", HTML_RENDER_RETURN_TYPE, HTML_WITH_ANNOTATIONS_WHITELIST);
|
||||
MAP.put(RETURN_TYPE_MISMATCH_ON_INHERITANCE, "<html>Return types of inherited members are incompatible:<br/>{0},<br/>{1}</html>",
|
||||
HTML, HTML);
|
||||
|
||||
|
||||
+1
-1
@@ -36,6 +36,6 @@ object IdeMultiplatformDiagnosticRenderingMode : MultiplatformDiagnosticRenderin
|
||||
}
|
||||
|
||||
override fun renderDescriptor(sb: StringBuilder, descriptor: DeclarationDescriptor, context: RenderingContext, indent: String) {
|
||||
sb.append(IdeRenderers.HTML.render(descriptor, context))
|
||||
sb.append(IdeRenderers.HTML_WITH_ANNOTATIONS.render(descriptor, context))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.*
|
||||
import org.jetbrains.kotlin.idea.highlighter.renderersUtil.renderResolvedCall
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
|
||||
import org.jetbrains.kotlin.resolve.MemberComparator
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.InferenceErrorData
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
@@ -37,7 +38,10 @@ object IdeRenderers {
|
||||
}
|
||||
|
||||
@JvmField
|
||||
val HTML_RENDER_TYPE = SmartTypeRenderer(DescriptorRenderer.HTML.withOptions { parameterNamesInFunctionalTypes = false })
|
||||
val HTML_RENDER_TYPE = SmartTypeRenderer(DescriptorRenderer.HTML.withOptions {
|
||||
parameterNamesInFunctionalTypes = false
|
||||
modifiers = DescriptorRendererModifier.ALL_EXCEPT_ANNOTATIONS
|
||||
})
|
||||
|
||||
@JvmField
|
||||
val HTML_NONE_APPLICABLE_CALLS = Renderer { calls: Collection<ResolvedCall<*>> ->
|
||||
@@ -91,5 +95,11 @@ object IdeRenderers {
|
||||
}
|
||||
|
||||
@JvmField
|
||||
val HTML = DescriptorRenderer.HTML.asRenderer()
|
||||
val HTML = DescriptorRenderer.HTML.withOptions {
|
||||
modifiers = DescriptorRendererModifier.ALL_EXCEPT_ANNOTATIONS
|
||||
}.asRenderer()
|
||||
@JvmField val HTML_WITH_ANNOTATIONS = DescriptorRenderer.HTML.withOptions {
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
}.asRenderer()
|
||||
@JvmField val HTML_WITH_ANNOTATIONS_WHITELIST = DescriptorRenderer.HTML.withAnnotationsWhitelist()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user