From 1788edeb3ccf685a4d7cffc66bfc51134c1c5ce1 Mon Sep 17 00:00:00 2001 From: Pavel Mikula <57188685+pavel-mikula-sonarsource@users.noreply.github.com> Date: Tue, 24 Aug 2021 10:03:30 +0200 Subject: [PATCH 1/2] Fix ignored Namespace attribute in OperationLightupGenerator Most of the wrapped `IOperation`s are in `Microsoft.CodeAnalysis.Operations` namespace and there are 6 more of them in `FlowAnalysis` namespace: ``` Microsoft.CodeAnalysis.FlowAnalysis.ICaughtExceptionOperation Microsoft.CodeAnalysis.FlowAnalysis.IFlowAnonymousFunctionOperation Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureOperation Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureReferenceOperation Microsoft.CodeAnalysis.FlowAnalysis.IIsNullOperation Microsoft.CodeAnalysis.FlowAnalysis.IStaticLocalInitializationSemaphoreOperation ``` This alternation is already configured in the `OperationInterfaces.xml` file, but the `Namespace` attribute was ignored in the code. https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/a559b3e58af09387aadc1372a504f9208bce4909/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/OperationInterfaces.xml#L2542 --- .../OperationLightupGenerator.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.CodeGeneration/OperationLightupGenerator.cs b/StyleCop.Analyzers/StyleCop.Analyzers.CodeGeneration/OperationLightupGenerator.cs index 2c287c21f..786916138 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.CodeGeneration/OperationLightupGenerator.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers.CodeGeneration/OperationLightupGenerator.cs @@ -69,7 +69,7 @@ private void GenerateOperationInterface(in GeneratorExecutionContext context, In variables: SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator( identifier: SyntaxFactory.Identifier("WrappedTypeName"), argumentList: null, - initializer: SyntaxFactory.EqualsValueClause(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal("Microsoft.CodeAnalysis.Operations." + node.InterfaceName)))))))); + initializer: SyntaxFactory.EqualsValueClause(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal($"Microsoft.CodeAnalysis.{node.Namespace}.{node.InterfaceName}")))))))); // private static readonly Type WrappedType; members = members.Add(SyntaxFactory.FieldDeclaration( @@ -988,6 +988,7 @@ public InterfaceData(DocumentData documentData, XElement node, ImmutableArray<(s this.OperationKinds = operationKinds; this.InterfaceName = node.Attribute("Name").Value; + this.Namespace = node.Attribute("Namespace")?.Value ?? "Operations"; this.Name = this.InterfaceName.Substring("I".Length, this.InterfaceName.Length - "I".Length - "Operation".Length); this.WrapperName = this.InterfaceName + "Wrapper"; this.BaseInterfaceName = node.Attribute("Base").Value; @@ -999,6 +1000,8 @@ public InterfaceData(DocumentData documentData, XElement node, ImmutableArray<(s public string InterfaceName { get; } + public string Namespace { get; } + public string Name { get; } public string WrapperName { get; } From 6b7b40db1c09ddc125c31a652221477a45c5e5bc Mon Sep 17 00:00:00 2001 From: Pavel Mikula Date: Mon, 30 Aug 2021 11:26:07 +0200 Subject: [PATCH 2/2] Update generated files --- .../ICaughtExceptionOperationWrapper.g.cs | 2 +- .../IFlowAnonymousFunctionOperationWrapper.g.cs | 2 +- .../IFlowCaptureOperationWrapper.g.cs | 2 +- .../IFlowCaptureReferenceOperationWrapper.g.cs | 2 +- .../IIsNullOperationWrapper.g.cs | 2 +- .../IStaticLocalInitializationSemaphoreOperationWrapper.g.cs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/ICaughtExceptionOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/ICaughtExceptionOperationWrapper.g.cs index 3b06dc18b..0b277c7a2 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/ICaughtExceptionOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/ICaughtExceptionOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct ICaughtExceptionOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.ICaughtExceptionOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.ICaughtExceptionOperation"; private static readonly Type WrappedType; private readonly IOperation operation; static ICaughtExceptionOperationWrapper() diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowAnonymousFunctionOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowAnonymousFunctionOperationWrapper.g.cs index 294c8e3b3..6e2411efd 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowAnonymousFunctionOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowAnonymousFunctionOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct IFlowAnonymousFunctionOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.IFlowAnonymousFunctionOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.IFlowAnonymousFunctionOperation"; private static readonly Type WrappedType; private static readonly Func SymbolAccessor; private readonly IOperation operation; diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureOperationWrapper.g.cs index 87680906f..14562c7b7 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct IFlowCaptureOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.IFlowCaptureOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureOperation"; private static readonly Type WrappedType; private static readonly Func ValueAccessor; private readonly IOperation operation; diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureReferenceOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureReferenceOperationWrapper.g.cs index ad8157f82..89239497f 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureReferenceOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IFlowCaptureReferenceOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct IFlowCaptureReferenceOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.IFlowCaptureReferenceOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureReferenceOperation"; private static readonly Type WrappedType; private readonly IOperation operation; static IFlowCaptureReferenceOperationWrapper() diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IIsNullOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IIsNullOperationWrapper.g.cs index b3ab2d110..54ebef62e 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IIsNullOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IIsNullOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct IIsNullOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.IIsNullOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.IIsNullOperation"; private static readonly Type WrappedType; private static readonly Func OperandAccessor; private readonly IOperation operation; diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IStaticLocalInitializationSemaphoreOperationWrapper.g.cs b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IStaticLocalInitializationSemaphoreOperationWrapper.g.cs index 9a9203bbe..72567dfd3 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IStaticLocalInitializationSemaphoreOperationWrapper.g.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers/Lightup/.generated/StyleCop.Analyzers.CodeGeneration/StyleCop.Analyzers.CodeGeneration.OperationLightupGenerator/IStaticLocalInitializationSemaphoreOperationWrapper.g.cs @@ -9,7 +9,7 @@ namespace StyleCop.Analyzers.Lightup internal readonly struct IStaticLocalInitializationSemaphoreOperationWrapper : IOperationWrapper { - internal const string WrappedTypeName = "Microsoft.CodeAnalysis.Operations.IStaticLocalInitializationSemaphoreOperation"; + internal const string WrappedTypeName = "Microsoft.CodeAnalysis.FlowAnalysis.IStaticLocalInitializationSemaphoreOperation"; private static readonly Type WrappedType; private static readonly Func LocalAccessor; private readonly IOperation operation;