Skip to content

Commit 05dfb7e

Browse files
authored
Prefix type names with global and use static TypeSyntax and NameSyntax instead of Parse(Type)Name (#90339)
* Prefix type names with global and use static TypeSyntax and NameSyntax instead of Parse(Type)Name
1 parent 13337d8 commit 05dfb7e

33 files changed

+263
-122
lines changed

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Analyzers/AddMarshalAsToElementFixer.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

4-
using System;
5-
using System.Collections.Generic;
64
using System.Collections.Immutable;
75
using System.Composition;
8-
using System.Runtime.InteropServices;
9-
using System.Text;
106
using System.Threading.Tasks;
117
using Microsoft.CodeAnalysis;
128
using Microsoft.CodeAnalysis.CodeActions;

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Analyzers/ConvertComImportToGeneratedComInterfaceAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public override void Initialize(AnalysisContext context)
4646
context.Compilation,
4747
targetFramework.TargetFramework,
4848
targetFramework.Version,
49-
context.Compilation.SourceModule.GetAttributes().Any(attr => attr.AttributeClass.ToDisplayString() == TypeNames.System_Runtime_CompilerServices_SkipLocalsInitAttribute_Metadata));
49+
context.Compilation.SourceModule.GetAttributes().Any(attr => attr.AttributeClass.ToDisplayString() == TypeNames.System_Runtime_CompilerServices_SkipLocalsInitAttribute));
5050

5151
context.RegisterSymbolAction(context =>
5252
{

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComClassGenerator.cs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
104104

105105
private static readonly AttributeSyntax s_comExposedClassAttributeTemplate =
106106
Attribute(
107-
GenericName(TypeNames.ComExposedClassAttribute)
107+
GenericName(TypeNames.GlobalAlias + TypeNames.ComExposedClassAttribute)
108108
.AddTypeArgumentListArguments(
109109
IdentifierName(ClassInfoTypeName)));
110110
private static MemberDeclarationSyntax GenerateClassInfoAttributeOnUserType(ContainingSyntaxContext containingSyntaxContext, ContainingSyntax classSyntax) =>
@@ -124,12 +124,11 @@ private static ClassDeclarationSyntax GenerateClassInfoType(ImmutableArray<strin
124124
Token(SyntaxKind.FileKeyword),
125125
Token(SyntaxKind.SealedKeyword),
126126
Token(SyntaxKind.UnsafeKeyword))
127-
.AddBaseListTypes(SimpleBaseType(ParseTypeName(TypeNames.IComExposedClass)))
127+
.AddBaseListTypes(SimpleBaseType(TypeSyntaxes.IComExposedClass))
128128
.AddMembers(
129129
FieldDeclaration(
130130
VariableDeclaration(
131-
PointerType(
132-
ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry)),
131+
PointerType(TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry),
133132
SingletonSeparatedList(VariableDeclarator(vtablesField))))
134133
.AddModifiers(
135134
Token(SyntaxKind.PrivateKeyword),
@@ -140,31 +139,29 @@ private static ClassDeclarationSyntax GenerateClassInfoType(ImmutableArray<strin
140139
// ComInterfaceEntry* vtables = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(<ClassInfoTypeName>), sizeof(ComInterfaceEntry) * <numInterfaces>);
141140
LocalDeclarationStatement(
142141
VariableDeclaration(
143-
PointerType(
144-
ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry)),
142+
PointerType(TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry),
145143
SingletonSeparatedList(
146144
VariableDeclarator(vtablesLocal)
147145
.WithInitializer(EqualsValueClause(
148146
CastExpression(
149-
PointerType(
150-
ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry)),
147+
PointerType(TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry),
151148
InvocationExpression(
152149
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
153-
ParseTypeName(TypeNames.System_Runtime_CompilerServices_RuntimeHelpers),
150+
TypeSyntaxes.System_Runtime_CompilerServices_RuntimeHelpers,
154151
IdentifierName("AllocateTypeAssociatedMemory")))
155152
.AddArgumentListArguments(
156153
Argument(TypeOfExpression(IdentifierName(ClassInfoTypeName))),
157154
Argument(
158155
BinaryExpression(
159156
SyntaxKind.MultiplyExpression,
160-
SizeOfExpression(ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry)),
157+
SizeOfExpression(TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry),
161158
LiteralExpression(
162159
SyntaxKind.NumericLiteralExpression,
163160
Literal(implementedInterfaces.Length))))))))))),
164161
// IIUnknownDerivedDetails details;
165162
LocalDeclarationStatement(
166163
VariableDeclaration(
167-
ParseTypeName(TypeNames.IIUnknownDerivedDetails),
164+
TypeSyntaxes.IIUnknownDerivedDetails,
168165
SingletonSeparatedList(
169166
VariableDeclarator(detailsTempLocal))))
170167
};
@@ -180,7 +177,7 @@ private static ClassDeclarationSyntax GenerateClassInfoType(ImmutableArray<strin
180177
InvocationExpression(
181178
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
182179
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
183-
ParseTypeName(TypeNames.StrategyBasedComWrappers),
180+
TypeSyntaxes.StrategyBasedComWrappers,
184181
IdentifierName("DefaultIUnknownInterfaceDetailsStrategy")),
185182
IdentifierName("GetIUnknownDerivedDetails")),
186183
ArgumentList(
@@ -253,7 +250,7 @@ private static ClassDeclarationSyntax GenerateClassInfoType(ImmutableArray<strin
253250
// { body }
254251
MethodDeclaration(
255252
PointerType(
256-
ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry)),
253+
TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceEntry),
257254
"GetComInterfaceEntries")
258255
.AddParameterListParameters(
259256
Parameter(Identifier(countIdentifier))

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,13 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
193193

194194
context.RegisterSourceOutput(filesToGenerate, (context, data) =>
195195
{
196-
context.AddSource(data.TypeName.Replace("global::", ""), data.Source);
196+
context.AddSource(data.TypeName.Replace(TypeNames.GlobalAlias, ""), data.Source);
197197
});
198198
}
199199

200200
private static readonly AttributeSyntax s_iUnknownDerivedAttributeTemplate =
201201
Attribute(
202-
GenericName(TypeNames.IUnknownDerivedAttribute)
202+
GenericName(TypeNames.GlobalAlias + TypeNames.IUnknownDerivedAttribute)
203203
.AddTypeArgumentListArguments(
204204
IdentifierName("InterfaceInformation"),
205205
IdentifierName("InterfaceImplementation")));
@@ -452,7 +452,7 @@ private static InterfaceDeclarationSyntax GenerateImplementationInterface(ComInt
452452
.Select(ctx => ctx.Stub.Node)
453453
.Concat(shadowImplementations)
454454
.Concat(inheritedStubs)))
455-
.AddAttributeLists(AttributeList(SingletonSeparatedList(Attribute(ParseName(TypeNames.System_Runtime_InteropServices_DynamicInterfaceCastableImplementationAttribute)))));
455+
.AddAttributeLists(AttributeList(SingletonSeparatedList(Attribute(NameSyntaxes.System_Runtime_InteropServices_DynamicInterfaceCastableImplementationAttribute))));
456456
}
457457

458458
private static InterfaceDeclarationSyntax GenerateImplementationVTableMethods(ComInterfaceAndMethodsContext comInterfaceAndMethods, CancellationToken _)
@@ -496,7 +496,7 @@ private static InterfaceDeclarationSyntax GenerateImplementationVTable(ComInterf
496496
CastExpression(VoidStarStarSyntax,
497497
InvocationExpression(
498498
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
499-
ParseTypeName(TypeNames.System_Runtime_CompilerServices_RuntimeHelpers),
499+
TypeSyntaxes.System_Runtime_CompilerServices_RuntimeHelpers,
500500
IdentifierName("AllocateTypeAssociatedMemory")))
501501
.AddArgumentListArguments(
502502
Argument(TypeOfExpression(interfaceType.Syntax)),
@@ -525,7 +525,7 @@ private static InterfaceDeclarationSyntax GenerateImplementationVTable(ComInterf
525525
ExpressionStatement(
526526
InvocationExpression(
527527
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
528-
ParseTypeName(TypeNames.System_Runtime_InteropServices_ComWrappers),
528+
TypeSyntaxes.System_Runtime_InteropServices_ComWrappers,
529529
IdentifierName("GetIUnknownImpl")))
530530
.AddArgumentListArguments(
531531
Argument(IdentifierName("v0"))
@@ -586,7 +586,7 @@ private static InterfaceDeclarationSyntax GenerateImplementationVTable(ComInterf
586586
InvocationExpression(
587587
MemberAccessExpression(
588588
SyntaxKind.SimpleMemberAccessExpression,
589-
ParseTypeName(TypeNames.System_Runtime_InteropServices_NativeMemory),
589+
TypeSyntaxes.System_Runtime_InteropServices_NativeMemory,
590590
IdentifierName("Copy")))
591591
.WithArgumentList(
592592
ArgumentList(
@@ -601,7 +601,7 @@ private static InterfaceDeclarationSyntax GenerateImplementationVTable(ComInterf
601601
SyntaxKind.SimpleMemberAccessExpression,
602602
MemberAccessExpression(
603603
SyntaxKind.SimpleMemberAccessExpression,
604-
ParseTypeName(TypeNames.StrategyBasedComWrappers),
604+
TypeSyntaxes.StrategyBasedComWrappers,
605605
IdentifierName("DefaultIUnknownInterfaceDetailsStrategy")),
606606
IdentifierName("GetIUnknownDerivedDetails")))
607607
.WithArgumentList(
@@ -643,14 +643,14 @@ private static InterfaceDeclarationSyntax GenerateImplementationVTable(ComInterf
643643
private static readonly ClassDeclarationSyntax InterfaceInformationTypeTemplate =
644644
ClassDeclaration("InterfaceInformation")
645645
.AddModifiers(Token(SyntaxKind.FileKeyword), Token(SyntaxKind.UnsafeKeyword))
646-
.AddBaseListTypes(SimpleBaseType(ParseTypeName(TypeNames.IIUnknownInterfaceType)));
646+
.AddBaseListTypes(SimpleBaseType(TypeSyntaxes.IIUnknownInterfaceType));
647647

648648
private static ClassDeclarationSyntax GenerateInterfaceInformation(ComInterfaceInfo context, CancellationToken _)
649649
{
650650
ClassDeclarationSyntax interfaceInformationType = InterfaceInformationTypeTemplate
651651
.AddMembers(
652652
// public static System.Guid Iid { get; } = new(<embeddedDataBlob>);
653-
PropertyDeclaration(ParseTypeName(TypeNames.System_Guid), "Iid")
653+
PropertyDeclaration(TypeSyntaxes.System_Guid, "Iid")
654654
.AddModifiers(Token(SyntaxKind.PublicKeyword), Token(SyntaxKind.StaticKeyword))
655655
.AddAccessorListAccessors(
656656
AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(Token(SyntaxKind.SemicolonToken)))

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private static bool StringMarshallingIsValid(
123123
stringMarshallingDiagnostic = DiagnosticInfo.Create(
124124
GeneratorDiagnostics.StringMarshallingCustomTypeNotAccessibleByGeneratedCode,
125125
syntax.Identifier.GetLocation(),
126-
attrInfo.StringMarshallingCustomType.FullTypeName.Replace("global::", ""),
126+
attrInfo.StringMarshallingCustomType.FullTypeName.Replace(TypeNames.GlobalAlias, ""),
127127
details);
128128
return false;
129129
}

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComMethodContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ private MethodDeclarationSyntax CreateUnreachableExceptionStub()
114114
.WithExpressionBody(ArrowExpressionClause(
115115
ThrowExpression(
116116
ObjectCreationExpression(
117-
ParseTypeName(TypeNames.UnreachableException))
117+
TypeSyntaxes.UnreachableException)
118118
.WithArgumentList(ArgumentList()))));
119119
}
120120

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public BlockSyntax GenerateStubBody(int index, ImmutableArray<FunctionPointerUnm
115115
SyntaxKind.SimpleMemberAccessExpression,
116116
ParenthesizedExpression(
117117
CastExpression(
118-
ParseTypeName(TypeNames.IUnmanagedVirtualMethodTableProvider),
118+
TypeSyntaxes.IUnmanagedVirtualMethodTableProvider,
119119
ThisExpression())),
120120
IdentifierName("GetVirtualMethodTableInfoForKey") ))
121121
.WithArgumentList(
@@ -189,7 +189,7 @@ public BlockSyntax GenerateStubBody(int index, ImmutableArray<FunctionPointerUnm
189189
ExpressionStatement(
190190
InvocationExpression(
191191
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
192-
ParseTypeName(TypeNames.System_GC),
192+
TypeSyntaxes.System_GC,
193193
IdentifierName("KeepAlive")),
194194
ArgumentList(SingletonSeparatedList(Argument(ThisExpression()))))));
195195

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private sealed class Marshaller : IMarshallingGenerator
2929
{
3030
public ManagedTypeInfo AsNativeType(TypePositionInfo info) =>
3131
new PointerTypeInfo(
32-
$"{TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceDispatch}*",
32+
$"{TypeNames.GlobalAlias + TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceDispatch}*",
3333
$"{TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceDispatch}*",
3434
IsFunctionPointer: false);
3535
public IEnumerable<StatementSyntax> Generate(TypePositionInfo info, StubCodeContext context)
@@ -47,7 +47,7 @@ public IEnumerable<StatementSyntax> Generate(TypePositionInfo info, StubCodeCont
4747
IdentifierName(managed),
4848
InvocationExpression(
4949
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
50-
ParseName(TypeNames.System_Runtime_InteropServices_ComWrappers_ComInterfaceDispatch),
50+
TypeSyntaxes.System_Runtime_InteropServices_ComWrappers_ComInterfaceDispatch,
5151
GenericName(
5252
Identifier("GetInstance"),
5353
TypeArgumentList(SingletonSeparatedList(info.ManagedType.Syntax)))),

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ManagedHResultExceptionMarshallerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public IEnumerable<StatementSyntax> Generate(TypePositionInfo info, StubCodeCont
6262
yield return ExpressionStatement(
6363
InvocationExpression(
6464
MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
65-
ParseName(TypeNames.System_Runtime_InteropServices_Marshal),
65+
TypeSyntaxes.System_Runtime_InteropServices_Marshal,
6666
IdentifierName("ThrowExceptionForHR")),
6767
ArgumentList(
6868
SingletonSeparatedList(Argument(IdentifierName(managedIdentifier))))));

src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public IEnumerable<StatementSyntax> Generate(TypePositionInfo info, StubCodeCont
4747
InvocationExpression(
4848
MemberAccessExpression(
4949
SyntaxKind.SimpleMemberAccessExpression,
50-
ParseTypeName(TypeNames.UnmanagedObjectUnwrapper),
50+
TypeSyntaxes.UnmanagedObjectUnwrapper,
5151
GenericName(Identifier("GetObjectForUnmanagedWrapper"))
5252
.WithTypeArgumentList(
5353
TypeArgumentList(

0 commit comments

Comments
 (0)