提交 d1152fe0 编写于 作者: M Manish Vasani

Manually fix and/or suppress IDE0052 (Remove unread private members) - Note...

Manually fix and/or suppress IDE0052 (Remove unread private members) - Note that this diagnostic ID has no associated code fix and needs manual fixes.
上级 11db2a01
......@@ -24,13 +24,10 @@ public partial class UseExplicitTypeTests : AbstractCSharpDiagnosticProviderBase
internal override (DiagnosticAnalyzer, CodeFixProvider) CreateDiagnosticProviderAndFixer(Workspace workspace)
=> (new CSharpUseExplicitTypeDiagnosticAnalyzer(), new UseExplicitTypeCodeFixProvider());
private readonly CodeStyleOption2<bool> onWithSilent = new CodeStyleOption2<bool>(true, NotificationOption2.Silent);
private readonly CodeStyleOption2<bool> offWithSilent = new CodeStyleOption2<bool>(false, NotificationOption2.Silent);
private readonly CodeStyleOption2<bool> onWithInfo = new CodeStyleOption2<bool>(true, NotificationOption2.Suggestion);
private readonly CodeStyleOption2<bool> offWithInfo = new CodeStyleOption2<bool>(false, NotificationOption2.Suggestion);
private readonly CodeStyleOption2<bool> onWithWarning = new CodeStyleOption2<bool>(true, NotificationOption2.Warning);
private readonly CodeStyleOption2<bool> offWithWarning = new CodeStyleOption2<bool>(false, NotificationOption2.Warning);
private readonly CodeStyleOption2<bool> onWithError = new CodeStyleOption2<bool>(true, NotificationOption2.Error);
private readonly CodeStyleOption2<bool> offWithError = new CodeStyleOption2<bool>(false, NotificationOption2.Error);
// specify all options explicitly to override defaults.
......
......@@ -26,13 +26,10 @@ internal override (DiagnosticAnalyzer, CodeFixProvider) CreateDiagnosticProvider
=> (new CSharpUseImplicitTypeDiagnosticAnalyzer(), new UseImplicitTypeCodeFixProvider());
private static readonly CodeStyleOption2<bool> onWithSilent = new CodeStyleOption2<bool>(true, NotificationOption2.Silent);
private static readonly CodeStyleOption2<bool> offWithSilent = new CodeStyleOption2<bool>(false, NotificationOption2.Silent);
private static readonly CodeStyleOption2<bool> onWithInfo = new CodeStyleOption2<bool>(true, NotificationOption2.Suggestion);
private static readonly CodeStyleOption2<bool> offWithInfo = new CodeStyleOption2<bool>(false, NotificationOption2.Suggestion);
private static readonly CodeStyleOption2<bool> onWithWarning = new CodeStyleOption2<bool>(true, NotificationOption2.Warning);
private static readonly CodeStyleOption2<bool> offWithWarning = new CodeStyleOption2<bool>(false, NotificationOption2.Warning);
private static readonly CodeStyleOption2<bool> onWithError = new CodeStyleOption2<bool>(true, NotificationOption2.Error);
private static readonly CodeStyleOption2<bool> offWithError = new CodeStyleOption2<bool>(false, NotificationOption2.Error);
// specify all options explicitly to override defaults.
internal IOptionsCollection ImplicitTypeEverywhere() => OptionsSet(
......
......@@ -38,8 +38,6 @@ internal abstract class AbstractCodeStyleDiagnosticAnalyzer : DiagnosticAnalyzer
protected readonly LocalizableString _localizableTitle;
protected readonly LocalizableString _localizableMessageFormat;
private readonly bool _configurable;
protected AbstractCodeStyleDiagnosticAnalyzer(
string descriptorId, LocalizableString title,
LocalizableString? messageFormat = null,
......@@ -48,11 +46,10 @@ internal abstract class AbstractCodeStyleDiagnosticAnalyzer : DiagnosticAnalyzer
DescriptorId = descriptorId;
_localizableTitle = title;
_localizableMessageFormat = messageFormat ?? title;
_configurable = configurable;
Descriptor = CreateDescriptorWithId(DescriptorId, _localizableTitle, _localizableMessageFormat);
UnnecessaryWithSuggestionDescriptor = CreateUnnecessaryDescriptor(DescriptorId);
UnnecessaryWithoutSuggestionDescriptor = CreateUnnecessaryDescriptor(descriptorId + "WithoutSuggestion");
Descriptor = CreateDescriptorWithId(DescriptorId, _localizableTitle, _localizableMessageFormat, isConfigurable: configurable);
UnnecessaryWithSuggestionDescriptor = CreateUnnecessaryDescriptor(DescriptorId, configurable);
UnnecessaryWithoutSuggestionDescriptor = CreateUnnecessaryDescriptor(descriptorId + "WithoutSuggestion", configurable);
SupportedDiagnostics = ImmutableArray.Create(
Descriptor, UnnecessaryWithoutSuggestionDescriptor, UnnecessaryWithSuggestionDescriptor);
......@@ -67,10 +64,11 @@ protected AbstractCodeStyleDiagnosticAnalyzer(ImmutableArray<DiagnosticDescripto
_localizableMessageFormat = Descriptor.MessageFormat;
}
protected DiagnosticDescriptor CreateUnnecessaryDescriptor(string descriptorId)
protected DiagnosticDescriptor CreateUnnecessaryDescriptor(string descriptorId, bool isConfigurable = true)
=> CreateDescriptorWithId(
descriptorId, _localizableTitle, _localizableMessageFormat,
isUnnecessary: true);
isUnnecessary: true,
isConfigurable);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; }
......
......@@ -28,12 +28,6 @@ internal abstract class AbstractUseCompoundAssignmentDiagnosticAnalyzer<
/// </summary>
private readonly ImmutableDictionary<TSyntaxKind, TSyntaxKind> _binaryToAssignmentMap;
/// <summary>
/// Maps from an assignment form (like AddAssignmentExpression) to the corresponding
/// operator type (like PlusEqualsToken).
/// </summary>
private readonly ImmutableDictionary<TSyntaxKind, TSyntaxKind> _assignmentToTokenMap;
protected AbstractUseCompoundAssignmentDiagnosticAnalyzer(
ISyntaxFacts syntaxFacts,
ImmutableArray<(TSyntaxKind exprKind, TSyntaxKind assignmentKind, TSyntaxKind tokenKind)> kinds)
......@@ -43,7 +37,7 @@ internal abstract class AbstractUseCompoundAssignmentDiagnosticAnalyzer<
nameof(AnalyzersResources.Use_compound_assignment), AnalyzersResources.ResourceManager, typeof(AnalyzersResources)))
{
_syntaxFacts = syntaxFacts;
UseCompoundAssignmentUtilities.GenerateMaps(kinds, out _binaryToAssignmentMap, out _assignmentToTokenMap);
UseCompoundAssignmentUtilities.GenerateMaps(kinds, out _binaryToAssignmentMap, out _);
}
protected abstract TSyntaxKind GetAnalysisKind();
......
......@@ -108,9 +108,12 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
private class FixNameCodeAction : CodeAction
{
#pragma warning disable IDE0052 // Remove unread private members - used in non-CodeStyle project context
private readonly Solution _startingSolution;
private readonly ISymbol _symbol;
private readonly string _newName;
#pragma warning restore IDE0052 // Remove unread private members
private readonly string _title;
private readonly Func<CancellationToken, Task<Solution>> _createChangedSolutionAsync;
private readonly string _equivalenceKey;
......
......@@ -20,8 +20,10 @@ internal static class FatalError
private static Action<Exception>? s_fatalHandler;
private static Action<Exception>? s_nonFatalHandler;
#pragma warning disable IDE0052 // Remove unread private members - We want to hold onto last exception to make investigation easier
private static Exception? s_reportedException;
private static string? s_reportedExceptionMessage;
#pragma warning restore IDE0052
/// <summary>
/// Set by the host to a fail fast trigger,
......
......@@ -28,8 +28,11 @@ internal sealed partial class LegacyEditorConfigDocumentOptionsProvider : IDocum
/// </summary>
private readonly Dictionary<DocumentId, Task<ICodingConventionContext>> _openDocumentContexts = new Dictionary<DocumentId, Task<ICodingConventionContext>>();
#pragma warning disable IDE0052 // Remove unread private members - Used in EditorFeatures project context
private readonly Workspace _workspace;
private readonly IAsynchronousOperationListener _listener;
#pragma warning disable IDE0052
private readonly ICodingConventionsManager _codingConventionsManager;
internal LegacyEditorConfigDocumentOptionsProvider(Workspace workspace, ICodingConventionsManager codingConventionsManager, IAsynchronousOperationListenerProvider listenerProvider)
......
......@@ -18,18 +18,15 @@ internal partial class LambdaSimplifierCodeRefactoringProvider
{
private class Rewriter : CSharpSyntaxRewriter
{
private readonly LambdaSimplifierCodeRefactoringProvider _codeIssueProvider;
private readonly SemanticDocument _document;
private readonly Func<SyntaxNode, bool> _predicate;
private readonly CancellationToken _cancellationToken;
public Rewriter(
LambdaSimplifierCodeRefactoringProvider codeIssueProvider,
SemanticDocument document,
Func<SyntaxNode, bool> predicate,
CancellationToken cancellationToken)
{
_codeIssueProvider = codeIssueProvider;
_document = document;
_predicate = predicate;
_cancellationToken = cancellationToken;
......
......@@ -66,7 +66,7 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
CancellationToken cancellationToken)
{
var semanticDocument = await SemanticDocument.CreateAsync(document, cancellationToken).ConfigureAwait(false);
var rewriter = new Rewriter(this, semanticDocument, n => n == lambda, cancellationToken);
var rewriter = new Rewriter(semanticDocument, n => n == lambda, cancellationToken);
var result = rewriter.Visit(semanticDocument.Root);
return document.WithSyntaxRoot(result);
}
......@@ -76,7 +76,7 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
CancellationToken cancellationToken)
{
var semanticDocument = await SemanticDocument.CreateAsync(document, cancellationToken).ConfigureAwait(false);
var rewriter = new Rewriter(this, semanticDocument, n => true, cancellationToken);
var rewriter = new Rewriter(semanticDocument, n => true, cancellationToken);
var result = rewriter.Visit(semanticDocument.Root);
return document.WithSyntaxRoot(result);
}
......
......@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions.ContextQuery;
......@@ -10,13 +9,6 @@ namespace Microsoft.CodeAnalysis.CSharp.Completion.KeywordRecommenders
{
internal class OperatorKeywordRecommender : AbstractSyntacticSingleKeywordRecommender
{
private static readonly ISet<SyntaxKind> s_validMemberModifiers = new HashSet<SyntaxKind>(SyntaxFacts.EqualityComparer)
{
SyntaxKind.StaticKeyword,
SyntaxKind.PublicKeyword,
SyntaxKind.ExternKeyword,
};
public OperatorKeywordRecommender()
: base(SyntaxKind.OperatorKeyword)
{
......
......@@ -7,7 +7,6 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeGeneration;
using Microsoft.CodeAnalysis.CSharp.DocumentationComments;
using Microsoft.CodeAnalysis.CSharp.Simplification;
using Microsoft.CodeAnalysis.CSharp.Utilities;
......@@ -15,7 +14,6 @@
using Microsoft.CodeAnalysis.DocumentationComments;
using Microsoft.CodeAnalysis.Formatting;
using Microsoft.CodeAnalysis.Formatting.Rules;
using Microsoft.CodeAnalysis.Host;
using Microsoft.CodeAnalysis.MetadataAsSource;
using Microsoft.CodeAnalysis.Simplification;
using Roslyn.Utilities;
......@@ -25,9 +23,9 @@ namespace Microsoft.CodeAnalysis.CSharp.MetadataAsSource
internal class CSharpMetadataAsSourceService : AbstractMetadataAsSourceService
{
private static readonly AbstractFormattingRule s_memberSeparationRule = new FormattingRule();
public static readonly CSharpMetadataAsSourceService Instance = new CSharpMetadataAsSourceService();
public CSharpMetadataAsSourceService(HostLanguageServices languageServices)
: base(languageServices.GetService<ICodeGenerationService>())
private CSharpMetadataAsSourceService()
{
}
......
......@@ -20,6 +20,6 @@ public CSharpMetadataAsSourceServiceFactory()
}
public ILanguageService CreateLanguageService(HostLanguageServices provider)
=> new CSharpMetadataAsSourceService(provider);
=> CSharpMetadataAsSourceService.Instance;
}
}
......@@ -18,10 +18,6 @@ namespace Microsoft.CodeAnalysis.AddPackage
/// </summary>
internal class InstallPackageParentCodeAction : CodeAction.CodeActionWithNestedActions
{
private readonly IPackageInstallerService _installerService;
private readonly string _source;
private readonly string _packageName;
public override ImmutableArray<string> Tags => WellKnownTagArrays.NuGet;
/// <summary>
......@@ -40,9 +36,6 @@ internal class InstallPackageParentCodeAction : CodeAction.CodeActionWithNestedA
CreateNestedActions(installerService, source, packageName, includePrerelease, document),
isInlinable: false)
{
_installerService = installerService;
_source = source;
_packageName = packageName;
}
private static ImmutableArray<CodeAction> CreateNestedActions(
......
......@@ -76,8 +76,6 @@ protected virtual ImmutableArray<CompletionProvider> GetBuiltInProviders()
return _importedProviders;
}
private ImmutableArray<CompletionProvider> _testProviders = ImmutableArray<CompletionProvider>.Empty;
private ImmutableArray<CompletionProvider> CreateRoleProviders(ImmutableHashSet<string> roles)
{
var providers = GetAllProviders(roles);
......
......@@ -32,7 +32,6 @@ private partial class ItemGetter
private readonly SourceText _text;
private readonly SyntaxTree _syntaxTree;
private readonly int _startLineNumber;
private readonly TextLine _startLine;
private ItemGetter(
AbstractOverrideCompletionProvider overrideCompletionProvider,
......@@ -41,7 +40,6 @@ private partial class ItemGetter
SourceText text,
SyntaxTree syntaxTree,
int startLineNumber,
TextLine startLine,
CancellationToken cancellationToken)
{
_provider = overrideCompletionProvider;
......@@ -50,7 +48,6 @@ private partial class ItemGetter
_text = text;
_syntaxTree = syntaxTree;
_startLineNumber = startLineNumber;
_startLine = startLine;
_cancellationToken = cancellationToken;
}
......@@ -63,8 +60,7 @@ private partial class ItemGetter
var text = await document.GetTextAsync(cancellationToken).ConfigureAwait(false);
var syntaxTree = await document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
var startLineNumber = text.Lines.IndexOf(position);
var startLine = text.Lines[startLineNumber];
return new ItemGetter(overrideCompletionProvider, document, position, text, syntaxTree, startLineNumber, startLine, cancellationToken);
return new ItemGetter(overrideCompletionProvider, document, position, text, syntaxTree, startLineNumber, cancellationToken);
}
internal async Task<IEnumerable<CompletionItem>> GetItemsAsync()
......
......@@ -590,9 +590,11 @@ protected virtual string GetSuspensionPointDisplayName(SyntaxNode node, EditKind
}
}
#pragma warning disable IDE0052 // Remove unread private members
// Active statements spans are usually unavailable in crash dumps due to a bug in the debugger (DevDiv #150901),
// so we stash them here in plain array (can't use immutable, see the bug) just before we report NFW.
private static ActiveStatement[]? s_fatalErrorBaseActiveStatements;
#pragma warning restore IDE0052 // Remove unread private members
[SuppressMessage("Style", "VSTHRD200:Use \"Async\" suffix for async methods", Justification = "'AnalyzeDocumentAsync' is the name of the method where an error occurred.")]
private static bool ReportFatalErrorAnalyzeDocumentAsync(ImmutableArray<ActiveStatement> baseActiveStatements, Exception e)
......
......@@ -16,8 +16,6 @@ internal class ExtractInterfaceCodeAction : CodeActionWithOptions
{
private readonly ExtractInterfaceTypeAnalysisResult _typeAnalysisResult;
private readonly AbstractExtractInterfaceService _extractInterfaceService;
private readonly Task<IEnumerable<CodeActionOperation>> _taskReturningNoCodeActionOperations = SpecializedTasks.EmptyEnumerable<CodeActionOperation>();
public ExtractInterfaceCodeAction(AbstractExtractInterfaceService extractInterfaceService, ExtractInterfaceTypeAnalysisResult typeAnalysisResult)
{
_extractInterfaceService = extractInterfaceService;
......
......@@ -13,7 +13,6 @@
using Microsoft.CodeAnalysis.CodeGeneration;
using Microsoft.CodeAnalysis.Editing;
using Microsoft.CodeAnalysis.Shared.Extensions;
using Microsoft.CodeAnalysis.Text;
namespace Microsoft.CodeAnalysis.GenerateEqualsAndGetHashCodeFromMembers
{
......@@ -34,11 +33,9 @@ private partial class GenerateEqualsAndGetHashCodeAction : CodeAction
private readonly SyntaxNode _typeDeclaration;
private readonly INamedTypeSymbol _containingType;
private readonly ImmutableArray<ISymbol> _selectedMembers;
private readonly TextSpan _textSpan;
public GenerateEqualsAndGetHashCodeAction(
Document document,
TextSpan textSpan,
SyntaxNode typeDeclaration,
INamedTypeSymbol containingType,
ImmutableArray<ISymbol> selectedMembers,
......@@ -51,7 +48,6 @@ private partial class GenerateEqualsAndGetHashCodeAction : CodeAction
_typeDeclaration = typeDeclaration;
_containingType = containingType;
_selectedMembers = selectedMembers;
_textSpan = textSpan;
_generateEquals = generateEquals;
_generateGetHashCode = generateGetHashCode;
_implementIEquatable = implementIEquatable;
......
......@@ -114,7 +114,7 @@ private async Task HandleNonSelectionAsync(CodeRefactoringContext context)
containingType, out var hasEquals, out var hasGetHashCode);
var actions = await CreateActionsAsync(
document, textSpan, typeDeclaration, containingType, viableMembers,
document, typeDeclaration, containingType, viableMembers,
hasEquals, hasGetHashCode, withDialog: true, cancellationToken).ConfigureAwait(false);
context.RegisterRefactorings(actions);
......@@ -179,7 +179,7 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
var typeDeclaration = syntaxFacts.GetContainingTypeDeclaration(root, textSpan.Start);
return await CreateActionsAsync(
document, textSpan, typeDeclaration, info.ContainingType, info.SelectedMembers,
document, typeDeclaration, info.ContainingType, info.SelectedMembers,
hasEquals, hasGetHashCode, withDialog: false, cancellationToken).ConfigureAwait(false);
}
}
......@@ -189,7 +189,7 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
}
private async Task<ImmutableArray<CodeAction>> CreateActionsAsync(
Document document, TextSpan textSpan, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> selectedMembers,
Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> selectedMembers,
bool hasEquals, bool hasGetHashCode, bool withDialog, CancellationToken cancellationToken)
{
using var _ = ArrayBuilder<Task<CodeAction>>.GetInstance(out var tasks);
......@@ -204,22 +204,22 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
// the user would need to bother just generating that member without also
// generating 'Equals' as well.
tasks.Add(CreateCodeActionAsync(
document, textSpan, typeDeclaration, containingType, selectedMembers,
document, typeDeclaration, containingType, selectedMembers,
generateEquals: true, generateGetHashCode: false, withDialog, cancellationToken));
tasks.Add(CreateCodeActionAsync(
document, textSpan, typeDeclaration, containingType, selectedMembers,
document, typeDeclaration, containingType, selectedMembers,
generateEquals: true, generateGetHashCode: true, withDialog, cancellationToken));
}
else if (!hasEquals)
{
tasks.Add(CreateCodeActionAsync(
document, textSpan, typeDeclaration, containingType, selectedMembers,
document, typeDeclaration, containingType, selectedMembers,
generateEquals: true, generateGetHashCode: false, withDialog, cancellationToken));
}
else if (!hasGetHashCode)
{
tasks.Add(CreateCodeActionAsync(
document, textSpan, typeDeclaration, containingType, selectedMembers,
document, typeDeclaration, containingType, selectedMembers,
generateEquals: false, generateGetHashCode: true, withDialog, cancellationToken));
}
......@@ -228,16 +228,16 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
}
private Task<CodeAction> CreateCodeActionAsync(
Document document, TextSpan textSpan, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
bool generateEquals, bool generateGetHashCode, bool withDialog, CancellationToken cancellationToken)
{
return withDialog
? CreateCodeActionWithDialogAsync(document, textSpan, typeDeclaration, containingType, members, generateEquals, generateGetHashCode, cancellationToken)
: CreateCodeActionWithoutDialogAsync(document, textSpan, typeDeclaration, containingType, members, generateEquals, generateGetHashCode, cancellationToken);
? CreateCodeActionWithDialogAsync(document, typeDeclaration, containingType, members, generateEquals, generateGetHashCode, cancellationToken)
: CreateCodeActionWithoutDialogAsync(document, typeDeclaration, containingType, members, generateEquals, generateGetHashCode, cancellationToken);
}
private async Task<CodeAction> CreateCodeActionWithDialogAsync(
Document document, TextSpan textSpan, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
bool generateEquals, bool generateGetHashCode, CancellationToken cancellationToken)
{
var semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);
......@@ -272,12 +272,12 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
}
return new GenerateEqualsAndGetHashCodeWithDialogCodeAction(
this, document, textSpan, typeDeclaration, containingType, members,
this, document, typeDeclaration, containingType, members,
pickMembersOptions.ToImmutable(), generateEquals, generateGetHashCode);
}
private async Task<CodeAction> CreateCodeActionWithoutDialogAsync(
Document document, TextSpan textSpan, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
bool generateEquals, bool generateGetHashCode, CancellationToken cancellationToken)
{
var implementIEquatable = false;
......@@ -293,7 +293,7 @@ private void GetExistingMemberInfo(INamedTypeSymbol containingType, out bool has
}
return new GenerateEqualsAndGetHashCodeAction(
document, textSpan, typeDeclaration, containingType, members,
document, typeDeclaration, containingType, members,
generateEquals, generateGetHashCode, implementIEquatable, generateOperators);
}
}
......
......@@ -11,7 +11,6 @@
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeActions;
using Microsoft.CodeAnalysis.PickMembers;
using Microsoft.CodeAnalysis.Text;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.GenerateEqualsAndGetHashCodeFromMembers
......@@ -28,7 +27,6 @@ private class GenerateEqualsAndGetHashCodeWithDialogCodeAction : CodeActionWithO
private readonly INamedTypeSymbol _containingType;
private readonly ImmutableArray<ISymbol> _viableMembers;
private readonly ImmutableArray<PickMembersOption> _pickMembersOptions;
private readonly TextSpan _textSpan;
private bool? _implementIEqutableOptionValue;
private bool? _generateOperatorsOptionValue;
......@@ -36,7 +34,6 @@ private class GenerateEqualsAndGetHashCodeWithDialogCodeAction : CodeActionWithO
public GenerateEqualsAndGetHashCodeWithDialogCodeAction(
GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider service,
Document document,
TextSpan textSpan,
SyntaxNode typeDeclaration,
INamedTypeSymbol containingType,
ImmutableArray<ISymbol> viableMembers,
......@@ -50,7 +47,6 @@ private class GenerateEqualsAndGetHashCodeWithDialogCodeAction : CodeActionWithO
_containingType = containingType;
_viableMembers = viableMembers;
_pickMembersOptions = pickMembersOptions;
_textSpan = textSpan;
_generateEquals = generateEquals;
_generateGetHashCode = generateGetHashCode;
}
......@@ -90,7 +86,7 @@ protected override async Task<IEnumerable<CodeActionOperation>> ComputeOperation
var generatorOperators = (generateOperatorsOption?.Value).GetValueOrDefault();
var action = new GenerateEqualsAndGetHashCodeAction(
_document, _textSpan, _typeDeclaration, _containingType, result.Members,
_document, _typeDeclaration, _containingType, result.Members,
_generateEquals, _generateGetHashCode, implementIEquatable, generatorOperators);
return await action.GetOperationsAsync(cancellationToken).ConfigureAwait(false);
}
......
......@@ -23,11 +23,6 @@ namespace Microsoft.CodeAnalysis.MetadataAsSource
{
internal abstract partial class AbstractMetadataAsSourceService : IMetadataAsSourceService
{
private readonly ICodeGenerationService _codeGenerationService;
protected AbstractMetadataAsSourceService(ICodeGenerationService codeGenerationService)
=> _codeGenerationService = codeGenerationService;
public async Task<Document> AddSourceToAsync(Document document, Compilation symbolCompilation, ISymbol symbol, CancellationToken cancellationToken)
{
if (document == null)
......
......@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Text;
......@@ -14,15 +13,6 @@ namespace Microsoft.CodeAnalysis.MetadataAsSource
/// </summary>
internal class MetadataAsSourceHelpers
{
private static readonly HashSet<SymbolKind> s_validSymbolKinds = new HashSet<SymbolKind>(new[]
{
SymbolKind.Event,
SymbolKind.Field,
SymbolKind.Method,
SymbolKind.NamedType,
SymbolKind.Property,
SymbolKind.Parameter,
});
#if false
public static void ValidateSymbolArgument(ISymbol symbol, string parameterName)
......
......@@ -18,8 +18,10 @@ internal sealed class BackgroundCompiler : IDisposable
private Workspace _workspace;
private readonly TaskQueue _taskQueue;
#pragma warning disable IDE0052 // Remove unread private members
// Used to keep a strong reference to the built compilations so they are not GC'd
private Compilation[] _mostRecentCompilations;
#pragma warning restore IDE0052 // Remove unread private members
private readonly object _buildGate = new object();
private CancellationTokenSource _cancellationSource;
......
......@@ -4,12 +4,10 @@
Imports System.Collections.Immutable
Imports System.Threading
Imports Microsoft.CodeAnalysis.CodeGeneration
Imports Microsoft.CodeAnalysis.Diagnostics
Imports Microsoft.CodeAnalysis.DocumentationComments
Imports Microsoft.CodeAnalysis.Formatting
Imports Microsoft.CodeAnalysis.Formatting.Rules
Imports Microsoft.CodeAnalysis.Host
Imports Microsoft.CodeAnalysis.MetadataAsSource
Imports Microsoft.CodeAnalysis.Simplification
Imports Microsoft.CodeAnalysis.VisualBasic
......@@ -21,9 +19,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.MetadataAsSource
Inherits AbstractMetadataAsSourceService
Private ReadOnly _memberSeparationRule As AbstractFormattingRule = New FormattingRule()
Public Shared ReadOnly Instance As New VisualBasicMetadataAsSourceService()
Public Sub New(languageServices As HostLanguageServices)
MyBase.New(languageServices.GetService(Of ICodeGenerationService)())
Private Sub New()
End Sub
Protected Overrides Async Function AddAssemblyInfoRegionAsync(document As Document, symbolCompilation As Compilation, symbol As ISymbol, cancellationToken As CancellationToken) As Task(Of Document)
......
......@@ -18,7 +18,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.MetadataAsSource
End Sub
Public Function CreateLanguageService(provider As HostLanguageServices) As ILanguageService Implements ILanguageServiceFactory.CreateLanguageService
Return New VisualBasicMetadataAsSourceService(provider)
Return VisualBasicMetadataAsSourceService.Instance
End Function
End Class
End Namespace
......@@ -79,13 +79,11 @@ private struct ExportKey : IEquatable<ExportKey>
{
internal readonly string ExtensionTypeName;
internal readonly string MetadataTypeName;
private readonly int _hash;
public ExportKey(string extensionTypeName, string metadataTypeName)
{
ExtensionTypeName = extensionTypeName;
MetadataTypeName = metadataTypeName;
_hash = Hash.Combine(metadataTypeName.GetHashCode(), extensionTypeName.GetHashCode());
}
public bool Equals(ExportKey other)
......
......@@ -136,7 +136,9 @@ public override int GetHashCode()
internal readonly struct TestAccessor
{
#pragma warning disable IDE0052 // Remove unread private members - hold onto the services
private readonly MefV1HostServices _mefV1HostServices;
#pragma warning restore IDE0052 // Remove unread private members
public TestAccessor(MefV1HostServices mefV1HostServices)
{
......
......@@ -26,8 +26,10 @@ internal static class DependentProjectsFinder
/// </summary>
private struct DefinitionProject
{
#pragma warning disable IDE0052 // Remove unread private members
private readonly ProjectId _sourceProjectId;
private readonly string _assemblyName;
#pragma warning restore IDE0052 // Remove unread private members
public DefinitionProject(ProjectId sourceProjectId, string assemblyName)
{
......
......@@ -194,7 +194,7 @@ private static Checksum GetMetadataChecksumSlow(Solution solution, PortableExecu
solution,
checksum,
loadOnly,
createAsync: () => CreateMetadataSymbolTreeInfoAsync(solution, checksum, reference, cancellationToken),
createAsync: () => CreateMetadataSymbolTreeInfoAsync(solution, checksum, reference),
keySuffix: "_Metadata_" + filePath,
tryReadObject: reader => TryReadSymbolTreeInfo(reader, checksum, (names, nodes) => GetSpellCheckerAsync(solution, checksum, filePath, names, nodes)),
cancellationToken: cancellationToken);
......@@ -204,10 +204,9 @@ private static Checksum GetMetadataChecksumSlow(Solution solution, PortableExecu
private static Task<SymbolTreeInfo> CreateMetadataSymbolTreeInfoAsync(
Solution solution, Checksum checksum,
PortableExecutableReference reference,
CancellationToken cancellationToken)
PortableExecutableReference reference)
{
var creator = new MetadataInfoCreator(solution, checksum, reference, cancellationToken);
var creator = new MetadataInfoCreator(solution, checksum, reference);
return Task.FromResult(creator.Create());
}
......@@ -219,7 +218,6 @@ private struct MetadataInfoCreator : IDisposable
private readonly Solution _solution;
private readonly Checksum _checksum;
private readonly PortableExecutableReference _reference;
private readonly CancellationToken _cancellationToken;
private readonly OrderPreservingMultiDictionary<string, string> _inheritanceMap;
private readonly OrderPreservingMultiDictionary<MetadataNode, MetadataNode> _parentToChildren;
......@@ -242,12 +240,11 @@ private struct MetadataInfoCreator : IDisposable
private bool _containsExtensionsMethod;
public MetadataInfoCreator(
Solution solution, Checksum checksum, PortableExecutableReference reference, CancellationToken cancellationToken)
Solution solution, Checksum checksum, PortableExecutableReference reference)
{
_solution = solution;
_checksum = checksum;
_reference = reference;
_cancellationToken = cancellationToken;
_metadataReader = null;
_allTypeDefinitions = new List<MetadataDefinition>();
_containsExtensionsMethod = false;
......
......@@ -17,7 +17,6 @@ internal static partial class INamespaceSymbolExtensions
{
private static readonly ConditionalWeakTable<INamespaceSymbol, List<string>> s_namespaceToNameMap =
new ConditionalWeakTable<INamespaceSymbol, List<string>>();
private static readonly ConditionalWeakTable<INamespaceSymbol, List<string>>.CreateValueCallback s_getNameParts = GetNameParts;
public static readonly Comparison<INamespaceSymbol> CompareNamespaces = CompareTo;
public static readonly IEqualityComparer<INamespaceSymbol> EqualityComparer = new Comparer();
......
......@@ -17,7 +17,10 @@ internal sealed partial class AsynchronousOperationListener : IAsynchronousOpera
{
private readonly NonReentrantLock _gate = new NonReentrantLock();
#pragma warning disable IDE0052 // Remove unread private members - Can this field be removed?
private readonly string _featureName;
#pragma warning restore IDE0052 // Remove unread private members
private readonly HashSet<TaskCompletionSource<bool>> _pendingTasks = new HashSet<TaskCompletionSource<bool>>();
private CancellationTokenSource _expeditedDelayCancellationTokenSource;
......
......@@ -15,8 +15,10 @@ internal class StorageDatabaseLogger
private static readonly StorageDatabaseLogger Instance = new StorageDatabaseLogger();
#pragma warning disable IDE0052 // Remove unread private members - hold onto last exception to make investigation easier
private Exception _reportedException;
private string _reportedExceptionMessage;
#pragma warning restore IDE0052 // Remove unread private members
private readonly ConcurrentDictionary<Type, Exception> _set = new ConcurrentDictionary<Type, Exception>(concurrencyLevel: 2, capacity: 10);
......
......@@ -13,7 +13,9 @@ internal class BranchId
{
private static int s_nextId;
#pragma warning disable IDE0052 // Remove unread private members
private readonly int _id;
#pragma warning restore IDE0052 // Remove unread private members
private BranchId(int id)
=> _id = id;
......
......@@ -167,7 +167,10 @@ public override TrackedGeneratorDriver TransformGeneratorDriver(TrackedGenerator
internal sealed class AddAdditionalDocumentsAction : CompilationAndGeneratorDriverTranslationAction
{
#pragma warning disable IDE0052 // Remove unread private members
// PROTOTYPE: right now there is no way to tell a GeneratorDriver that an additional file has been added
private readonly ImmutableArray<TextDocumentState> _additionalDocuments;
#pragma warning restore IDE0052 // Remove unread private members
public AddAdditionalDocumentsAction(ImmutableArray<TextDocumentState> additionalDocuments)
{
......@@ -185,7 +188,10 @@ public override TrackedGeneratorDriver TransformGeneratorDriver(TrackedGenerator
internal sealed class RemoveAdditionalDocumentsAction : CompilationAndGeneratorDriverTranslationAction
{
#pragma warning disable IDE0052 // Remove unread private members
// PROTOTYPE: right now there is no way to tell a GeneratorDriver that an additional file has been added
private readonly ImmutableArray<TextDocumentState> _additionalDocuments;
#pragma warning restore IDE0052 // Remove unread private members
public RemoveAdditionalDocumentsAction(ImmutableArray<TextDocumentState> additionalDocuments)
{
......
......@@ -81,7 +81,9 @@ internal TestAccessor GetTestAccessor()
internal readonly struct TestAccessor
{
#pragma warning disable IDE0052 // Remove unread private members - hold onto the Roslyn services.
private readonly RoslynServices _roslynServices;
#pragma warning restore IDE0052 // Remove unread private members
public TestAccessor(RoslynServices roslynServices)
=> _roslynServices = roslynServices;
......
......@@ -45,7 +45,9 @@ internal partial class RemoteHostService : ServiceBase, IRemoteHostService
private string? _host;
private int _primaryInstance;
#pragma warning disable IDE0052 // Remove unread private members
private PerformanceReporter? _performanceReporter;
#pragma warning restore IDE0052 // Remove unread private members
static RemoteHostService()
{
......
......@@ -14,7 +14,9 @@ namespace Microsoft.CodeAnalysis.Remote
/// </summary>
internal partial class SnapshotService : ServiceBase
{
#pragma warning disable IDE0052 // Remove unread private members - Can this field be removed?
private readonly AssetSource _source;
#pragma warning restore IDE0052 // Remove unread private members
public SnapshotService(Stream stream, IServiceProvider serviceProvider)
: base(serviceProvider, stream)
......
......@@ -36,11 +36,6 @@ internal sealed class RemoteEndPoint : IDisposable
AllowNonPublicInvocation = false
};
// these are for debugging purpose. once we find out root cause of the issue
// we will remove these.
private static JsonRpcDisconnectedEventArgs? s_debuggingLastDisconnectReason;
private static string? s_debuggingLastDisconnectCallstack;
private readonly TraceSource _logger;
private readonly JsonRpc _rpc;
......@@ -329,9 +324,6 @@ private bool ReportUnlessCanceled(Exception ex, CancellationToken cancellationTo
private void ReportNonFatalWatson(Exception exception)
{
s_debuggingLastDisconnectReason = _debuggingLastDisconnectReason;
s_debuggingLastDisconnectCallstack = _debuggingLastDisconnectCallstack;
FatalError.ReportWithoutCrash(exception);
}
......
......@@ -33,7 +33,6 @@ internal abstract partial class AbstractFormatEngine
private readonly SyntaxNode _commonRoot;
private readonly SyntaxToken _token1;
private readonly SyntaxToken _token2;
private readonly string _language;
protected readonly TextSpan SpanToFormat;
......@@ -78,14 +77,6 @@ internal abstract partial class AbstractFormatEngine
// get span and common root
this.SpanToFormat = GetSpanToFormat();
_commonRoot = token1.GetCommonRoot(token2) ?? throw ExceptionUtilities.Unreachable;
if (token1 == default)
{
_language = token2.Language;
}
else
{
_language = token1.Language;
}
}
protected abstract AbstractTriviaDataFactory CreateTriviaFactory();
......
......@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Immutable;
......@@ -19,7 +18,6 @@ internal static class AliasSymbolCache
// in compilation cache in certain host (VS), semantic model comes and goes more frequently which will release cache more often.
private static readonly ConditionalWeakTable<Compilation, TreeMap> s_treeAliasMap = new ConditionalWeakTable<Compilation, TreeMap>();
private static readonly ConditionalWeakTable<Compilation, TreeMap>.CreateValueCallback s_createTreeMap = c => new TreeMap();
private static readonly Func<ISymbol, string> s_symbolToName = s => s.Name;
public static bool TryGetAliasSymbol(SemanticModel semanticModel, int namespaceId, INamespaceOrTypeSymbol targetSymbol, out IAliasSymbol aliasSymbol)
{
......
......@@ -33,16 +33,11 @@ Namespace Microsoft.CodeAnalysis.CodeCleanup.Providers
Private Class AddMissingTokensRewriter
Inherits AbstractTokensCodeCleanupProvider.Rewriter
Private ReadOnly _document As Document
Private ReadOnly _modifiedSpan As TextSpan
Private ReadOnly _model As SemanticModel = Nothing
Private Sub New(document As Document, semanticModel As SemanticModel, spans As ImmutableArray(Of TextSpan), modifiedSpan As TextSpan, cancellationToken As CancellationToken)
Private Sub New(semanticModel As SemanticModel, spans As ImmutableArray(Of TextSpan), cancellationToken As CancellationToken)
MyBase.New(spans, cancellationToken)
Me._document = document
Me._modifiedSpan = modifiedSpan
Me._model = semanticModel
End Sub
......@@ -51,7 +46,7 @@ Namespace Microsoft.CodeAnalysis.CodeCleanup.Providers
Dim semanticModel = If(document Is Nothing, Nothing,
Await document.GetSemanticModelForSpanAsync(modifiedSpan, cancellationToken).ConfigureAwait(False))
Return New AddMissingTokensRewriter(document, semanticModel, spans, modifiedSpan, cancellationToken)
Return New AddMissingTokensRewriter(semanticModel, spans, cancellationToken)
End Function
Public Overrides Function Visit(node As SyntaxNode) As SyntaxNode
......
......@@ -42,20 +42,14 @@ Namespace Microsoft.CodeAnalysis.CodeCleanup.Providers
Private Class FixIncorrectTokensRewriter
Inherits AbstractTokensCodeCleanupProvider.Rewriter
Private ReadOnly _document As Document
Private ReadOnly _modifiedSpan As TextSpan
Private ReadOnly _semanticModel As SemanticModel
Private Sub New(document As Document,
semanticModel As SemanticModel,
Private Sub New(semanticModel As SemanticModel,
spans As ImmutableArray(Of TextSpan),
modifiedSpan As TextSpan,
cancellationToken As CancellationToken)
MyBase.New(spans, cancellationToken)
_document = document
_semanticModel = semanticModel
_modifiedSpan = modifiedSpan
End Sub
Public Shared Async Function CreateAsync(document As Document, spans As ImmutableArray(Of TextSpan), cancellationToken As CancellationToken) As Task(Of Rewriter)
......@@ -64,7 +58,7 @@ Namespace Microsoft.CodeAnalysis.CodeCleanup.Providers
Nothing,
Await document.GetSemanticModelForSpanAsync(modifiedSpan, cancellationToken).ConfigureAwait(False))
Return New FixIncorrectTokensRewriter(document, semanticModel, spans, modifiedSpan, cancellationToken)
Return New FixIncorrectTokensRewriter(semanticModel, spans, cancellationToken)
End Function
Public Overrides Function VisitTrivia(trivia As SyntaxTrivia) As SyntaxTrivia
......
......@@ -6,7 +6,6 @@ Imports System.Collections.Immutable
Imports System.Threading
Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.FindSymbols
Imports Microsoft.CodeAnalysis.Host
Imports Microsoft.CodeAnalysis.LanguageServices
Imports Microsoft.CodeAnalysis.PooledObjects
Imports Microsoft.CodeAnalysis.Rename
......@@ -23,10 +22,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Rename
Friend Class VisualBasicRenameRewriterLanguageService
Inherits AbstractRenameRewriterLanguageService
Private ReadOnly _languageServiceProvider As HostLanguageServices
Public Shared ReadOnly Instance As New VisualBasicRenameRewriterLanguageService()
Public Sub New(provider As HostLanguageServices)
_languageServiceProvider = provider
Private Sub New()
End Sub
#Region "Annotate"
......
......@@ -18,7 +18,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Rename
End Sub
Public Function CreateLanguageService(provider As HostLanguageServices) As ILanguageService Implements ILanguageServiceFactory.CreateLanguageService
Return New VisualBasicRenameRewriterLanguageService(provider)
Return VisualBasicRenameRewriterLanguageService.Instance
End Function
End Class
End Namespace
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册