Skip to content

Commit 237ea8e

Browse files
committed
Generate blank lines to improve code style
1 parent 510d949 commit 237ea8e

File tree

53 files changed

+274
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+274
-14
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved.
2+
// Licensed under the MIT License. See LICENSE in the project root for license information.
3+
4+
namespace StyleCop.Analyzers.CodeGeneration
5+
{
6+
using System;
7+
using Microsoft.CodeAnalysis;
8+
using Microsoft.CodeAnalysis.CSharp;
9+
10+
internal static class GeneratorSyntaxExtensions
11+
{
12+
public static TSyntax WithLeadingBlankLine<TSyntax>(this TSyntax syntax)
13+
where TSyntax : SyntaxNode
14+
{
15+
return syntax.WithLeadingTrivia(SyntaxFactory.TriviaList(
16+
SyntaxFactory.PreprocessingMessage(Environment.NewLine)));
17+
}
18+
}
19+
}

StyleCop.Analyzers/StyleCop.Analyzers.CodeGeneration/SyntaxLightupGenerator.cs

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
8585
type: SyntaxFactory.IdentifierName("Type"),
8686
variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator("WrappedType")))));
8787

88+
bool first = true;
8889
foreach (var field in nodeData.Fields)
8990
{
9091
if (field.IsSkipped)
@@ -99,7 +100,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
99100
}
100101

101102
// private static readonly Func<CSharpSyntaxNode, T> FieldAccessor;
102-
members = members.Add(SyntaxFactory.FieldDeclaration(
103+
FieldDeclarationSyntax fieldAccessor = SyntaxFactory.FieldDeclaration(
103104
attributeLists: default,
104105
modifiers: SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PrivateKeyword), SyntaxFactory.Token(SyntaxKind.StaticKeyword), SyntaxFactory.Token(SyntaxKind.ReadOnlyKeyword)),
105106
declaration: SyntaxFactory.VariableDeclaration(
@@ -111,7 +112,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
111112
SyntaxFactory.IdentifierName(concreteBase),
112113
SyntaxFactory.ParseTypeName(field.GetAccessorResultType(syntaxData)),
113114
}))),
114-
variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator(field.AccessorName)))));
115+
variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator(field.AccessorName))));
116+
117+
if (first)
118+
{
119+
fieldAccessor = fieldAccessor.WithLeadingBlankLine();
120+
first = false;
121+
}
122+
123+
members = members.Add(fieldAccessor);
115124
}
116125

117126
foreach (var field in nodeData.Fields)
@@ -144,7 +153,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
144153
modifiers: SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PrivateKeyword), SyntaxFactory.Token(SyntaxKind.ReadOnlyKeyword)),
145154
declaration: SyntaxFactory.VariableDeclaration(
146155
type: SyntaxFactory.IdentifierName(concreteBase),
147-
variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator("node")))));
156+
variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator("node")))).WithLeadingBlankLine());
148157

149158
// WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(SyntaxWrapper));
150159
var staticCtorStatements = SyntaxFactory.SingletonList<StatementSyntax>(
@@ -284,7 +293,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
284293
parameterList: SyntaxFactory.ParameterList(),
285294
initializer: null,
286295
body: SyntaxFactory.Block(staticCtorStatements),
287-
expressionBody: null));
296+
expressionBody: null).WithLeadingBlankLine());
288297

289298
// private SyntaxNodeWrapper(SyntaxNode node)
290299
// {
@@ -333,6 +342,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
333342
// return ...;
334343
// }
335344
// }
345+
first = true;
336346
foreach (var field in nodeData.Fields)
337347
{
338348
if (field.IsSkipped)
@@ -426,7 +436,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
426436
// return ...;
427437
// }
428438
// }
429-
members = members.Add(SyntaxFactory.PropertyDeclaration(
439+
PropertyDeclarationSyntax property = SyntaxFactory.PropertyDeclaration(
430440
attributeLists: default,
431441
modifiers: SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword)),
432442
type: propertyType,
@@ -438,7 +448,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
438448
SyntaxFactory.ReturnStatement(returnExpression))))),
439449
expressionBody: null,
440450
initializer: null,
441-
semicolonToken: default));
451+
semicolonToken: default);
452+
453+
if (first)
454+
{
455+
property = property.WithLeadingBlankLine();
456+
first = false;
457+
}
458+
459+
members = members.Add(property);
442460
}
443461

444462
for (var baseNode = syntaxData.TryGetNode(nodeData.BaseName); baseNode?.WrapperName is not null; baseNode = syntaxData.TryGetNode(baseNode.BaseName))
@@ -447,7 +465,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
447465
// {
448466
// return (SyntaxWrapper)node.SyntaxNode;
449467
// }
450-
members = members.Add(SyntaxFactory.ConversionOperatorDeclaration(
468+
ConversionOperatorDeclarationSyntax wrapperConversion = SyntaxFactory.ConversionOperatorDeclaration(
451469
attributeLists: default,
452470
modifiers: SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword), SyntaxFactory.Token(SyntaxKind.StaticKeyword)),
453471
implicitOrExplicitKeyword: SyntaxFactory.Token(SyntaxKind.ExplicitKeyword),
@@ -467,7 +485,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
467485
expression: SyntaxFactory.IdentifierName("node"),
468486
name: SyntaxFactory.IdentifierName("SyntaxNode"))))),
469487
expressionBody: null,
470-
semicolonToken: default));
488+
semicolonToken: default);
489+
490+
if (first)
491+
{
492+
wrapperConversion = wrapperConversion.WithLeadingBlankLine();
493+
first = false;
494+
}
495+
496+
members = members.Add(wrapperConversion);
471497
}
472498

473499
// public static explicit operator WhenClauseSyntaxWrapper(SyntaxNode node)
@@ -484,7 +510,7 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
484510
//
485511
// return new WhenClauseSyntaxWrapper((CSharpSyntaxNode)node);
486512
// }
487-
members = members.Add(SyntaxFactory.ConversionOperatorDeclaration(
513+
var nodeConversion = SyntaxFactory.ConversionOperatorDeclaration(
488514
attributeLists: default,
489515
modifiers: SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword), SyntaxFactory.Token(SyntaxKind.StaticKeyword)),
490516
implicitOrExplicitKeyword: SyntaxFactory.Token(SyntaxKind.ExplicitKeyword),
@@ -556,7 +582,15 @@ private void GenerateSyntaxWrapper(in GeneratorExecutionContext context, SyntaxD
556582
expression: SyntaxFactory.IdentifierName("node"))))),
557583
initializer: null))),
558584
expressionBody: null,
559-
semicolonToken: default));
585+
semicolonToken: default);
586+
587+
if (first)
588+
{
589+
nodeConversion = nodeConversion.WithLeadingBlankLine();
590+
first = false;
591+
}
592+
593+
members = members.Add(nodeConversion);
560594

561595
for (var baseNode = syntaxData.TryGetNode(nodeData.BaseName); baseNode?.WrapperName is not null; baseNode = syntaxData.TryGetNode(baseNode.BaseName))
562596
{
@@ -827,6 +861,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
827861
SyntaxFactory.IdentifierName("Type"),
828862
})))))))))));
829863

864+
bool first = true;
830865
foreach (var node in wrapperTypes.OrderBy(node => node.Name, StringComparer.OrdinalIgnoreCase))
831866
{
832867
if (node.WrapperName is null)
@@ -890,7 +925,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
890925
}
891926

892927
// builder.Add(typeof(ConstantPatternSyntaxWrapper), csharpCodeAnalysisAssembly.GetType(ConstantPatternSyntaxWrapper.WrappedTypeName));
893-
staticCtorStatements = staticCtorStatements.Add(SyntaxFactory.ExpressionStatement(
928+
ExpressionStatementSyntax statement = SyntaxFactory.ExpressionStatement(
894929
SyntaxFactory.InvocationExpression(
895930
expression: SyntaxFactory.MemberAccessExpression(
896931
SyntaxKind.SimpleMemberAccessExpression,
@@ -912,7 +947,15 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
912947
SyntaxKind.SimpleMemberAccessExpression,
913948
expression: SyntaxFactory.IdentifierName(node.WrapperName),
914949
name: SyntaxFactory.IdentifierName("WrappedTypeName"))))))),
915-
})))));
950+
}))));
951+
952+
if (first)
953+
{
954+
statement = statement.WithLeadingBlankLine();
955+
first = false;
956+
}
957+
958+
staticCtorStatements = staticCtorStatements.Add(statement);
916959
}
917960

918961
// WrappedTypes = builder.ToImmutable();
@@ -924,7 +967,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
924967
SyntaxFactory.MemberAccessExpression(
925968
SyntaxKind.SimpleMemberAccessExpression,
926969
expression: SyntaxFactory.IdentifierName("builder"),
927-
name: SyntaxFactory.IdentifierName("ToImmutable"))))));
970+
name: SyntaxFactory.IdentifierName("ToImmutable"))))).WithLeadingBlankLine());
928971

929972
var staticCtor = SyntaxFactory.ConstructorDeclaration(
930973
attributeLists: default,
@@ -933,7 +976,7 @@ private void GenerateSyntaxWrapperHelper(in GeneratorExecutionContext context, I
933976
parameterList: SyntaxFactory.ParameterList(),
934977
initializer: null,
935978
body: SyntaxFactory.Block(staticCtorStatements),
936-
expressionBody: null);
979+
expressionBody: null).WithLeadingBlankLine();
937980

938981
// /// <summary>
939982
// /// Gets the type that is wrapped by the given wrapper.

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/BaseObjectCreationExpressionSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.BaseObjectCreationExpressionSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<ExpressionSyntax, SyntaxToken> NewKeywordAccessor;
1718
private static readonly Func<ExpressionSyntax, ArgumentListSyntax> ArgumentListAccessor;
1819
private static readonly Func<ExpressionSyntax, InitializerExpressionSyntax> InitializerAccessor;
1920
private static readonly Func<ExpressionSyntax, SyntaxToken, ExpressionSyntax> WithNewKeywordAccessor;
2021
private static readonly Func<ExpressionSyntax, ArgumentListSyntax, ExpressionSyntax> WithArgumentListAccessor;
2122
private static readonly Func<ExpressionSyntax, InitializerExpressionSyntax, ExpressionSyntax> WithInitializerAccessor;
23+
2224
private readonly ExpressionSyntax node;
25+
2326
static BaseObjectCreationExpressionSyntaxWrapper()
2427
{
2528
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(BaseObjectCreationExpressionSyntaxWrapper));
@@ -37,6 +40,7 @@ private BaseObjectCreationExpressionSyntaxWrapper(ExpressionSyntax node)
3740
}
3841

3942
public ExpressionSyntax SyntaxNode => this.node;
43+
4044
public SyntaxToken NewKeyword
4145
{
4246
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/BaseParameterSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<CSharpSyntaxNode, SyntaxList<AttributeListSyntax>> AttributeListsAccessor;
1718
private static readonly Func<CSharpSyntaxNode, SyntaxTokenList> ModifiersAccessor;
1819
private static readonly Func<CSharpSyntaxNode, TypeSyntax> TypeAccessor;
1920
private static readonly Func<CSharpSyntaxNode, SyntaxList<AttributeListSyntax>, CSharpSyntaxNode> WithAttributeListsAccessor;
2021
private static readonly Func<CSharpSyntaxNode, SyntaxTokenList, CSharpSyntaxNode> WithModifiersAccessor;
2122
private static readonly Func<CSharpSyntaxNode, TypeSyntax, CSharpSyntaxNode> WithTypeAccessor;
23+
2224
private readonly CSharpSyntaxNode node;
25+
2326
static BaseParameterSyntaxWrapper()
2427
{
2528
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(BaseParameterSyntaxWrapper));
@@ -37,6 +40,7 @@ private BaseParameterSyntaxWrapper(CSharpSyntaxNode node)
3740
}
3841

3942
public CSharpSyntaxNode SyntaxNode => this.node;
43+
4044
public SyntaxList<AttributeListSyntax> AttributeLists
4145
{
4246
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/BinaryPatternSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.BinaryPatternSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<CSharpSyntaxNode, CSharpSyntaxNode> LeftAccessor;
1718
private static readonly Func<CSharpSyntaxNode, SyntaxToken> OperatorTokenAccessor;
1819
private static readonly Func<CSharpSyntaxNode, CSharpSyntaxNode> RightAccessor;
1920
private static readonly Func<CSharpSyntaxNode, CSharpSyntaxNode, CSharpSyntaxNode> WithLeftAccessor;
2021
private static readonly Func<CSharpSyntaxNode, SyntaxToken, CSharpSyntaxNode> WithOperatorTokenAccessor;
2122
private static readonly Func<CSharpSyntaxNode, CSharpSyntaxNode, CSharpSyntaxNode> WithRightAccessor;
23+
2224
private readonly CSharpSyntaxNode node;
25+
2326
static BinaryPatternSyntaxWrapper()
2427
{
2528
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(BinaryPatternSyntaxWrapper));
@@ -37,6 +40,7 @@ private BinaryPatternSyntaxWrapper(CSharpSyntaxNode node)
3740
}
3841

3942
public CSharpSyntaxNode SyntaxNode => this.node;
43+
4044
public PatternSyntaxWrapper Left
4145
{
4246
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/CasePatternSwitchLabelSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.CasePatternSwitchLabelSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<SwitchLabelSyntax, CSharpSyntaxNode> PatternAccessor;
1718
private static readonly Func<SwitchLabelSyntax, CSharpSyntaxNode> WhenClauseAccessor;
1819
private static readonly Func<SwitchLabelSyntax, SyntaxToken, SwitchLabelSyntax> WithKeywordAccessor;
1920
private static readonly Func<SwitchLabelSyntax, CSharpSyntaxNode, SwitchLabelSyntax> WithPatternAccessor;
2021
private static readonly Func<SwitchLabelSyntax, CSharpSyntaxNode, SwitchLabelSyntax> WithWhenClauseAccessor;
2122
private static readonly Func<SwitchLabelSyntax, SyntaxToken, SwitchLabelSyntax> WithColonTokenAccessor;
23+
2224
private readonly SwitchLabelSyntax node;
25+
2326
static CasePatternSwitchLabelSyntaxWrapper()
2427
{
2528
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(CasePatternSwitchLabelSyntaxWrapper));
@@ -37,6 +40,7 @@ private CasePatternSwitchLabelSyntaxWrapper(SwitchLabelSyntax node)
3740
}
3841

3942
public SwitchLabelSyntax SyntaxNode => this.node;
43+
4044
public SyntaxToken Keyword
4145
{
4246
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/CommonForEachStatementSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.CommonForEachStatementSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<StatementSyntax, SyntaxToken> AwaitKeywordAccessor;
1718
private static readonly Func<StatementSyntax, SyntaxToken> ForEachKeywordAccessor;
1819
private static readonly Func<StatementSyntax, SyntaxToken> OpenParenTokenAccessor;
@@ -27,7 +28,9 @@ namespace StyleCop.Analyzers.Lightup
2728
private static readonly Func<StatementSyntax, ExpressionSyntax, StatementSyntax> WithExpressionAccessor;
2829
private static readonly Func<StatementSyntax, SyntaxToken, StatementSyntax> WithCloseParenTokenAccessor;
2930
private static readonly Func<StatementSyntax, StatementSyntax, StatementSyntax> WithStatementAccessor;
31+
3032
private readonly StatementSyntax node;
33+
3134
static CommonForEachStatementSyntaxWrapper()
3235
{
3336
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(CommonForEachStatementSyntaxWrapper));
@@ -53,6 +56,7 @@ private CommonForEachStatementSyntaxWrapper(StatementSyntax node)
5356
}
5457

5558
public StatementSyntax SyntaxNode => this.node;
59+
5660
public SyntaxToken AwaitKeyword
5761
{
5862
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/ConstantPatternSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.ConstantPatternSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<CSharpSyntaxNode, ExpressionSyntax> ExpressionAccessor;
1718
private static readonly Func<CSharpSyntaxNode, ExpressionSyntax, CSharpSyntaxNode> WithExpressionAccessor;
19+
1820
private readonly CSharpSyntaxNode node;
21+
1922
static ConstantPatternSyntaxWrapper()
2023
{
2124
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(ConstantPatternSyntaxWrapper));
@@ -29,6 +32,7 @@ private ConstantPatternSyntaxWrapper(CSharpSyntaxNode node)
2932
}
3033

3134
public CSharpSyntaxNode SyntaxNode => this.node;
35+
3236
public ExpressionSyntax Expression
3337
{
3438
get

StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.SyntaxLightupGenerator/DeclarationExpressionSyntaxWrapper.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@ namespace StyleCop.Analyzers.Lightup
1313
{
1414
internal const string WrappedTypeName = "Microsoft.CodeAnalysis.CSharp.Syntax.DeclarationExpressionSyntax";
1515
private static readonly Type WrappedType;
16+
1617
private static readonly Func<ExpressionSyntax, TypeSyntax> TypeAccessor;
1718
private static readonly Func<ExpressionSyntax, CSharpSyntaxNode> DesignationAccessor;
1819
private static readonly Func<ExpressionSyntax, TypeSyntax, ExpressionSyntax> WithTypeAccessor;
1920
private static readonly Func<ExpressionSyntax, CSharpSyntaxNode, ExpressionSyntax> WithDesignationAccessor;
21+
2022
private readonly ExpressionSyntax node;
23+
2124
static DeclarationExpressionSyntaxWrapper()
2225
{
2326
WrappedType = SyntaxWrapperHelper.GetWrappedType(typeof(DeclarationExpressionSyntaxWrapper));
@@ -33,6 +36,7 @@ private DeclarationExpressionSyntaxWrapper(ExpressionSyntax node)
3336
}
3437

3538
public ExpressionSyntax SyntaxNode => this.node;
39+
3640
public TypeSyntax Type
3741
{
3842
get

0 commit comments

Comments
 (0)