diff --git a/src/Microsoft.AspNetCore.Mvc.RazorPages/Infrastructure/PageDirectiveFeature.cs b/src/Microsoft.AspNetCore.Mvc.RazorPages/Infrastructure/PageDirectiveFeature.cs index 5e963893c3..e9f49622ce 100644 --- a/src/Microsoft.AspNetCore.Mvc.RazorPages/Infrastructure/PageDirectiveFeature.cs +++ b/src/Microsoft.AspNetCore.Mvc.RazorPages/Infrastructure/PageDirectiveFeature.cs @@ -50,20 +50,16 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure var documentIRNode = codeDocument.GetDocumentIntermediateNode(); if (PageDirective.TryGetPageDirective(documentIRNode, out var pageDirective)) { + if (pageDirective.DirectiveNode is MalformedDirectiveIntermediateNode malformedNode) + { + logger.MalformedPageDirective(sourceDocument.FilePath, malformedNode.Diagnostics); + } + template = pageDirective.RouteTemplate; return true; } template = null; - - var visitor = new Visitor(); - visitor.Visit(documentIRNode); - if (visitor.MalformedPageDirective != null) - { - logger.MalformedPageDirective(sourceDocument.FilePath, visitor.MalformedPageDirective.Diagnostics); - return true; - } - return false; } @@ -76,18 +72,5 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure options.ParseOnlyLeadingDirectives = true; } } - - private class Visitor : IntermediateNodeWalker - { - public MalformedDirectiveIntermediateNode MalformedPageDirective { get; private set; } - - public override void VisitMalformedDirective(MalformedDirectiveIntermediateNode node) - { - if (node.Descriptor == PageDirective.Directive) - { - MalformedPageDirective = node; - } - } - } } }