title: Vb.Net MustOverride vs New vs MustInherit
body: <p>I am trying to implement a codefix using some private code from Rolyn</p>
  
  <pre><code>Partial Public Class SynatxEditorFixAllProvider
         Inherits FixAllProvider
         Public Overrides Async Function GetFixAsync(ByVal fixAllContext As FixAllContext) As Task(Of CodeAction)
              Dim documentsAndDiagnosticsToFixMap As ImmutableDictionary(Of Document, ImmutableArray(Of Diagnostic)) = Await fixAllContext.GetDocumentDiagnosticsToFixAsync().ConfigureAwait(False)
              Return Await GetFixAsync1(documentsAndDiagnosticsToFixMap, fixAllContext, fixAllContext.CancellationToken).ConfigureAwait(False)
         End Function
  
  
          Async Function GetFixAsync1(ByVal documentsAndDiagnosticsToFixMap As ImmutableDictionary(Of Document, ImmutableArray(Of Diagnostic)), ByVal _FixAllContext As FixAllContext, ByVal cancellationToken As CancellationToken) As Task(Of CodeAction)
          ' Process all documents in parallel.
          Dim updatedDocumentTasks As IEnumerable(Of Task(Of Document)) = documentsAndDiagnosticsToFixMap.Select(Function(kvp) FixDocumentAsync(kvp.Key, kvp.Value, cancellationToken))
  
          Await Task.WhenAll(updatedDocumentTasks).ConfigureAwait(False)
  
          Dim currentSolution As Solution = _FixAllContext.Solution
          For Each Task As Task(Of Document) In updatedDocumentTasks
              ' 'await' the tasks so that if any completed in a canceled manner then we'll
              ' throw the right exception here.  Calling .Result on the tasks might end up
              ' with AggregateExceptions being thrown instead.
              Dim updatedDocument As Document = Await Task.ConfigureAwait(False)
              currentSolution = currentSolution.WithDocumentSyntaxRoot(updatedDocument.Id, Await updatedDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(False))
          Next Task
  
          Dim title As String = GetFixAllTitle(_FixAllContext)
          Return New SolutionChangeAction(title, Function(underscore) Task.FromResult(currentSolution))
  End Function
  </code></pre>
  
  <p>With just this code I get an error and it wants the code below</p>
  
  <pre><code>Partial Public MustInherit Class SynatxEditorFixAllProvider
      Protected MustOverride Function FixAllAsync(ByVal document As Document, ByVal diagnostics As ImmutableArray(Of Diagnostic), ByVal editor As SyntaxEditor, ByVal cancellationToken As CancellationToken) As Task
  End Class
  </code></pre>
  
  <p>But if I add the code above the following line gets an error, </p>
  
  <blockquote>
    <p>"New can not be used on a class that is declared MustInherit"</p>
  </blockquote>
  
  <pre><code>Public Shared ReadOnly Property Instance() As FixAllProvider = New SynatxEditorFixAllProvider()
  </code></pre>