();
+|
+
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.codegen.cs b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.codegen.cs
new file mode 100644
index 0000000000..575595427d
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.codegen.cs
@@ -0,0 +1,30 @@
+//
+#pragma warning disable 1591
+namespace Test
+{
+ #line hidden
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Threading.Tasks;
+ using Microsoft.AspNetCore.Components;
+ public class TestComponent : Microsoft.AspNetCore.Components.ComponentBase
+ {
+ #pragma warning disable 1998
+ protected override void BuildRenderTree(Microsoft.AspNetCore.Components.RenderTree.RenderTreeBuilder builder)
+ {
+ builder.AddMarkupContent(0, "");
+ }
+ #pragma warning restore 1998
+#nullable restore
+#line 2 "x:\dir\subdir\Test\TestComponent.cshtml"
+
+ void OnClick(UIMouseEventArgs e) {
+ }
+
+#line default
+#line hidden
+#nullable disable
+ }
+}
+#pragma warning restore 1591
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.ir.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.ir.txt
new file mode 100644
index 0000000000..33c36944db
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.ir.txt
@@ -0,0 +1,12 @@
+Document -
+ NamespaceDeclaration - - Test
+ UsingDirective - (3:1,1 [14] ) - System
+ UsingDirective - (18:2,1 [34] ) - System.Collections.Generic
+ UsingDirective - (53:3,1 [19] ) - System.Linq
+ UsingDirective - (73:4,1 [30] ) - System.Threading.Tasks
+ UsingDirective - (104:5,1 [39] ) - Microsoft.AspNetCore.Components
+ ClassDeclaration - - public - TestComponent - Microsoft.AspNetCore.Components.ComponentBase -
+ MethodDeclaration - - protected override - void - BuildRenderTree
+ MarkupBlock - -
+ CSharpCode - (37:1,7 [49] x:\dir\subdir\Test\TestComponent.cshtml)
+ IntermediateToken - (37:1,7 [49] x:\dir\subdir\Test\TestComponent.cshtml) - CSharp - \n void OnClick(UIMouseEventArgs e) {\n }\n
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.mappings.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.mappings.txt
new file mode 100644
index 0000000000..1ab598aff8
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/IntegrationTests/ComponentRuntimeCodeGenerationTest/EventHandler_AttributeNameIsCaseSensitive/TestComponent.mappings.txt
@@ -0,0 +1,11 @@
+Source Location: (37:1,7 [49] x:\dir\subdir\Test\TestComponent.cshtml)
+|
+ void OnClick(UIMouseEventArgs e) {
+ }
+|
+Generated Location: (705:20,7 [49] )
+|
+ void OnClick(UIMouseEventArgs e) {
+ }
+|
+
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.cspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.cspans.txt
new file mode 100644
index 0000000000..9244132d92
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.cspans.txt
@@ -0,0 +1 @@
+Markup span at (10:0,10 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [28] )
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.stree.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.stree.txt
new file mode 100644
index 0000000000..efa4cd5f46
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.stree.txt
@@ -0,0 +1,31 @@
+RazorDocument - [0..28)::28 - []
+ MarkupBlock - [0..28)::28
+ MarkupTagHelperElement - [0..28)::28 - p[StartTagAndEndTag] - pTagHelper - catchAllTagHelper
+ MarkupTagHelperStartTag - [0..24)::24 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ MarkupTagHelperAttribute - [2..14)::12 - class - SingleQuotes - Unbound - [ class='foo']
+ MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupTagHelperAttributeValue - [10..13)::3
+ MarkupLiteralAttributeValue - [10..13)::3 - [foo]
+ MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any
+ Text;[foo];
+ MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupMinimizedTagHelperAttribute - [14..23)::9 - catchAll - Minimized - Unbound - [ catchAll]
+ MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [15..23)::8 - [catchAll] - Gen - SpanEditHandler;Accepts:Any
+ Text;[catchAll];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [24..28)::4 - [
]
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.tspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.tspans.txt
new file mode 100644
index 0000000000..f9a1aca732
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly1.tspans.txt
@@ -0,0 +1 @@
+TagHelper span at (0:0,0 [28] ) - pTagHelper - catchAllTagHelper
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.cspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.cspans.txt
new file mode 100644
index 0000000000..9244132d92
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.cspans.txt
@@ -0,0 +1 @@
+Markup span at (10:0,10 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [28] )
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.stree.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.stree.txt
new file mode 100644
index 0000000000..b3397e054d
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.stree.txt
@@ -0,0 +1,31 @@
+RazorDocument - [0..28)::28 - []
+ MarkupBlock - [0..28)::28
+ MarkupTagHelperElement - [0..28)::28 - p[StartTagAndEndTag] - catchAllTagHelper
+ MarkupTagHelperStartTag - [0..24)::24 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ MarkupTagHelperAttribute - [2..14)::12 - CLASS - SingleQuotes - Unbound - [ CLASS='foo']
+ MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [3..8)::5 - [CLASS] - Gen - SpanEditHandler;Accepts:Any
+ Text;[CLASS];
+ Equals;[=];
+ MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupTagHelperAttributeValue - [10..13)::3
+ MarkupLiteralAttributeValue - [10..13)::3 - [foo]
+ MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any
+ Text;[foo];
+ MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupMinimizedTagHelperAttribute - [14..23)::9 - CATCHAll - Minimized - Unbound - [ CATCHAll]
+ MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [15..23)::8 - [CATCHAll] - Gen - SpanEditHandler;Accepts:Any
+ Text;[CATCHAll];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [24..28)::4 - [
]
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.tspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.tspans.txt
new file mode 100644
index 0000000000..2a9461471f
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly2.tspans.txt
@@ -0,0 +1 @@
+TagHelper span at (0:0,0 [28] ) - catchAllTagHelper
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.cspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.cspans.txt
new file mode 100644
index 0000000000..9244132d92
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.cspans.txt
@@ -0,0 +1 @@
+Markup span at (10:0,10 [3] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [28] )
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.stree.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.stree.txt
new file mode 100644
index 0000000000..abf07adaa8
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.stree.txt
@@ -0,0 +1,31 @@
+RazorDocument - [0..28)::28 - []
+ MarkupBlock - [0..28)::28
+ MarkupTagHelperElement - [0..28)::28 - P[StartTagAndEndTag] - catchAllTagHelper
+ MarkupTagHelperStartTag - [0..24)::24 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[P];
+ MarkupTagHelperAttribute - [2..14)::12 - class - SingleQuotes - Unbound - [ class='foo']
+ MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupTagHelperAttributeValue - [10..13)::3
+ MarkupLiteralAttributeValue - [10..13)::3 - [foo]
+ MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any
+ Text;[foo];
+ MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ MarkupMinimizedTagHelperAttribute - [14..23)::9 - CATCHAll - Minimized - Unbound - [ CATCHAll]
+ MarkupTextLiteral - [14..15)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [15..23)::8 - [CATCHAll] - Gen - SpanEditHandler;Accepts:Any
+ Text;[CATCHAll];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [24..28)::4 - [
]
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[P];
+ CloseAngle;[>];
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.tspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.tspans.txt
new file mode 100644
index 0000000000..2a9461471f
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly3.tspans.txt
@@ -0,0 +1 @@
+TagHelper span at (0:0,0 [28] ) - catchAllTagHelper
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.cspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.cspans.txt
new file mode 100644
index 0000000000..34f63d813d
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.cspans.txt
@@ -0,0 +1,6 @@
+Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [15] )
+Markup span at (2:0,2 [8] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (10:0,10 [3] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (13:0,13 [1] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (14:0,14 [1] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [15] )
+Markup span at (15:0,15 [4] ) (Accepts:Any) - Parent: Tag block at (15:0,15 [4] )
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.stree.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.stree.txt
new file mode 100644
index 0000000000..67601f532c
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly4.stree.txt
@@ -0,0 +1,26 @@
+RazorDocument - [0..19)::19 - []
+ MarkupBlock - [0..19)::19
+ MarkupElement - [0..19)::19
+ MarkupStartTag - [0..15)::15 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[P];
+ MarkupAttributeBlock - [2..14)::12 - [ class='foo']
+ MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [3..8)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ GenericBlock - [10..13)::3
+ MarkupLiteralAttributeValue - [10..13)::3 - [foo]
+ MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any
+ Text;[foo];
+ MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ CloseAngle;[>];
+ MarkupEndTag - [15..19)::4 - [
] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[P];
+ CloseAngle;[>];
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.cspans.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.cspans.txt
new file mode 100644
index 0000000000..34f63d813d
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.cspans.txt
@@ -0,0 +1,6 @@
+Markup span at (0:0,0 [2] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [15] )
+Markup span at (2:0,2 [8] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (10:0,10 [3] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (13:0,13 [1] ) (Accepts:Any) - Parent: Markup block at (2:0,2 [12] )
+Markup span at (14:0,14 [1] ) (Accepts:Any) - Parent: Tag block at (0:0,0 [15] )
+Markup span at (15:0,15 [4] ) (Accepts:Any) - Parent: Tag block at (15:0,15 [4] )
diff --git a/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.stree.txt b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.stree.txt
new file mode 100644
index 0000000000..94fc32106e
--- /dev/null
+++ b/src/Razor/Microsoft.AspNetCore.Razor.Language/test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/HandlesCaseSensitiveTagHelpersCorrectly5.stree.txt
@@ -0,0 +1,26 @@
+RazorDocument - [0..19)::19 - []
+ MarkupBlock - [0..19)::19
+ MarkupElement - [0..19)::19
+ MarkupStartTag - [0..15)::15 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ MarkupAttributeBlock - [2..14)::12 - [ Class='foo']
+ MarkupTextLiteral - [2..3)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [3..8)::5 - [Class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[Class];
+ Equals;[=];
+ MarkupTextLiteral - [9..10)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ GenericBlock - [10..13)::3
+ MarkupLiteralAttributeValue - [10..13)::3 - [foo]
+ MarkupTextLiteral - [10..13)::3 - [foo] - Gen - SpanEditHandler;Accepts:Any
+ Text;[foo];
+ MarkupTextLiteral - [13..14)::1 - ['] - Gen - SpanEditHandler;Accepts:Any
+ SingleQuote;['];
+ CloseAngle;[>];
+ MarkupEndTag - [15..19)::4 - [
] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/BindTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/BindTagHelperDescriptorProvider.cs
index 34d70280a2..04512ecb69 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/BindTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/BindTagHelperDescriptorProvider.cs
@@ -125,6 +125,7 @@ namespace Microsoft.CodeAnalysis.Razor
private TagHelperDescriptor CreateFallbackBindTagHelper()
{
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Bind.TagHelperKind, "Bind", ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = ComponentResources.BindTagHelper_Fallback_Documentation;
builder.Metadata.Add(ComponentMetadata.SpecialKindKey, ComponentMetadata.Bind.TagHelperKind);
@@ -292,6 +293,7 @@ namespace Microsoft.CodeAnalysis.Razor
var eventName = entry.Suffix == null ? "Event_" + entry.ValueAttribute : "Event_" + entry.Suffix;
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Bind.TagHelperKind, name, ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = string.Format(
ComponentResources.BindTagHelper_Element_Documentation,
entry.ValueAttribute,
@@ -469,6 +471,7 @@ namespace Microsoft.CodeAnalysis.Razor
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Bind.TagHelperKind, tagHelper.Name, tagHelper.AssemblyName);
builder.DisplayName = tagHelper.DisplayName;
+ builder.CaseSensitive = true;
builder.Documentation = string.Format(
ComponentResources.BindTagHelper_Component_Documentation,
valueAttribute.Name,
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/ComponentTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/ComponentTagHelperDescriptorProvider.cs
index 57b64c6abc..17eb8b3918 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/ComponentTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/ComponentTagHelperDescriptorProvider.cs
@@ -91,7 +91,10 @@ namespace Microsoft.CodeAnalysis.Razor
private TagHelperDescriptor CreateShortNameMatchingDescriptor(ComponentSymbols symbols, INamedTypeSymbol type)
{
var builder = CreateDescriptorBuilder(symbols, type);
- builder.TagMatchingRule(r => r.TagName = type.Name);
+ builder.TagMatchingRule(r =>
+ {
+ r.TagName = type.Name;
+ });
return builder.Build();
}
@@ -101,7 +104,10 @@ namespace Microsoft.CodeAnalysis.Razor
var builder = CreateDescriptorBuilder(symbols, type);
var containingNamespace = type.ContainingNamespace.ToDisplayString();
var fullName = $"{containingNamespace}.{type.Name}";
- builder.TagMatchingRule(r => r.TagName = fullName);
+ builder.TagMatchingRule(r =>
+ {
+ r.TagName = fullName;
+ });
builder.Metadata[ComponentMetadata.Component.NameMatchKey] = ComponentMetadata.Component.FullyQualifiedNameMatch;
return builder.Build();
@@ -114,6 +120,7 @@ namespace Microsoft.CodeAnalysis.Razor
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Component.TagHelperKind, typeName, assemblyName);
builder.SetTypeName(typeName);
+ builder.CaseSensitive = true;
// This opts out this 'component' tag helper for any processing that's specific to the default
// Razor ITagHelper runtime.
@@ -264,6 +271,7 @@ namespace Microsoft.CodeAnalysis.Razor
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.ChildContent.TagHelperKind, typeName, assemblyName);
builder.SetTypeName(typeName);
+ builder.CaseSensitive = true;
// This opts out this 'component' tag helper for any processing that's specific to the default
// Razor ITagHelper runtime.
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/EventHandlerTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/EventHandlerTagHelperDescriptorProvider.cs
index d8683796a9..9eead66e2e 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/EventHandlerTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/EventHandlerTagHelperDescriptorProvider.cs
@@ -106,6 +106,7 @@ namespace Microsoft.CodeAnalysis.Razor
var eventArgType = entry.EventArgsType.ToDisplayString();
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.EventHandler.TagHelperKind, entry.Attribute, ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = string.Format(
ComponentResources.EventHandlerTagHelper_Documentation,
attributeName,
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/KeyTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/KeyTagHelperDescriptorProvider.cs
index ea2830b91b..789abca318 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/KeyTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/KeyTagHelperDescriptorProvider.cs
@@ -41,6 +41,7 @@ namespace Microsoft.CodeAnalysis.Razor
private TagHelperDescriptor CreateKeyTagHelper()
{
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Key.TagHelperKind, "Key", ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = ComponentResources.KeyTagHelper_Documentation;
builder.Metadata.Add(ComponentMetadata.SpecialKindKey, ComponentMetadata.Key.TagHelperKind);
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/RefTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/RefTagHelperDescriptorProvider.cs
index ccc3ee7ad0..7cce7808e6 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/RefTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/RefTagHelperDescriptorProvider.cs
@@ -41,6 +41,7 @@ namespace Microsoft.CodeAnalysis.Razor
private TagHelperDescriptor CreateRefTagHelper()
{
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Ref.TagHelperKind, "Ref", ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = ComponentResources.RefTagHelper_Documentation;
builder.Metadata.Add(ComponentMetadata.SpecialKindKey, ComponentMetadata.Ref.TagHelperKind);
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/src/SplatTagHelperDescriptorProvider.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/src/SplatTagHelperDescriptorProvider.cs
index 86aa7a78e3..3d64214427 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/src/SplatTagHelperDescriptorProvider.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/src/SplatTagHelperDescriptorProvider.cs
@@ -41,6 +41,7 @@ namespace Microsoft.CodeAnalysis.Razor
private TagHelperDescriptor CreateSplatTagHelper()
{
var builder = TagHelperDescriptorBuilder.Create(ComponentMetadata.Splat.TagHelperKind, "Attributes", ComponentsApi.AssemblyName);
+ builder.CaseSensitive = true;
builder.Documentation = ComponentResources.SplatTagHelper_Documentation;
builder.Metadata.Add(ComponentMetadata.SpecialKindKey, ComponentMetadata.Splat.TagHelperKind);
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/BaseTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/BaseTagHelperDescriptorProviderTest.cs
index d8fd1bcbeb..117d9c0c34 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/BaseTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/BaseTagHelperDescriptorProviderTest.cs
@@ -35,6 +35,7 @@ namespace Microsoft.CodeAnalysis.Razor
.Where(c => c.GetTypeName() != "Microsoft.AspNetCore.Components.Bind")
.Where(c => c.GetTypeName() != "Microsoft.AspNetCore.Components.BindAttributes")
.Where(c => c.GetTypeName() != "Microsoft.AspNetCore.Components.EventHandlers")
+ .Where(c => !c.GetTypeName().StartsWith("Microsoft.AspNetCore.Components.Routing"))
.OrderBy(c => c.Name)
.ToArray();
}
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/BindTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/BindTagHelperDescriptorProviderTest.cs
index 825326d6f8..89b42a0ae3 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/BindTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/BindTagHelperDescriptorProviderTest.cs
@@ -76,6 +76,7 @@ namespace Test
Assert.False(bind.IsDefaultKind());
Assert.False(bind.KindUsesDefaultTagHelperRuntime());
Assert.False(bind.IsComponentOrChildContentTagHelper());
+ Assert.True(bind.CaseSensitive);
Assert.Equal("MyProperty", bind.Metadata[ComponentMetadata.Bind.ValueAttribute]);
Assert.Equal("MyPropertyChanged", bind.Metadata[ComponentMetadata.Bind.ChangeAttribute]);
@@ -197,6 +198,7 @@ namespace Test
Assert.False(bind.IsDefaultKind());
Assert.False(bind.KindUsesDefaultTagHelperRuntime());
Assert.False(bind.IsComponentOrChildContentTagHelper());
+ Assert.True(bind.CaseSensitive);
Assert.Equal("MyProperty", bind.Metadata[ComponentMetadata.Bind.ValueAttribute]);
Assert.Equal("MyPropertyChanged", bind.Metadata[ComponentMetadata.Bind.ChangeAttribute]);
@@ -349,6 +351,7 @@ namespace Test
Assert.False(bind.IsDefaultKind());
Assert.False(bind.KindUsesDefaultTagHelperRuntime());
Assert.False(bind.IsComponentOrChildContentTagHelper());
+ Assert.True(bind.CaseSensitive);
Assert.Equal("myprop", bind.Metadata[ComponentMetadata.Bind.ValueAttribute]);
Assert.Equal("myevent", bind.Metadata[ComponentMetadata.Bind.ChangeAttribute]);
@@ -778,6 +781,7 @@ namespace Test
Assert.False(bind.IsDefaultKind());
Assert.False(bind.KindUsesDefaultTagHelperRuntime());
Assert.False(bind.IsComponentOrChildContentTagHelper());
+ Assert.True(bind.CaseSensitive);
Assert.False(bind.Metadata.ContainsKey(ComponentMetadata.Bind.ValueAttribute));
Assert.False(bind.Metadata.ContainsKey(ComponentMetadata.Bind.ChangeAttribute));
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/ComponentTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/ComponentTagHelperDescriptorProviderTest.cs
index f5325fdb05..84e92ba30f 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/ComponentTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/ComponentTagHelperDescriptorProviderTest.cs
@@ -65,6 +65,7 @@ namespace Test
Assert.False(component.IsDefaultKind());
Assert.False(component.KindUsesDefaultTagHelperRuntime());
Assert.True(component.IsComponentOrChildContentTagHelper());
+ Assert.True(component.CaseSensitive);
// No documentation in this test
Assert.Null(component.Documentation);
@@ -108,6 +109,7 @@ namespace Test
Assert.Null(attribute.IndexerTypeName);
Assert.False(attribute.IsIndexerBooleanProperty);
Assert.False(attribute.IsIndexerStringProperty);
+ Assert.True(component.CaseSensitive);
// No documentation in this test
Assert.Null(attribute.Documentation);
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/DefaultTagHelperDescriptorFactoryTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/DefaultTagHelperDescriptorFactoryTest.cs
index 64f092cdb3..7465c6e903 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/DefaultTagHelperDescriptorFactoryTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/DefaultTagHelperDescriptorFactoryTest.cs
@@ -200,12 +200,13 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
IEnumerable> configureBuilders)
{
// Arrange
- var ruleBuilder = new DefaultTagMatchingRuleDescriptorBuilder();
+ var tagHelperBuilder = new DefaultTagHelperDescriptorBuilder(TagHelperConventions.DefaultKind, "TestTagHelper", "Test");
+ var ruleBuilder = new DefaultTagMatchingRuleDescriptorBuilder(tagHelperBuilder);
var expectedRules = new List();
foreach (var configureBuilder in configureBuilders)
{
- var builder = new DefaultRequiredAttributeDescriptorBuilder();
+ var builder = new DefaultRequiredAttributeDescriptorBuilder(ruleBuilder);
configureBuilder(builder);
expectedRules.Add(builder.Build());
@@ -216,7 +217,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
// Assert
var descriptors = ruleBuilder.Build().Attributes;
- Assert.Equal(expectedRules, descriptors, RequiredAttributeDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedRules, descriptors, RequiredAttributeDescriptorComparer.Default);
}
public static TheoryData RequiredAttributeParserData
@@ -294,12 +295,13 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
IEnumerable> configureBuilders)
{
// Arrange
- var ruleBuilder = new DefaultTagMatchingRuleDescriptorBuilder();
+ var tagHelperBuilder = new DefaultTagHelperDescriptorBuilder(TagHelperConventions.DefaultKind, "TestTagHelper", "Test");
+ var ruleBuilder = new DefaultTagMatchingRuleDescriptorBuilder(tagHelperBuilder);
var expectedRules = new List();
foreach (var configureBuilder in configureBuilders)
{
- var builder = new DefaultRequiredAttributeDescriptorBuilder();
+ var builder = new DefaultRequiredAttributeDescriptorBuilder(ruleBuilder);
configureBuilder(builder);
expectedRules.Add(builder.Build());
@@ -310,7 +312,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
// Assert
var descriptors = ruleBuilder.Build().Attributes;
- Assert.Equal(expectedRules, descriptors, RequiredAttributeDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedRules, descriptors, RequiredAttributeDescriptorComparer.Default);
}
public static TheoryData IsEnumData
@@ -399,7 +401,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData RequiredParentData
@@ -450,7 +452,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData RestrictChildrenData
@@ -506,7 +508,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData TagStructureData
@@ -566,7 +568,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData EditorBrowsableData
@@ -741,7 +743,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData AttributeTargetData
@@ -938,7 +940,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData HtmlCaseData
@@ -1012,7 +1014,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1046,7 +1048,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1080,7 +1082,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1105,7 +1107,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1131,7 +1133,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1158,7 +1160,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1185,7 +1187,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1210,7 +1212,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1241,7 +1243,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1267,7 +1269,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1291,7 +1293,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
@@ -1310,7 +1312,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
// name, expectedErrorMessages
@@ -1763,7 +1765,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
public static TheoryData TagHelperWithPrefixData
@@ -2020,7 +2022,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
Assert.Equal(
expectedAttributeDescriptors,
descriptor.BoundAttributes,
- BoundAttributeDescriptorComparer.CaseSensitive);
+ BoundAttributeDescriptorComparer.Default);
Assert.Equal(expectedDiagnostics, descriptor.GetAllDiagnostics());
}
@@ -2081,7 +2083,7 @@ namespace Microsoft.CodeAnalysis.Razor.Workspaces
var descriptor = factory.CreateDescriptor(typeSymbol);
// Assert
- Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(expectedDescriptor, descriptor, TagHelperDescriptorComparer.Default);
}
[Fact]
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/EventHandlerTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/EventHandlerTagHelperDescriptorProviderTest.cs
index e2d372f1fe..673ad67050 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/EventHandlerTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/EventHandlerTagHelperDescriptorProviderTest.cs
@@ -57,6 +57,7 @@ namespace Test
Assert.False(item.IsDefaultKind());
Assert.False(item.KindUsesDefaultTagHelperRuntime());
Assert.False(item.IsComponentOrChildContentTagHelper());
+ Assert.True(item.CaseSensitive);
Assert.Equal(
"Sets the '@onclick' attribute to the provided string or delegate value. " +
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/KeyTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/KeyTagHelperDescriptorProviderTest.cs
index b937b62685..3018afea55 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/KeyTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/KeyTagHelperDescriptorProviderTest.cs
@@ -36,6 +36,7 @@ namespace Microsoft.CodeAnalysis.Razor
Assert.False(item.IsDefaultKind());
Assert.False(item.KindUsesDefaultTagHelperRuntime());
Assert.False(item.IsComponentOrChildContentTagHelper());
+ Assert.True(item.CaseSensitive);
Assert.Equal(
"Ensures that the component or element will be preserved across renders if (and only if) the supplied key value matches.",
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/RefTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/RefTagHelperDescriptorProviderTest.cs
index ef4a3ed558..5740418f77 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/RefTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/RefTagHelperDescriptorProviderTest.cs
@@ -36,6 +36,7 @@ namespace Microsoft.CodeAnalysis.Razor
Assert.False(item.IsDefaultKind());
Assert.False(item.KindUsesDefaultTagHelperRuntime());
Assert.False(item.IsComponentOrChildContentTagHelper());
+ Assert.True(item.CaseSensitive);
Assert.Equal(
"Generates the specified field, and populates it during rendering with a reference to the element or component.",
diff --git a/src/Razor/Microsoft.CodeAnalysis.Razor/test/SplatTagHelperDescriptorProviderTest.cs b/src/Razor/Microsoft.CodeAnalysis.Razor/test/SplatTagHelperDescriptorProviderTest.cs
index c07c95a2aa..7832da05ac 100644
--- a/src/Razor/Microsoft.CodeAnalysis.Razor/test/SplatTagHelperDescriptorProviderTest.cs
+++ b/src/Razor/Microsoft.CodeAnalysis.Razor/test/SplatTagHelperDescriptorProviderTest.cs
@@ -35,6 +35,7 @@ namespace Microsoft.CodeAnalysis.Razor
Assert.Equal(ComponentMetadata.Splat.RuntimeName, item.Metadata[TagHelperMetadata.Runtime.Name]);
Assert.False(item.IsDefaultKind());
Assert.False(item.KindUsesDefaultTagHelperRuntime());
+ Assert.True(item.CaseSensitive);
Assert.Equal(
"Merges a collection of attributes into the current element or component.",
diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Intermediate/IntermediateNodeAssert.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Intermediate/IntermediateNodeAssert.cs
index b4fc6f105e..36f7a55414 100644
--- a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Intermediate/IntermediateNodeAssert.cs
+++ b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Intermediate/IntermediateNodeAssert.cs
@@ -351,7 +351,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
Assert.Equal(tagName, tagHelperNode.TagName);
Assert.Equal(tagMode, tagHelperNode.TagMode);
- Assert.Equal(tagHelpers, tagHelperNode.TagHelpers, TagHelperDescriptorComparer.CaseSensitive);
+ Assert.Equal(tagHelpers, tagHelperNode.TagHelpers, TagHelperDescriptorComparer.Default);
}
catch (XunitException e)
{
diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestTagHelperDescriptorBuilderExtensions.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestTagHelperDescriptorBuilderExtensions.cs
index 5bc81a7792..6590dd3065 100644
--- a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestTagHelperDescriptorBuilderExtensions.cs
+++ b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/TestTagHelperDescriptorBuilderExtensions.cs
@@ -55,6 +55,18 @@ namespace Microsoft.AspNetCore.Razor.Language
return builder;
}
+ public static TagHelperDescriptorBuilder SetCaseSensitive(this TagHelperDescriptorBuilder builder)
+ {
+ if (builder == null)
+ {
+ throw new ArgumentNullException(nameof(builder));
+ }
+
+ builder.CaseSensitive = true;
+
+ return builder;
+ }
+
public static TagHelperDescriptorBuilder Documentation(this TagHelperDescriptorBuilder builder, string documentation)
{
if (builder == null)
diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.ComponentShim/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.ComponentShim/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
index b83fc48298..42a0d20589 100644
--- a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.ComponentShim/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
+++ b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.ComponentShim/Microsoft.AspNetCore.Components.netstandard2.0.Manual.cs
@@ -45,3 +45,39 @@ namespace Microsoft.AspNetCore.Components.RenderTree
public override string ToString() { throw null; }
}
}
+
+namespace Microsoft.AspNetCore.Components.Routing
+{
+ public partial class NavLink : Microsoft.AspNetCore.Components.IComponent, System.IDisposable
+ {
+ public NavLink() { }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public string ActiveClass { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ [Microsoft.AspNetCore.Components.ParameterAttribute(CaptureUnmatchedValues = true)]
+ public System.Collections.Generic.IReadOnlyDictionary AdditionalAttributes { get; private set; }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public RenderFragment ChildContent { get; set; }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public Microsoft.AspNetCore.Components.Routing.NavLinkMatch Match { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
+ public void Dispose() { }
+ public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterCollection parameters) { throw null; }
+ }
+
+ public partial class Router : Microsoft.AspNetCore.Components.IComponent, System.IDisposable
+ {
+ public Router() { }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public System.Reflection.Assembly AppAssembly { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public Microsoft.AspNetCore.Components.RenderFragment NotFoundContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public Microsoft.AspNetCore.Components.RenderFragment NotAuthorizedContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ [Microsoft.AspNetCore.Components.ParameterAttribute]
+ public Microsoft.AspNetCore.Components.RenderFragment AuthorizingContent { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } private set { throw null; } }
+ public void Configure(Microsoft.AspNetCore.Components.RenderHandle renderHandle) { }
+ public void Dispose() { }
+ protected virtual void Render(Microsoft.AspNetCore.Components.RenderTree.RenderTreeBuilder builder, System.Type handler, System.Collections.Generic.IDictionary parameters) { }
+ public System.Threading.Tasks.Task SetParametersAsync(Microsoft.AspNetCore.Components.ParameterCollection parameters) { throw null; }
+ }
+}
diff --git a/src/Razor/test/testassets/ComponentApp/Components/App.razor b/src/Razor/test/testassets/ComponentApp/Components/App.razor
index 03eee81cef..72618a93bd 100644
--- a/src/Razor/test/testassets/ComponentApp/Components/App.razor
+++ b/src/Razor/test/testassets/ComponentApp/Components/App.razor
@@ -2,4 +2,4 @@
The Router component displays whichever component has a @page
directive matching the current URI.
*@
-
+
diff --git a/src/Razor/test/testassets/ComponentApp/Components/_Imports.razor b/src/Razor/test/testassets/ComponentApp/Components/_Imports.razor
index 08636e04e8..287317eba6 100644
--- a/src/Razor/test/testassets/ComponentApp/Components/_Imports.razor
+++ b/src/Razor/test/testassets/ComponentApp/Components/_Imports.razor
@@ -1 +1,2 @@
@using ComponentApp.Components.Shared
+@using Microsoft.AspNetCore.Components.Routing