Skip to content

Commit 477ec6f

Browse files
Clean up MethodDeclarationIntermediateNode
- Enable nullability - Add constructors - Make `IsPrimaryMethod` 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 `Parmeters` property to return an `ImmutableArray<MethodParameter>` rather than an `IList<MethodParameter>` (backed by a `List<MethodParameter>`). - General clean up
1 parent ba68f3e commit 477ec6f

File tree

20 files changed

+70
-101
lines changed

20 files changed

+70
-101
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,6 @@ public void MvcViewDocumentClassifierPass_SetsUpExecuteAsyncMethod()
186186

187187
Assert.Equal("ExecuteAsync", methodNode.MethodName);
188188
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
189-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
189+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
190190
}
191191
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,6 @@ public void MvcViewDocumentClassifierPass_SetsUpExecuteAsyncMethod()
185185

186186
Assert.Equal("ExecuteAsync", methodNode.MethodName);
187187
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
188-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
188+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
189189
}
190190
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ public void RazorPageDocumentClassifierPass_SetsUpExecuteAsyncMethod()
295295

296296
Assert.Equal("ExecuteAsync", methodNode.MethodName);
297297
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
298-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
298+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
299299
}
300300

301301
[Fact]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,6 @@ public void ConsolidatedMvcViewDocumentClassifierPass_SetsUpExecuteAsyncMethod()
117117

118118
Assert.Equal("ExecuteAsync", methodNode.MethodName);
119119
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
120-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
120+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
121121
}
122122
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,6 @@ public void MvcViewDocumentClassifierPass_SetsUpExecuteAsyncMethod()
185185

186186
Assert.Equal("ExecuteAsync", methodNode.MethodName);
187187
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
188-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
188+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
189189
}
190190
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ public void RazorPageDocumentClassifierPass_SetsUpExecuteAsyncMethod()
294294

295295
Assert.Equal("ExecuteAsync", methodNode.MethodName);
296296
Assert.Equal("global::System.Threading.Tasks.Task", methodNode.ReturnType);
297-
Assert.Equal(["public", "async", "override"], methodNode.Modifiers);
297+
Assert.Equal<string>(["public", "async", "override"], methodNode.Modifiers);
298298
}
299299

300300
[Fact]

src/Compiler/Microsoft.AspNetCore.Razor.Language/test/CodeGeneration/DefaultDocumentWriterTest.cs

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -306,31 +306,25 @@ public void WriteDocument_WritesMethod()
306306
var builder = IntermediateNodeBuilder.Create(document);
307307
builder.Add(new MethodDeclarationIntermediateNode()
308308
{
309-
Modifiers =
310-
{
311-
"internal",
312-
"virtual",
313-
"async",
314-
},
309+
Modifiers = ["internal", "virtual", "async"],
315310
MethodName = "TestMethod",
316-
Parameters =
311+
Parameters = [
312+
new MethodParameter()
317313
{
318-
new MethodParameter()
314+
Modifiers =
319315
{
320-
Modifiers =
321-
{
322-
"readonly",
323-
"ref",
324-
},
325-
ParameterName = "a",
326-
TypeName = "int",
316+
"readonly",
317+
"ref",
327318
},
328-
new MethodParameter()
329-
{
330-
ParameterName = "b",
331-
TypeName = "string",
332-
}
319+
ParameterName = "a",
320+
TypeName = "int",
333321
},
322+
new MethodParameter()
323+
{
324+
ParameterName = "b",
325+
TypeName = "string",
326+
}
327+
],
334328
ReturnType = "string",
335329
});
336330

src/Compiler/Microsoft.AspNetCore.Razor.Language/test/Components/ComponentDocumentClassifierPassTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,6 @@ public void ComponentDocumentClassifierPass_SetsUpMainMethod()
148148

149149
Assert.Equal(ComponentsApi.ComponentBase.BuildRenderTree, methodNode.MethodName);
150150
Assert.Equal("void", methodNode.ReturnType);
151-
Assert.Equal(["protected", "override"], methodNode.Modifiers);
151+
Assert.Equal<string>(["protected", "override"], methodNode.Modifiers);
152152
}
153153
}

src/Compiler/Microsoft.AspNetCore.Razor.Language/test/Intermediate/DocumentIntermediateNodeExtensionsTest.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@ public void FindPrimaryMethod_FindsMethodWithAnnotation()
2929
{
3030
// Arrange
3131
var document = new DocumentIntermediateNode();
32-
var method = new MethodDeclarationIntermediateNode
33-
{
34-
IsPrimaryMethod = true
35-
};
32+
var method = new MethodDeclarationIntermediateNode(isPrimaryMethod: true);
3633

3734
var builder = IntermediateNodeBuilder.Create(document);
3835
builder.Add(method);

src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/Language/CodeGeneration/DefaultDocumentWriter.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,18 @@ public override void VisitMethodDeclaration(MethodDeclarationIntermediateNode no
153153

154154
codeWriter.WriteLine("#pragma warning disable 1998");
155155

156-
for (var i = 0; i < node.Modifiers.Count; i++)
156+
foreach (var modifier in node.Modifiers)
157157
{
158-
codeWriter.Write($"{node.Modifiers[i]} ");
158+
codeWriter.Write($"{modifier} ");
159159
}
160160

161161
codeWriter.Write($"{node.ReturnType} ");
162162
codeWriter.Write($"{node.MethodName}(");
163163

164164
var isFirst = true;
165165

166-
for (var i = 0; i < node.Parameters.Count; i++)
166+
foreach (var parameter in node.Parameters)
167167
{
168-
var parameter = node.Parameters[i];
169-
170168
if (isFirst)
171169
{
172170
isFirst = false;

0 commit comments

Comments
 (0)