|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable disable
using Microsoft.CodeAnalysis.Text;
namespace Microsoft.CodeAnalysis.Rename.ConflictEngine;
/// <summary>
/// This class is used to refer to a Symbol definition which could be in source or metadata
/// it has a metadata name.
/// </summary>
internal sealed class RenameDeclarationLocationReference
{
// The DocumentId and the TextSpan of the First Symbol Location
public readonly DocumentId DocumentId;
public readonly TextSpan TextSpan;
/// <summary>
/// The metadata name for this symbol.
/// </summary>
public readonly string Name;
/// <summary>
/// Count of symbol location (Partial Types, Constructors, etc).
/// </summary>
public readonly int SymbolLocationsCount;
/// <summary>
/// A flag indicating that the associated symbol is an override of a symbol from metadata
/// </summary>
public readonly bool IsOverriddenFromMetadata;
public RenameDeclarationLocationReference(DocumentId documentId, TextSpan textSpan, bool overriddenFromMetadata, int declaringSyntaxReferencesCount)
{
this.DocumentId = documentId;
this.TextSpan = textSpan;
this.Name = null;
this.SymbolLocationsCount = declaringSyntaxReferencesCount;
this.IsOverriddenFromMetadata = overriddenFromMetadata;
}
public RenameDeclarationLocationReference(string name, int declaringSyntaxReferencesCount)
{
this.Name = name;
this.IsOverriddenFromMetadata = false;
this.SymbolLocationsCount = declaringSyntaxReferencesCount;
}
public bool IsSourceLocation
{
get
{
return Name == null;
}
}
}
|