diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultDocumentClassifierPass.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultDocumentClassifierPass.cs index 7f9b796e53..303a4411bf 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultDocumentClassifierPass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultDocumentClassifierPass.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Razor.Language { internal class DefaultDocumentClassifierPass : DocumentClassifierPassBase { - public override int Order => RazorIRPass.DefaultFeatureOrder; + public override int Order => DefaultFeatureOrder; protected override string DocumentKind => "default"; diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultInstrumentationPass.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultInstrumentationPass.cs index 03c4898cf7..730075b312 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultInstrumentationPass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultInstrumentationPass.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language { public class DefaultInstrumentationPass : RazorIRPassBase, IRazorIROptimizationPass { - public override int Order => RazorIRPass.DefaultFeatureOrder; + public override int Order => DefaultFeatureOrder; public override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIRNode irDocument) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/DirectiveRemovalIROptimizationPass.cs b/src/Microsoft.AspNetCore.Razor.Language/DirectiveRemovalIROptimizationPass.cs index ec9d2b2a5b..b936a8414b 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DirectiveRemovalIROptimizationPass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DirectiveRemovalIROptimizationPass.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Razor.Language { internal class DirectiveRemovalIROptimizationPass : RazorIRPassBase, IRazorIROptimizationPass { - public override int Order => RazorIRPass.DefaultFeatureOrder + 50; + public override int Order => DefaultFeatureOrder + 50; public override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIRNode irDocument) { diff --git a/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs b/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs index 7620df1e38..a63996bd3f 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs @@ -131,7 +131,18 @@ namespace Microsoft.AspNetCore.Razor.Language public override void VisitUsingStatement(UsingStatementIRNode node) { - _namespace.AddAfter(node); + var children = _namespace.Current.Children; + var i = children.Count - 1; + for (; i >= 0; i--) + { + var child = children[i]; + if (child is UsingStatementIRNode) + { + break; + } + } + + _namespace.Insert(i + 1, node); } public override void VisitDeclareTagHelperFields(DeclareTagHelperFieldsIRNode node) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddPreallocatedTagHelperHtmlAttributeIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddPreallocatedTagHelperHtmlAttributeIRNode.cs index 44f643d4e0..ff16865838 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddPreallocatedTagHelperHtmlAttributeIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddPreallocatedTagHelperHtmlAttributeIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.CodeGeneration; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class AddPreallocatedTagHelperHtmlAttributeIRNode : ExtensionIRNode + public sealed class AddPreallocatedTagHelperHtmlAttributeIRNode : ExtensionIRNode { public override IList Children { get; } = EmptyArray; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddTagHelperHtmlAttributeIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddTagHelperHtmlAttributeIRNode.cs index 6f206020ca..594378a6a5 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddTagHelperHtmlAttributeIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/AddTagHelperHtmlAttributeIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class AddTagHelperHtmlAttributeIRNode : RazorIRNode + public sealed class AddTagHelperHtmlAttributeIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpAttributeValueIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpAttributeValueIRNode.cs index fedafd82fe..4512e75248 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpAttributeValueIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpAttributeValueIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class CSharpAttributeValueIRNode : RazorIRNode + public sealed class CSharpAttributeValueIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpExpressionIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpExpressionIRNode.cs index f9197721bb..e8f41f8560 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpExpressionIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpExpressionIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class CSharpExpressionIRNode : RazorIRNode + public sealed class CSharpExpressionIRNode : RazorIRNode { private ItemCollection _annotations; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpStatementIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpStatementIRNode.cs index 5c2a30f369..765ea3dcaf 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpStatementIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CSharpStatementIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class CSharpStatementIRNode : RazorIRNode + public sealed class CSharpStatementIRNode : RazorIRNode { private ItemCollection _annotations; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ChecksumIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ChecksumIRNode.cs index c130eb0884..4622b8e074 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ChecksumIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ChecksumIRNode.cs @@ -7,7 +7,7 @@ using System.Text; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class ChecksumIRNode : RazorIRNode + public sealed class ChecksumIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CreateTagHelperIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CreateTagHelperIRNode.cs index 647454a660..707b876c3a 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CreateTagHelperIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/CreateTagHelperIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class CreateTagHelperIRNode : RazorIRNode + public sealed class CreateTagHelperIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperAttributeIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperAttributeIRNode.cs index 0727183265..54a7ef816c 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperAttributeIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperAttributeIRNode.cs @@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class DeclarePreallocatedTagHelperAttributeIRNode : ExtensionIRNode + public sealed class DeclarePreallocatedTagHelperAttributeIRNode : ExtensionIRNode { public override IList Children { get; } = EmptyArray; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperHtmlAttributeIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperHtmlAttributeIRNode.cs index 183198c352..0d9ec63849 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperHtmlAttributeIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclarePreallocatedTagHelperHtmlAttributeIRNode.cs @@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class DeclarePreallocatedTagHelperHtmlAttributeIRNode : ExtensionIRNode + public sealed class DeclarePreallocatedTagHelperHtmlAttributeIRNode : ExtensionIRNode { public override IList Children { get; } = EmptyArray; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclareTagHelperFieldsIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclareTagHelperFieldsIRNode.cs index 2753b2df45..6cf1b5f609 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclareTagHelperFieldsIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DeclareTagHelperFieldsIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class DeclareTagHelperFieldsIRNode : RazorIRNode + public sealed class DeclareTagHelperFieldsIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DesignTimeDirectiveIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DesignTimeDirectiveIRNode.cs index 8f2a3c19f5..46c8fec9be 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DesignTimeDirectiveIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DesignTimeDirectiveIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.CodeGeneration; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - internal class DesignTimeDirectiveIRNode : ExtensionIRNode + internal sealed class DesignTimeDirectiveIRNode : ExtensionIRNode { public override IList Children { get; } = new List(); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveIRNode.cs index 2c540c82a7..42033d772e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class DirectiveIRNode : RazorIRNode + public sealed class DirectiveIRNode : RazorIRNode { private ItemCollection _annotations; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveTokenIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveTokenIRNode.cs index a329569e8c..9bfe6c3152 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveTokenIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/DirectiveTokenIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class DirectiveTokenIRNode : RazorIRNode + public sealed class DirectiveTokenIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ExecuteTagHelpersIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ExecuteTagHelpersIRNode.cs index 537816efc6..352cc725e8 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ExecuteTagHelpersIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/ExecuteTagHelpersIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class ExecuteTagHelpersIRNode : RazorIRNode + public sealed class ExecuteTagHelpersIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeIRNode.cs index 161e03da31..f71bfae016 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class HtmlAttributeIRNode : RazorIRNode + public sealed class HtmlAttributeIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeValueIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeValueIRNode.cs index b50ba275c2..bd19cb0894 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeValueIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/HtmlAttributeValueIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class HtmlAttributeValueIRNode : RazorIRNode + public sealed class HtmlAttributeValueIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor`1.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor.cs similarity index 100% rename from src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor`1.cs rename to src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor.cs diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor`2.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor`2.cs deleted file mode 100644 index f49e30589a..0000000000 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/IExtensionIRNodeVisitor`2.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Razor.Language.Intermediate -{ - public interface IExtensionIRNodeVisitor where TNode : ExtensionIRNode - { - TResult VisitExtension(TNode node); - } -} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/NamespaceDeclarationIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/NamespaceDeclarationIRNode.cs index 9f7945d151..ce61913d58 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/NamespaceDeclarationIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/NamespaceDeclarationIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class NamespaceDeclarationIRNode : RazorIRNode + public sealed class NamespaceDeclarationIRNode : RazorIRNode { private ItemCollection _annotations; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/RazorIRBuilderExtensions.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/RazorIRBuilderExtensions.cs deleted file mode 100644 index 502c9f5542..0000000000 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/RazorIRBuilderExtensions.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Razor.Language.Intermediate -{ - public static class RazorIRBuilderExtensions - { - public static void AddAfter(this RazorIRBuilder builder, RazorIRNode node) - where TNode : RazorIRNode - { - var children = builder.Current.Children; - var i = children.Count - 1; - for (; i >= 0; i--) - { - var child = children[i]; - if (child is TNode || child.GetType() == node.GetType()) - { - break; - } - } - - builder.Insert(i + 1, node); - } - } -} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetPreallocatedTagHelperPropertyIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetPreallocatedTagHelperPropertyIRNode.cs index c07a5d7a0d..fb29f661ed 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetPreallocatedTagHelperPropertyIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetPreallocatedTagHelperPropertyIRNode.cs @@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class SetPreallocatedTagHelperPropertyIRNode : ExtensionIRNode + public sealed class SetPreallocatedTagHelperPropertyIRNode : ExtensionIRNode { public override IList Children { get; } = EmptyArray; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetTagHelperPropertyIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetTagHelperPropertyIRNode.cs index 2d5881c421..750860f7a6 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetTagHelperPropertyIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/SetTagHelperPropertyIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.Legacy; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class SetTagHelperPropertyIRNode : RazorIRNode + public sealed class SetTagHelperPropertyIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TagHelperIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TagHelperIRNode.cs index 6d00bdc0f3..894534ac6b 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TagHelperIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TagHelperIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class TagHelperIRNode : RazorIRNode + public sealed class TagHelperIRNode : RazorIRNode { private ItemCollection _annotations; diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TemplateIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TemplateIRNode.cs index dd294f1fbe..52bbbbfb60 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TemplateIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/TemplateIRNode.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Razor.Language.CodeGeneration; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class TemplateIRNode : ExtensionIRNode + public sealed class TemplateIRNode : ExtensionIRNode { public override IList Children { get; } = new List(); diff --git a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/UsingStatementIRNode.cs b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/UsingStatementIRNode.cs index dbc2dc5cca..85bcc51830 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Intermediate/UsingStatementIRNode.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Intermediate/UsingStatementIRNode.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace Microsoft.AspNetCore.Razor.Language.Intermediate { - public class UsingStatementIRNode : RazorIRNode + public sealed class UsingStatementIRNode : RazorIRNode { public override ItemCollection Annotations => ReadonlyItemCollection.Empty; diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorIRPass.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorIRPass.cs deleted file mode 100644 index 63f75d07ff..0000000000 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorIRPass.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -namespace Microsoft.AspNetCore.Razor.Language -{ - public static class RazorIRPass - { - /// - /// The default implementation of the s that run in a - /// will use this value for its Order property. - /// - /// - /// This value is chosen in such a way that the default implementation runs after the other - /// custom implementations for a particular . - /// - public static readonly int DefaultFeatureOrder = 1000; - } -} diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorIRPassBase.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorIRPassBase.cs index 70d287b489..0957fc1471 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorIRPassBase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorIRPassBase.cs @@ -8,6 +8,16 @@ namespace Microsoft.AspNetCore.Razor.Language { public abstract class RazorIRPassBase { + /// + /// The default implementation of the s that run in a + /// will use this value for its Order property. + /// + /// + /// This value is chosen in such a way that the default implementation runs after the other + /// custom implementations for a particular . + /// + public static readonly int DefaultFeatureOrder = 1000; + private RazorEngine _engine; public RazorEngine Engine diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorPreallocatedTagHelperAttributeOptimizationPass.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorPreallocatedTagHelperAttributeOptimizationPass.cs index c1b5528b56..18cb8ddae6 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorPreallocatedTagHelperAttributeOptimizationPass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorPreallocatedTagHelperAttributeOptimizationPass.cs @@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Razor.Language { internal class RazorPreallocatedTagHelperAttributeOptimizationPass : RazorIRPassBase, IRazorIROptimizationPass { - public override int Order => RazorIRPass.DefaultFeatureOrder; + public override int Order => DefaultFeatureOrder; public override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIRNode irDocument) { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DocumentClassifierPassBaseTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DocumentClassifierPassBaseTest.cs index 92305bad3d..bfc18d9460 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/DocumentClassifierPassBaseTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DocumentClassifierPassBaseTest.cs @@ -296,7 +296,7 @@ namespace Microsoft.AspNetCore.Razor.Language private class TestDocumentClassifierPass : DocumentClassifierPassBase { - public override int Order => RazorIRPass.DefaultFeatureOrder; + public override int Order => RazorIRPassBase.DefaultFeatureOrder; public bool ShouldMatch { get; set; } = true; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/RazorIRBuilderExtensionsTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/RazorIRBuilderExtensionsTest.cs deleted file mode 100644 index 2e5b2ef4f5..0000000000 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Intermediate/RazorIRBuilderExtensionsTest.cs +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using Microsoft.AspNetCore.Razor.Language.Legacy; -using Microsoft.AspNetCore.Testing; -using Xunit; - -namespace Microsoft.AspNetCore.Razor.Language.Intermediate -{ - public class RazorIRBuilderExtensionsTest - { - [Fact] - public void AddAfter_EmptyList() - { - // Arrange - var builder = RazorIRBuilder.Document(); - - var node = new BasicIRNode3(); - - // Act - builder.AddAfter(node); - - // Assert - Assert.Collection(builder.Current.Children, n => Assert.Same(node, n)); - } - - [Fact] - public void AddAfter_AfterMatch() - { - // Arrange - var builder = RazorIRBuilder.Document(); - builder.Add(new BasicIRNode()); - builder.Add(new BasicIRNode()); - builder.Add(new BasicIRNode3()); - - var node = new BasicIRNode3(); - - // Act - builder.AddAfter(node); - - // Assert - Assert.Collection( - builder.Current.Children, - n => Assert.IsType(n), - n => Assert.IsType(n), - n => Assert.IsType(n), - n => Assert.Same(node, n)); - } - - [Fact] - public void AddAfter_AfterMatch_Noncontinuous() - { - // Arrange - var builder = RazorIRBuilder.Document(); - builder.Add(new BasicIRNode()); - builder.Add(new BasicIRNode2()); - builder.Add(new BasicIRNode()); - - var node = new BasicIRNode3(); - - // Act - builder.AddAfter(node); - - // Assert - Assert.Collection( - builder.Current.Children, - n => Assert.IsType(n), - n => Assert.IsType(n), - n => Assert.IsType(n), - n => Assert.Same(node, n)); - } - - private class BasicIRNode : RazorIRNode - { - public override ItemCollection Annotations { get; } = new DefaultItemCollection(); - - public override IList Children { get; } = new List(); - - public override RazorIRNode Parent { get; set; } - - public override SourceSpan? Source { get; set; } - - public override void Accept(RazorIRNodeVisitor visitor) - { - throw new NotImplementedException(); - } - } - - private class BasicIRNode2 : RazorIRNode - { - public override ItemCollection Annotations { get; } = new DefaultItemCollection(); - - public override IList Children { get; } = new List(); - - public override RazorIRNode Parent { get; set; } - - public override SourceSpan? Source { get; set; } - - public override void Accept(RazorIRNodeVisitor visitor) - { - throw new NotImplementedException(); - } - } - - private class BasicIRNode3 : RazorIRNode - { - public override ItemCollection Annotations { get; } = new DefaultItemCollection(); - - public override IList Children { get; } = new List(); - - public override RazorIRNode Parent { get; set; } - - public override SourceSpan? Source { get; set; } - - public override void Accept(RazorIRNodeVisitor visitor) - { - throw new NotImplementedException(); - } - } - } -}