From 7454c53047afe08836c0f593b0640e566ec9a10a Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Wed, 5 Jul 2017 14:33:06 -0700 Subject: [PATCH] Rely on Razors MalformedDirective identification for @page. aspnet/Razor#1448 --- .../Infrastructure/PageDirectiveFeature.cs | 27 ++++--------------- 1 file changed, 5 insertions(+), 22 deletions(-) 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; - } - } - } } }