diff --git a/src/Compilers/Core/Portable/Symbols/IAliasSymbol.cs b/src/Compilers/Core/Portable/Symbols/IAliasSymbol.cs
index 6ab1718492764..65e3d9017ef8c 100644
--- a/src/Compilers/Core/Portable/Symbols/IAliasSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IAliasSymbol.cs
@@ -7,6 +7,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a using alias (Imports alias in Visual Basic).
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IAliasSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IArrayTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/IArrayTypeSymbol.cs
index 20efddede89d3..d83382c79891a 100644
--- a/src/Compilers/Core/Portable/Symbols/IArrayTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IArrayTypeSymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents an array.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IArrayTypeSymbol : ITypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IAssemblySymbol.cs b/src/Compilers/Core/Portable/Symbols/IAssemblySymbol.cs
index f634e928ed319..d1d13f4b31675 100644
--- a/src/Compilers/Core/Portable/Symbols/IAssemblySymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IAssemblySymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a .NET assembly, consisting of one or more modules.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IAssemblySymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IDynamicTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/IDynamicTypeSymbol.cs
index 11a8a6b2ecbed..c5391dcc1fa38 100644
--- a/src/Compilers/Core/Portable/Symbols/IDynamicTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IDynamicTypeSymbol.cs
@@ -7,6 +7,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents the 'dynamic' type in C#.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IDynamicTypeSymbol : ITypeSymbol
{
}
diff --git a/src/Compilers/Core/Portable/Symbols/IErrorTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/IErrorTypeSymbol.cs
index 38a510a129c93..0d578a07172fd 100644
--- a/src/Compilers/Core/Portable/Symbols/IErrorTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IErrorTypeSymbol.cs
@@ -11,6 +11,10 @@ namespace Microsoft.CodeAnalysis
/// of an error. For example, if a field is declared "Foo x;", and the type "Foo" cannot be
/// found, an IErrorTypeSymbol is returned when asking the field "x" what it's type is.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IErrorTypeSymbol : INamedTypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IEventSymbol.cs b/src/Compilers/Core/Portable/Symbols/IEventSymbol.cs
index f72befcd9b8ca..90209caf9704f 100644
--- a/src/Compilers/Core/Portable/Symbols/IEventSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IEventSymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents an event.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IEventSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IFieldSymbol.cs b/src/Compilers/Core/Portable/Symbols/IFieldSymbol.cs
index 4cb84e127ed84..8c96b9d35aee7 100644
--- a/src/Compilers/Core/Portable/Symbols/IFieldSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IFieldSymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a field in a class, struct or enum.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IFieldSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/ILabelSymbol.cs b/src/Compilers/Core/Portable/Symbols/ILabelSymbol.cs
index 5838e697a408a..7646318c33913 100644
--- a/src/Compilers/Core/Portable/Symbols/ILabelSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ILabelSymbol.cs
@@ -7,6 +7,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a label in method body
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface ILabelSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/ILocalSymbol.cs b/src/Compilers/Core/Portable/Symbols/ILocalSymbol.cs
index 6e4485b175be6..4e44b60152d93 100644
--- a/src/Compilers/Core/Portable/Symbols/ILocalSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ILocalSymbol.cs
@@ -5,6 +5,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a local variable in method body.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface ILocalSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IMethodSymbol.cs b/src/Compilers/Core/Portable/Symbols/IMethodSymbol.cs
index 8cbc3c80bccc2..bea10cc04293c 100644
--- a/src/Compilers/Core/Portable/Symbols/IMethodSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IMethodSymbol.cs
@@ -9,6 +9,10 @@ namespace Microsoft.CodeAnalysis
/// Represents a method or method-like symbol (including constructor,
/// destructor, operator, or property/event accessor).
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IMethodSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IModuleSymbol.cs b/src/Compilers/Core/Portable/Symbols/IModuleSymbol.cs
index 6b99bfcd765a0..82966f661c500 100644
--- a/src/Compilers/Core/Portable/Symbols/IModuleSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IModuleSymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a module within an assembly. Every assembly contains one or more modules.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IModuleSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs
index 989a338f3455c..341d6cef31713 100644
--- a/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a type other than an array, a pointer, a type parameter.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface INamedTypeSymbol : ITypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/INamespaceOrTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/INamespaceOrTypeSymbol.cs
index 9f117d6d9824c..5dbfa596ea8a2 100644
--- a/src/Compilers/Core/Portable/Symbols/INamespaceOrTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/INamespaceOrTypeSymbol.cs
@@ -9,6 +9,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents either a namespace or a type.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface INamespaceOrTypeSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/INamespaceSymbol.cs b/src/Compilers/Core/Portable/Symbols/INamespaceSymbol.cs
index dc186b3d49473..01e206b788678 100644
--- a/src/Compilers/Core/Portable/Symbols/INamespaceSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/INamespaceSymbol.cs
@@ -9,6 +9,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a namespace.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface INamespaceSymbol : INamespaceOrTypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IParameterSymbol.cs b/src/Compilers/Core/Portable/Symbols/IParameterSymbol.cs
index 40088f1046f77..2f855faa072e2 100644
--- a/src/Compilers/Core/Portable/Symbols/IParameterSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IParameterSymbol.cs
@@ -9,6 +9,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a parameter of a method or property.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IParameterSymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IPointerTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/IPointerTypeSymbol.cs
index 5f044f6870c64..a67f15bcaf245 100644
--- a/src/Compilers/Core/Portable/Symbols/IPointerTypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IPointerTypeSymbol.cs
@@ -9,6 +9,10 @@ namespace Microsoft.CodeAnalysis
/// Represents a pointer type such as "int *". Pointer types
/// are used only in unsafe code.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IPointerTypeSymbol : ITypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IPreprocessingSymbol.cs b/src/Compilers/Core/Portable/Symbols/IPreprocessingSymbol.cs
index 13af362a83875..2b46d9dac704b 100644
--- a/src/Compilers/Core/Portable/Symbols/IPreprocessingSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IPreprocessingSymbol.cs
@@ -5,6 +5,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a preprocessing conditional compilation symbol.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IPreprocessingSymbol : ISymbol
{
}
diff --git a/src/Compilers/Core/Portable/Symbols/IPropertySymbol.cs b/src/Compilers/Core/Portable/Symbols/IPropertySymbol.cs
index a42ff4a16e8d1..b4be1b3fbe4b6 100644
--- a/src/Compilers/Core/Portable/Symbols/IPropertySymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IPropertySymbol.cs
@@ -8,6 +8,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a property or indexer.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IPropertySymbol : ISymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/IRangeVariableSymbol.cs b/src/Compilers/Core/Portable/Symbols/IRangeVariableSymbol.cs
index 6ec852e26833c..18d26e6b149f3 100644
--- a/src/Compilers/Core/Portable/Symbols/IRangeVariableSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/IRangeVariableSymbol.cs
@@ -7,6 +7,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a range variable in a query expression.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface IRangeVariableSymbol : ISymbol
{
}
diff --git a/src/Compilers/Core/Portable/Symbols/ISymbol.cs b/src/Compilers/Core/Portable/Symbols/ISymbol.cs
index 0d6f520aec81b..a5cbaf266fb64 100644
--- a/src/Compilers/Core/Portable/Symbols/ISymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ISymbol.cs
@@ -13,6 +13,10 @@ namespace Microsoft.CodeAnalysis
/// Represents a symbol (namespace, class, method, parameter, etc.)
/// exposed by the compiler.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
[InternalImplementationOnly]
public interface ISymbol : IEquatable
{
diff --git a/src/Compilers/Core/Portable/Symbols/ISynthesizedMethodBodyImplementationSymbol.cs b/src/Compilers/Core/Portable/Symbols/ISynthesizedMethodBodyImplementationSymbol.cs
index 196052caeefec..6b2a06e35dfaa 100644
--- a/src/Compilers/Core/Portable/Symbols/ISynthesizedMethodBodyImplementationSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ISynthesizedMethodBodyImplementationSymbol.cs
@@ -5,6 +5,10 @@ namespace Microsoft.CodeAnalysis
///
/// Synthesized symbol that implements a method body feature (iterator, async, lambda, etc.)
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
internal interface ISynthesizedMethodBodyImplementationSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/ITypeParameterSymbol.cs b/src/Compilers/Core/Portable/Symbols/ITypeParameterSymbol.cs
index 41b2da09d309e..5a56c4ef83798 100644
--- a/src/Compilers/Core/Portable/Symbols/ITypeParameterSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ITypeParameterSymbol.cs
@@ -7,6 +7,10 @@ namespace Microsoft.CodeAnalysis
///
/// Represents a type parameter in a generic type or generic method.
///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface ITypeParameterSymbol : ITypeSymbol
{
///
diff --git a/src/Compilers/Core/Portable/Symbols/ITypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/ITypeSymbol.cs
index eca72d193d4de..e6f96210c9165 100644
--- a/src/Compilers/Core/Portable/Symbols/ITypeSymbol.cs
+++ b/src/Compilers/Core/Portable/Symbols/ITypeSymbol.cs
@@ -4,6 +4,13 @@
namespace Microsoft.CodeAnalysis
{
+ ///
+ /// Represents a type.
+ ///
+ ///
+ /// This interface is reserved for implementation by its associated APIs. We reserve the right to
+ /// change it in the future.
+ ///
public interface ITypeSymbol : INamespaceOrTypeSymbol
{
///