diff --git a/src/Features/Core/Portable/AddImport/AddImportFixData.cs b/src/Features/Core/Portable/AddImport/AddImportFixData.cs index f31b98e2956eeea6211ee11477120905ae45a9a3..93835273e65e6f72c2d8b079a4c0215353a4279e 100644 --- a/src/Features/Core/Portable/AddImport/AddImportFixData.cs +++ b/src/Features/Core/Portable/AddImport/AddImportFixData.cs @@ -7,14 +7,6 @@ namespace Microsoft.CodeAnalysis.AddImport { - internal enum AddImportFixKind - { - ProjectSymbol, - MetadataSymbol, - PackageSymbol, - ReferenceAssemblySymbol, - } - internal class AddImportFixData { public AddImportFixKind Kind { get; } diff --git a/src/Features/Core/Portable/AddImport/AddImportFixKind.cs b/src/Features/Core/Portable/AddImport/AddImportFixKind.cs new file mode 100644 index 0000000000000000000000000000000000000000..7632bbc5d6127580ac579ad78752d1a48d344fc8 --- /dev/null +++ b/src/Features/Core/Portable/AddImport/AddImportFixKind.cs @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +namespace Microsoft.CodeAnalysis.AddImport +{ + internal enum AddImportFixKind + { + ProjectSymbol, + MetadataSymbol, + PackageSymbol, + ReferenceAssemblySymbol, + } +} \ No newline at end of file diff --git a/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs index b25c20cc260a14b5bbf6d769cd58efbb2d986ec9..8959bea4a1ad0ae24cda9f950f451f122efa454b 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs @@ -21,6 +21,7 @@ private class AssemblyReferenceCodeAction : AddImportCodeAction AddImportFixData fixData) : base(originalDocument, fixData) { + Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.ReferenceAssemblySymbol); _lazyResolvedPath = new Lazy(ResolvePath); } diff --git a/src/Features/Core/Portable/AddImport/CodeActions/InstallPackageAndAddImportCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/InstallPackageAndAddImportCodeAction.cs index e7a7ac45cd37a61ab536d69d37217227d82d059f..48cbc16e4a9f0bed7bb1df2e1e3eddde4436649e 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/InstallPackageAndAddImportCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/InstallPackageAndAddImportCodeAction.cs @@ -8,6 +8,7 @@ using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.Text; +using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.AddImport { @@ -27,6 +28,7 @@ private class InstallPackageAndAddImportCodeAction : AddImportCodeAction InstallPackageDirectlyCodeActionOperation installOperation) : base(originalDocument, fixData, title) { + Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.PackageSymbol); _installOperation = installOperation; } diff --git a/src/Features/Core/Portable/AddImport/CodeActions/MetadataSymbolReferenceCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/MetadataSymbolReferenceCodeAction.cs index ee5af4c8223a8a6cea88042fa2b5ad2a84dd355b..137faa0a165d56f92f68c4ffa387691899f25ccf 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/MetadataSymbolReferenceCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/MetadataSymbolReferenceCodeAction.cs @@ -12,6 +12,7 @@ private class MetadataSymbolReferenceCodeAction : SymbolReferenceCodeAction public MetadataSymbolReferenceCodeAction(Document originalDocument, AddImportFixData fixData) : base(originalDocument, fixData) { + Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.MetadataSymbol); } protected override Project UpdateProject(Project project) diff --git a/src/Features/Core/Portable/AddImport/CodeActions/ParentInstallPackageCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/ParentInstallPackageCodeAction.cs index 72eb8d0fdfe50a0c003dc0a89afc5ba845a1e519..edb9836e7a4a2ea13b5a75f6735ff408a9bac452 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/ParentInstallPackageCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/ParentInstallPackageCodeAction.cs @@ -6,6 +6,7 @@ using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Packaging; using Microsoft.CodeAnalysis.Tags; +using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.AddImport { @@ -37,6 +38,7 @@ private class ParentInstallPackageCodeAction : CodeAction.CodeActionWithNestedAc CreateNestedActions(document, fixData, installerService), isInlinable: false) { + Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.PackageSymbol); } private static ImmutableArray CreateNestedActions( diff --git a/src/Features/Core/Portable/AddImport/CodeActions/ProjectSymbolReferenceCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/ProjectSymbolReferenceCodeAction.cs index abb9254ea5bfad74adbbb96d407e2f383b1ffb66..6f278c70b45a2907dcfd952f583e0bbbced316c2 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/ProjectSymbolReferenceCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/ProjectSymbolReferenceCodeAction.cs @@ -1,5 +1,7 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using Roslyn.Utilities; + namespace Microsoft.CodeAnalysis.AddImport { internal abstract partial class AbstractAddImportCodeFixProvider @@ -17,6 +19,7 @@ private class ProjectSymbolReferenceCodeAction : SymbolReferenceCodeAction AddImportFixData fixData) : base(originalDocument, fixData) { + Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.ProjectSymbol); } private bool ShouldAddProjectReference() diff --git a/src/Features/Core/Portable/Features.csproj b/src/Features/Core/Portable/Features.csproj index 5764eee7c59c754bbe56347ea1a3309441ed28ee..43346381e0cca092ce2c65edae67203808dfeeec 100644 --- a/src/Features/Core/Portable/Features.csproj +++ b/src/Features/Core/Portable/Features.csproj @@ -100,6 +100,7 @@ Shared\Utilities\DesktopShim.cs +