Open
Description
Repro steps
- Create new fsharp project
- Add "MarkdigExtensions.SyntaxHighlighting" package
- Add the following code
open Markdig.Renderers
open Markdig.Renderers.Html
open Markdig.Syntax
open MarkdigExtensions.SyntaxHighlighting
type SyntaxHighlightingRendererWrapper() =
inherit CodeBlockRenderer() with
let highlightingRenderer = HighlightedCodeBlockRenderer()
override _.Write(renderer: HtmlRenderer, codeBlock: CodeBlock): unit =
highlightingRenderer.Write(renderer, codeBlock)
ZIP archive of the reproduction:
Repro_fsharp_accessibility.zip
Expected behavior
No compilation errors
Actual behavior
Error
Program.fs(12, 13): [FS0629] Method 'Write' is not accessible from this code location
Known workarounds
Extract Write method into a function:
open Markdig.Renderers
open Markdig.Renderers.Html
open Markdig.Syntax
open MarkdigExtensions.SyntaxHighlighting
let render (highlightingRenderer: HighlightedCodeBlockRenderer) (renderer: HtmlRenderer) (codeBlock: CodeBlock) =
highlightingRenderer.Write(renderer, codeBlock)
type SyntaxHighlightingRendererWrapper() =
inherit CodeBlockRenderer() with
let highlightingRenderer = HighlightedCodeBlockRenderer()
override _.Write(renderer: HtmlRenderer, codeBlock: CodeBlock): unit =
render highlightingRenderer renderer codeBlock
Related information
- Win11
- .NET 6 (SDK version=6.0.100-rc.2.21505.57)
- Building via dotnet CLI (dotnet build)
I can only guess that this has something to do with overload resolution.
Type HighlightedCodeBlockRenderer
inherits from MarkdownObjectRenderer
that has a similar protected method:
protected abstract void Write(TRenderer renderer, TObject obj);
// TRenderer resolves into HtmlRenderer
// TObject resolves into CodeBlock
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
New