diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIRLoweringPhase.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIRLoweringPhase.cs index ea5f3dd5a0..64d099a08f 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIRLoweringPhase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorIRLoweringPhase.cs @@ -17,6 +17,9 @@ namespace Microsoft.AspNetCore.Razor.Language var syntaxTree = codeDocument.GetSyntaxTree(); ThrowForMissingDependency(syntaxTree); + // This might not have been set if there are no tag helpers. + var tagHelperContext = codeDocument.GetTagHelperContext(); + var builder = RazorIRBuilder.Document(); var document = (DocumentIRNode)builder.Current; @@ -46,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language } } - var tagHelperPrefix = codeDocument.GetTagHelperPrefix(); + var tagHelperPrefix = tagHelperContext?.Prefix; var visitor = new MainSourceVisitor(document, builder, namespaces, tagHelperPrefix) { FileName = syntaxTree.Source.FileName, diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorCodeDocumentExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorCodeDocumentExtensions.cs index fae36ce80d..c870869f3e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorCodeDocumentExtensions.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorCodeDocumentExtensions.cs @@ -31,26 +31,6 @@ namespace Microsoft.AspNetCore.Razor.Language document.Items[typeof(TagHelperDocumentContext)] = context; } - public static string GetTagHelperPrefix(this RazorCodeDocument document) - { - if (document == null) - { - throw new ArgumentNullException(nameof(document)); - } - - return document.Items[TagHelperPrefixKey] as string; - } - - public static void SetTagHelperPrefix(this RazorCodeDocument document, string tagHelperPrefix) - { - if (document == null) - { - throw new ArgumentNullException(nameof(document)); - } - - document.Items[TagHelperPrefixKey] = tagHelperPrefix; - } - public static RazorSyntaxTree GetSyntaxTree(this RazorCodeDocument document) { if (document == null) diff --git a/src/Microsoft.AspNetCore.Razor.Language/TagHelperBinderSyntaxTreePass.cs b/src/Microsoft.AspNetCore.Razor.Language/TagHelperBinderSyntaxTreePass.cs index 9fc97a3df6..7066a3adce 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/TagHelperBinderSyntaxTreePass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/TagHelperBinderSyntaxTreePass.cs @@ -106,7 +106,6 @@ namespace Microsoft.AspNetCore.Razor.Language if (!string.IsNullOrEmpty(prefix)) { - codeDocument.SetTagHelperPrefix(prefixDirective.DirectiveText); return prefixDirective.DirectiveText; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/CodeGenerationIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/CodeGenerationIntegrationTest.cs index b8997b06d3..7f1491d955 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/CodeGenerationIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/IntegrationTests/CodeGenerationIntegrationTest.cs @@ -691,7 +691,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests public void BasicTagHelpers_Prefixed_Runtime() { // Arrange, Act & Assert - RunRuntimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors, tagHelperPrefix: "THS"); + RunRuntimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors); } [Fact] @@ -1535,7 +1535,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests public void BasicTagHelpers_Prefixed_DesignTime() { // Arrange, Act & Assert - RunDesignTimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors, tagHelperPrefix: "THS"); + RunDesignTimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors); } [Fact] @@ -1630,20 +1630,16 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests } #endregion - private void RunRuntimeTagHelpersTest(IEnumerable descriptors, string tagHelperPrefix = null) + private void RunRuntimeTagHelpersTest(IEnumerable descriptors) { // Arrange - var engine = RazorEngine.Create( - builder => - { - builder.Features.Add(new ApiSetsIRTestAdapter()); - builder.AddTagHelpers(descriptors); - }); - var document = CreateCodeDocument(); - if (tagHelperPrefix != null) + var engine = RazorEngine.Create(builder => { - document.SetTagHelperPrefix(tagHelperPrefix); - } + builder.Features.Add(new ApiSetsIRTestAdapter()); + builder.AddTagHelpers(descriptors); + }); + + var document = CreateCodeDocument(); // Act engine.Process(document); @@ -1653,20 +1649,16 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests AssertCSharpDocumentMatchesBaseline(document.GetCSharpDocument()); } - private void RunDesignTimeTagHelpersTest(IEnumerable descriptors, string tagHelperPrefix = null) + private void RunDesignTimeTagHelpersTest(IEnumerable descriptors) { // Arrange - var engine = RazorEngine.CreateDesignTime( - builder => - { - builder.Features.Add(new ApiSetsIRTestAdapter()); - builder.AddTagHelpers(descriptors); - }); - var document = CreateCodeDocument(); - if (tagHelperPrefix != null) + var engine = RazorEngine.CreateDesignTime(builder => { - document.SetTagHelperPrefix(tagHelperPrefix); - } + builder.Features.Add(new ApiSetsIRTestAdapter()); + builder.AddTagHelpers(descriptors); + }); + + var document = CreateCodeDocument(); // Act engine.Process(document); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TagHelperBinderSyntaxTreePassTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/TagHelperBinderSyntaxTreePassTest.cs index 0be0a62438..0d4b1b2cd8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/TagHelperBinderSyntaxTreePassTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TagHelperBinderSyntaxTreePassTest.cs @@ -877,7 +877,7 @@ namespace Microsoft.AspNetCore.Razor.Language [Theory] [MemberData(nameof(ProcessTagHelperPrefixData))] - public void ProcessTagHelperPrefix_ParsesPrefixFromDirectives_SetsOnCodeDocument( + public void ProcessTagHelperPrefix_ParsesPrefixFromDirectives( object directiveDescriptors, string expectedPrefix) { @@ -892,7 +892,6 @@ namespace Microsoft.AspNetCore.Razor.Language // Assert Assert.Empty(errorSink.Errors); Assert.Equal(expectedPrefix, prefix); - Assert.Equal(expectedPrefix, document.GetTagHelperPrefix()); } public static TheoryData ProcessDirectivesData diff --git a/test/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs b/test/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs index 35b24216af..e9e0349f43 100644 --- a/test/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs +++ b/test/Microsoft.AspNetCore.Razor.Performance/CodeGenerationBenchmark.cs @@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Razor.Performance { public CodeGenerationBenchmark() { - var current = new DirectoryInfo(Environment.CurrentDirectory); + var current = new DirectoryInfo(AppContext.BaseDirectory); while (current != null && !File.Exists(Path.Combine(current.FullName, "MSN.cshtml"))) { current = current.Parent;