提交 ac29eae9 编写于 作者: C CyrusNajmabadi

Move type to its own file. Add contracts.

上级 966f5443
......@@ -7,14 +7,6 @@
namespace Microsoft.CodeAnalysis.AddImport
{
internal enum AddImportFixKind
{
ProjectSymbol,
MetadataSymbol,
PackageSymbol,
ReferenceAssemblySymbol,
}
internal class AddImportFixData
{
public AddImportFixKind Kind { get; }
......
// 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
......@@ -21,6 +21,7 @@ private class AssemblyReferenceCodeAction : AddImportCodeAction
AddImportFixData fixData)
: base(originalDocument, fixData)
{
Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.ReferenceAssemblySymbol);
_lazyResolvedPath = new Lazy<string>(ResolvePath);
}
......
......@@ -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;
}
......
......@@ -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)
......
......@@ -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<CodeAction> CreateNestedActions(
......
// 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<TSimpleNameSyntax>
......@@ -17,6 +19,7 @@ private class ProjectSymbolReferenceCodeAction : SymbolReferenceCodeAction
AddImportFixData fixData)
: base(originalDocument, fixData)
{
Contract.ThrowIfFalse(fixData.Kind == AddImportFixKind.ProjectSymbol);
}
private bool ShouldAddProjectReference()
......
......@@ -100,6 +100,7 @@
<Link>Shared\Utilities\DesktopShim.cs</Link>
</Compile>
<Compile Include="AddImport\AddImportFixData.cs" />
<Compile Include="AddImport\AddImportFixKind.cs" />
<Compile Include="AddImport\CodeActions\AddImportCodeAction.cs" />
<Compile Include="AddImport\CodeActions\AssemblyReferenceCodeAction.cs" />
<Compile Include="AddImport\CodeActions\MetadataSymbolReferenceCodeAction.cs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册