diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs
index 7e7f27bbc033f549097b548eb09644d589343257..de75048991937eb83d8989afcebcb3a129a9caaf 100644
--- a/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs
+++ b/src/EditorFeatures/Core/Extensibility/Navigation/INavigableItem.cs
@@ -19,9 +19,17 @@ internal interface INavigableItem
///
bool DisplayFileLocation { get; }
+ ///
+ /// his is intended for symbols that are ordinary symbols in the language sense, and may be
+ /// used by code, but that are simply declared implicitly rather than with explicit language
+ /// syntax. For example, a default synthesized constructor in C# when the class contains no
+ /// explicit constructors.
+ ///
+ bool IsImplicitlyDeclared { get; }
+
Document Document { get; }
TextSpan SourceSpan { get; }
ImmutableArray ChildItems { get; }
}
-}
+}
\ No newline at end of file
diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs
index 7723f441f6fe99268a9a15239992d2835f062dd4..e3ca2dfd64ffbffe1ec7482104369442fc605007 100644
--- a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs
+++ b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.DeclaredSymbolNavigableItem.cs
@@ -28,6 +28,12 @@ internal class DeclaredSymbolNavigableItem : INavigableItem
private readonly Lazy _lazyDisplayString;
private readonly Lazy _lazySymbol;
+ ///
+ /// DeclaredSymbolInfos always come from some actual declaration in source. So they're
+ /// never implicitly declared.
+ ///
+ public bool IsImplicitlyDeclared => false;
+
public DeclaredSymbolNavigableItem(Document document, DeclaredSymbolInfo declaredSymbolInfo)
{
Document = document;
diff --git a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs
index 68d162c418ac0f913e67a0895f68434a78113858..9e79d50fd2cefe9db121570404e3c6f200a11d1e 100644
--- a/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs
+++ b/src/EditorFeatures/Core/Extensibility/Navigation/NavigableItemFactory.SymbolLocationNavigableItem.cs
@@ -31,13 +31,9 @@ private class SymbolLocationNavigableItem : INavigableItem
public string DisplayString => _displayString;
- public Glyph Glyph
- {
- get
- {
- return _symbol.GetGlyph();
- }
- }
+ public Glyph Glyph => _symbol.GetGlyph();
+
+ public bool IsImplicitlyDeclared => _symbol.IsImplicitlyDeclared;
public Document Document
{
@@ -47,13 +43,7 @@ public Document Document
}
}
- public TextSpan SourceSpan
- {
- get
- {
- return _location.SourceSpan;
- }
- }
+ public TextSpan SourceSpan => _location.SourceSpan;
public ImmutableArray ChildItems => ImmutableArray.Empty;
}