Skip to content

Commit 9762626

Browse files
Clean up ClassDeclarationIntermediateNode
- Enable nullability - Add constructor - Make `IsPrimaryClass` property read-only - Remove unnecessary argument null check - Lazily create `Children` collection - Change `Modifiers` property to return an `ImmutableArray<string>` rather than an `IList<string>` (backed by a `List<string>`). - Change `Interfaces` property to return an `ImmutableArray<IntermediateToken>` rather than an `IList<IntermediateToken>` (backed by a `List<IntermediateToken>`). - Change `TypeParameters` property to return an `ImmutableArray<TypeParameter>` rather than an `IList<TypeParameter>` (backed by a `List<TypeParameter>`). - General clean up
1 parent 9277fd6 commit 9762626

File tree

34 files changed

+191
-191
lines changed

34 files changed

+191
-191
lines changed

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/test/ModelDirectiveTest.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ @model Type1
8686
var classNode = documentNode.GetClassNode();
8787
var baseType = classNode.BaseType;
8888

89+
Assert.NotNull(baseType);
8990
Assert.Equal("BaseType", baseType.BaseType.Content);
9091
Assert.NotNull(baseType.BaseType.Source);
9192

@@ -114,6 +115,7 @@ @model Type2
114115
var classNode = documentNode.GetClassNode();
115116
var baseType = classNode.BaseType;
116117

118+
Assert.NotNull(baseType);
117119
Assert.Equal("BaseType", baseType.BaseType.Content);
118120
Assert.NotNull(baseType.BaseType.Source);
119121

@@ -141,6 +143,7 @@ @model Type1
141143
var classNode = documentNode.GetClassNode();
142144
var baseType = classNode.BaseType;
143145

146+
Assert.NotNull(baseType);
144147
Assert.Equal("BaseType", baseType.BaseType.Content);
145148
Assert.NotNull(baseType.BaseType.Source);
146149

@@ -166,6 +169,7 @@ @inherits BaseType<TModel>
166169
var classNode = documentNode.GetClassNode();
167170
var baseType = classNode.BaseType;
168171

172+
Assert.NotNull(baseType);
169173
Assert.Equal("BaseType", baseType.BaseType.Content);
170174
Assert.NotNull(baseType.BaseType.Source);
171175

@@ -193,6 +197,7 @@ @inherits BaseType<TModel>
193197
var classNode = documentNode.GetClassNode();
194198
var baseType = classNode.BaseType;
195199

200+
Assert.NotNull(baseType);
196201
Assert.Equal("BaseType", baseType.BaseType.Content);
197202
Assert.Null(baseType.BaseType.Source);
198203

@@ -224,6 +229,7 @@ @model SomeType
224229
var classNode = documentNode.GetClassNode();
225230
var baseType = classNode.BaseType;
226231

232+
Assert.NotNull(baseType);
227233
Assert.Equal("BaseType", baseType.BaseType.Content);
228234
Assert.Null(baseType.BaseType.Source);
229235

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X/test/MvcViewDocumentClassifierPassTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void MvcViewDocumentClassifierPass_SetsClass()
8686
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
8787
Assert.NotNull(baseNode.ModelType);
8888
Assert.Equal("TModel", baseNode.ModelType.Content);
89-
Assert.Equal(["public"], classNode.Modifiers);
89+
Assert.Equal<string>(["public"], classNode.Modifiers);
9090
Assert.Equal("Test", classNode.ClassName);
9191
}
9292

@@ -109,7 +109,7 @@ public void MvcViewDocumentClassifierPass_NullFilePath_SetsClass()
109109
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
110110
Assert.NotNull(baseNode.ModelType);
111111
Assert.Equal("TModel", baseNode.ModelType.Content);
112-
Assert.Equal(["public"], classNode.Modifiers);
112+
Assert.Equal<string>(["public"], classNode.Modifiers);
113113
AssertEx.Equal("AspNetCore_ec563e63d931b806184cb02f79875e4f3b21d1ca043ad06699424459128b58c0", classNode.ClassName);
114114
}
115115

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X/test/AssemblyAttributeInjectionPassTest.cs

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ public void Execute_NoOps_IfClassNameIsEmpty()
8383

8484
builder.Push(@namespace);
8585

86-
builder.Add(new ClassDeclarationIntermediateNode
87-
{
88-
IsPrimaryClass = true,
89-
});
86+
builder.Add(new ClassDeclarationIntermediateNode(isPrimaryClass: true));
9087

9188
// Act
9289
ProjectEngine.ExecutePass<AssemblyAttributeInjectionPass>(codeDocument, documentNode);
@@ -111,10 +108,9 @@ public void Execute_NoOps_IfDocumentIsNotViewOrPage()
111108
var @namespace = new NamespaceDeclarationIntermediateNode() { Content = "SomeNamespace" };
112109
builder.Push(@namespace);
113110

114-
var @class = new ClassDeclarationIntermediateNode
111+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
115112
{
116-
ClassName = "SomeName",
117-
IsPrimaryClass = true,
113+
ClassName = "SomeName"
118114
};
119115

120116
builder.Add(@class);
@@ -148,10 +144,9 @@ public void Execute_NoOps_ForDesignTime()
148144

149145
builder.Push(@namespace);
150146

151-
var @class = new ClassDeclarationIntermediateNode
147+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
152148
{
153-
ClassName = "SomeName",
154-
IsPrimaryClass = true,
149+
ClassName = "SomeName"
155150
};
156151

157152
builder.Add(@class);
@@ -187,10 +182,9 @@ public void Execute_AddsRazorViewAttribute_ToViews()
187182
};
188183

189184
builder.Push(@namespace);
190-
var @class = new ClassDeclarationIntermediateNode
185+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
191186
{
192-
ClassName = "SomeName",
193-
IsPrimaryClass = true,
187+
ClassName = "SomeName"
194188
};
195189

196190
builder.Add(@class);
@@ -234,10 +228,9 @@ public void Execute_EscapesViewPathWhenAddingAttributeToViews()
234228

235229
builder.Push(@namespace);
236230

237-
var @class = new ClassDeclarationIntermediateNode
231+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
238232
{
239-
ClassName = "SomeName",
240-
IsPrimaryClass = true,
233+
ClassName = "SomeName"
241234
};
242235

243236
builder.Add(@class);
@@ -288,10 +281,9 @@ public void Execute_AddsRazorPagettribute_ToPage()
288281

289282
builder.Push(@namespace);
290283

291-
var @class = new ClassDeclarationIntermediateNode
284+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
292285
{
293-
ClassName = "SomeName",
294-
IsPrimaryClass = true,
286+
ClassName = "SomeName"
295287
};
296288

297289
builder.Add(@class);
@@ -333,12 +325,12 @@ public void Execute_EscapesViewPathAndRouteWhenAddingAttributeToPage()
333325
{
334326
Content = "SomeNamespace"
335327
};
328+
336329
builder.Push(@namespace);
337330

338-
var @class = new ClassDeclarationIntermediateNode
331+
var @class = new ClassDeclarationIntermediateNode(isPrimaryClass: true)
339332
{
340-
ClassName = "SomeName",
341-
IsPrimaryClass = true,
333+
ClassName = "SomeName"
342334
};
343335

344336
builder.Add(@class);

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X/test/ModelDirectiveTest.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ @model Type1
8686
var classNode = documentNode.GetClassNode();
8787
var baseType = classNode.BaseType;
8888

89+
Assert.NotNull(baseType);
8990
Assert.Equal("BaseType", baseType.BaseType.Content);
9091
Assert.NotNull(baseType.BaseType.Source);
9192

@@ -114,6 +115,7 @@ @model Type2
114115
var classNode = documentNode.GetClassNode();
115116
var baseType = classNode.BaseType;
116117

118+
Assert.NotNull(baseType);
117119
Assert.Equal("BaseType", baseType.BaseType.Content);
118120
Assert.NotNull(baseType.BaseType.Source);
119121

@@ -141,6 +143,7 @@ @model Type1
141143
var classNode = documentNode.GetClassNode();
142144
var baseType = classNode.BaseType;
143145

146+
Assert.NotNull(baseType);
144147
Assert.Equal("BaseType", baseType.BaseType.Content);
145148
Assert.NotNull(baseType.BaseType.Source);
146149

@@ -166,6 +169,7 @@ @inherits BaseType<TModel>
166169
var classNode = documentNode.GetClassNode();
167170
var baseType = classNode.BaseType;
168171

172+
Assert.NotNull(baseType);
169173
Assert.Equal("BaseType", baseType.BaseType.Content);
170174
Assert.NotNull(baseType.BaseType.Source);
171175

@@ -193,6 +197,7 @@ @inherits BaseType<TModel>
193197
var classNode = documentNode.GetClassNode();
194198
var baseType = classNode.BaseType;
195199

200+
Assert.NotNull(baseType);
196201
Assert.Equal("BaseType", baseType.BaseType.Content);
197202
Assert.Null(baseType.BaseType.Source);
198203

@@ -224,6 +229,7 @@ @model SomeType
224229
var classNode = documentNode.GetClassNode();
225230
var baseType = classNode.BaseType;
226231

232+
Assert.NotNull(baseType);
227233
Assert.Equal("BaseType", baseType.BaseType.Content);
228234
Assert.Null(baseType.BaseType.Source);
229235

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X/test/MvcViewDocumentClassifierPassTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void MvcViewDocumentClassifierPass_SetsClass()
8686
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
8787
Assert.NotNull(baseNode.ModelType);
8888
Assert.Equal("TModel", baseNode.ModelType.Content);
89-
Assert.Equal(["public"], classNode.Modifiers);
89+
Assert.Equal<string>(["public"], classNode.Modifiers);
9090
Assert.Equal("Test", classNode.ClassName);
9191
}
9292

@@ -109,7 +109,7 @@ public void MvcViewDocumentClassifierPass_NullFilePath_SetsClass()
109109
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
110110
Assert.NotNull(baseNode.ModelType);
111111
Assert.Equal("TModel", baseNode.ModelType.Content);
112-
Assert.Equal(["public"], classNode.Modifiers);
112+
Assert.Equal<string>(["public"], classNode.Modifiers);
113113
AssertEx.Equal("AspNetCore_ec563e63d931b806184cb02f79875e4f3b21d1ca043ad06699424459128b58c0", classNode.ClassName);
114114
}
115115

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X/test/RazorPageDocumentClassifierPassTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ public void RazorPageDocumentClassifierPass_SetsClass()
198198
var documentNode = processor.GetDocumentNode();
199199
var classNode = documentNode.GetClassNode();
200200

201-
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType.BaseType.Content);
202-
Assert.Equal(["public"], classNode.Modifiers);
201+
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType?.BaseType.Content);
202+
Assert.Equal<string>(["public"], classNode.Modifiers);
203203
Assert.Equal("Test", classNode.ClassName);
204204
}
205205

@@ -218,8 +218,8 @@ public void RazorPageDocumentClassifierPass_NullFilePath_SetsClass()
218218
var documentNode = processor.GetDocumentNode();
219219
var classNode = documentNode.GetClassNode();
220220

221-
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType.BaseType.Content);
222-
Assert.Equal(["public"], classNode.Modifiers);
221+
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType?.BaseType.Content);
222+
Assert.Equal<string>(["public"], classNode.Modifiers);
223223
AssertEx.Equal("AspNetCore_c3b458108610c1a2aa6eede0a5685ede853e036732db515609b2a23ca15359e1", classNode.ClassName);
224224
}
225225

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/ConsolidatedMvcViewDocumentClassifierPassTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public void ConsolidatedMvcViewDocumentClassifierPass_SetsClass()
5353
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
5454
Assert.NotNull(baseNode.ModelType);
5555
Assert.Equal("TModel", baseNode.ModelType.Content);
56-
Assert.Equal(["internal", "sealed"], classNode.Modifiers);
56+
Assert.Equal<string>(["internal", "sealed"], classNode.Modifiers);
5757
Assert.Equal("Test", classNode.ClassName);
5858
}
5959

@@ -76,7 +76,7 @@ public void MvcViewDocumentClassifierPass_NullFilePath_SetsClass()
7676
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
7777
Assert.NotNull(baseNode.ModelType);
7878
Assert.Equal("TModel", baseNode.ModelType.Content);
79-
Assert.Equal(["internal", "sealed"], classNode.Modifiers);
79+
Assert.Equal<string>(["internal", "sealed"], classNode.Modifiers);
8080
AssertEx.Equal("AspNetCore_ec563e63d931b806184cb02f79875e4f3b21d1ca043ad06699424459128b58c0", classNode.ClassName);
8181
}
8282

@@ -98,7 +98,7 @@ public void ConsolidatedMvcViewDocumentClassifierPass_UsesRelativePathToGenerate
9898
var classNode = documentNode.GetClassNode();
9999

100100
Assert.Equal(expected, classNode.ClassName);
101-
Assert.Equal(["internal", "sealed"], classNode.Modifiers);
101+
Assert.Equal<string>(["internal", "sealed"], classNode.Modifiers);
102102
}
103103

104104
[Fact]

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/ModelDirectiveTest.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ @model Type1
8383
var classNode = documentNode.GetClassNode();
8484
var baseType = classNode.BaseType;
8585

86+
Assert.NotNull(baseType);
8687
Assert.Equal("BaseType", baseType.BaseType.Content);
8788
Assert.NotNull(baseType.BaseType.Source);
8889

@@ -111,6 +112,7 @@ @model Type2
111112
var classNode = documentNode.GetClassNode();
112113
var baseType = classNode.BaseType;
113114

115+
Assert.NotNull(baseType);
114116
Assert.Equal("BaseType", baseType.BaseType.Content);
115117
Assert.NotNull(baseType.BaseType.Source);
116118

@@ -138,6 +140,7 @@ @model Type1
138140
var classNode = documentNode.GetClassNode();
139141
var baseType = classNode.BaseType;
140142

143+
Assert.NotNull(baseType);
141144
Assert.Equal("BaseType", baseType.BaseType.Content);
142145
Assert.NotNull(baseType.BaseType.Source);
143146

@@ -163,6 +166,7 @@ @inherits BaseType<TModel>
163166
var classNode = documentNode.GetClassNode();
164167
var baseType = classNode.BaseType;
165168

169+
Assert.NotNull(baseType);
166170
Assert.Equal("BaseType", baseType.BaseType.Content);
167171
Assert.NotNull(baseType.BaseType.Source);
168172

@@ -190,6 +194,7 @@ @inherits BaseType<TModel>
190194
var classNode = documentNode.GetClassNode();
191195
var baseType = classNode.BaseType;
192196

197+
Assert.NotNull(baseType);
193198
Assert.Equal("BaseType", baseType.BaseType.Content);
194199
Assert.Null(baseType.BaseType.Source);
195200

@@ -221,6 +226,7 @@ @model SomeType
221226
var classNode = documentNode.GetClassNode();
222227
var baseType = classNode.BaseType;
223228

229+
Assert.NotNull(baseType);
224230
Assert.Equal("BaseType", baseType.BaseType.Content);
225231
Assert.Null(baseType.BaseType.Source);
226232

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/MvcViewDocumentClassifierPassTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void MvcViewDocumentClassifierPass_SetsClass()
8686
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
8787
Assert.NotNull(baseNode.ModelType);
8888
Assert.Equal("TModel", baseNode.ModelType.Content);
89-
Assert.Equal(["public"], classNode.Modifiers);
89+
Assert.Equal<string>(["public"], classNode.Modifiers);
9090
Assert.Equal("Test", classNode.ClassName);
9191
}
9292

@@ -109,7 +109,7 @@ public void MvcViewDocumentClassifierPass_NullFilePath_SetsClass()
109109
Assert.Equal("global::Microsoft.AspNetCore.Mvc.Razor.RazorPage", baseNode.BaseType.Content);
110110
Assert.NotNull(baseNode.ModelType);
111111
Assert.Equal("TModel", baseNode.ModelType.Content);
112-
Assert.Equal(["public"], classNode.Modifiers);
112+
Assert.Equal<string>(["public"], classNode.Modifiers);
113113
AssertEx.Equal("AspNetCore_ec563e63d931b806184cb02f79875e4f3b21d1ca043ad06699424459128b58c0", classNode.ClassName);
114114
}
115115

src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/RazorPageDocumentClassifierPassTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ public void RazorPageDocumentClassifierPass_SetsClass()
197197
var documentNode = processor.GetDocumentNode();
198198
var classNode = documentNode.GetClassNode();
199199

200-
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType.BaseType.Content);
201-
Assert.Equal(["public"], classNode.Modifiers);
200+
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType?.BaseType.Content);
201+
Assert.Equal<string>(["public"], classNode.Modifiers);
202202
Assert.Equal("Test", classNode.ClassName);
203203
}
204204

@@ -217,8 +217,8 @@ public void RazorPageDocumentClassifierPass_NullFilePath_SetsClass()
217217
var documentNode = processor.GetDocumentNode();
218218
var classNode = documentNode.GetClassNode();
219219

220-
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType.BaseType.Content);
221-
Assert.Equal(["public"], classNode.Modifiers);
220+
Assert.Equal("global::Microsoft.AspNetCore.Mvc.RazorPages.Page", classNode.BaseType?.BaseType.Content);
221+
Assert.Equal<string>(["public"], classNode.Modifiers);
222222
AssertEx.Equal("AspNetCore_c3b458108610c1a2aa6eede0a5685ede853e036732db515609b2a23ca15359e1", classNode.ClassName);
223223
}
224224

0 commit comments

Comments
 (0)