diff --git a/ReSharper.FSharp/src/FSharp.Psi.Daemon/src/Stages/FcsErrorsStageProcessBase.fs b/ReSharper.FSharp/src/FSharp.Psi.Daemon/src/Stages/FcsErrorsStageProcessBase.fs
index a73cea2a62..1cd4d08f14 100644
--- a/ReSharper.FSharp/src/FSharp.Psi.Daemon/src/Stages/FcsErrorsStageProcessBase.fs
+++ b/ReSharper.FSharp/src/FSharp.Psi.Daemon/src/Stages/FcsErrorsStageProcessBase.fs
@@ -319,6 +319,12 @@ type FcsErrorsStageProcessBase(fsFile, daemonProcess) =
| ValueNotContainedMutability ->
if error.Message.EndsWith("The mutability attributes differ") then
createHighlightingFromNodeWithMessage ValueNotContainedMutabilityAttributesDifferError range error
+ elif error.Message.EndsWith("The accessibility specified in the signature is more than that specified in the implementation") then
+ let refHighlighting = createHighlightingFromNodeWithMessage ValueNotContainedMutabilityAccessibilityMoreInBindingError range error
+ let memberHighlighting = createHighlightingFromParentNodeWithMessage ValueNotContainedMutabilityAccessibilityMoreInMemberError range error
+ if isNotNull refHighlighting then refHighlighting
+ elif isNotNull memberHighlighting then memberHighlighting
+ else createGenericHighlighting error range
else
createGenericHighlighting error range
diff --git a/ReSharper.FSharp/src/FSharp.Psi.Features/src/Parsing/FSharpTreeBuilderBase.fs b/ReSharper.FSharp/src/FSharp.Psi.Features/src/Parsing/FSharpTreeBuilderBase.fs
index 4a10f72810..87d9ac142c 100644
--- a/ReSharper.FSharp/src/FSharp.Psi.Features/src/Parsing/FSharpTreeBuilderBase.fs
+++ b/ReSharper.FSharp/src/FSharp.Psi.Features/src/Parsing/FSharpTreeBuilderBase.fs
@@ -927,17 +927,24 @@ type FSharpTreeBuilderBase(lexer, document: IDocument, lifetime, path: VirtualFi
member x.ProcessTypeMemberSignature(memberSig) =
match memberSig with
- | SynMemberSig.Member(SynValSig(attrs, _, _, synType, arity, _, _, XmlDoc xmlDoc, _, _, _, trivia), flags, range, _) ->
+ | SynMemberSig.Member(SynValSig(attrs, _, _, synType, arity, _, _, XmlDoc xmlDoc, _, _, _, valSigTrivia), flags, range, memberTrivia) ->
let mark = x.MarkAndProcessIntro(attrs, xmlDoc, null, range)
x.ProcessReturnTypeInfo(arity, synType)
let elementType =
if flags.IsDispatchSlot then
- x.ProcessAccessorsNamesClause(trivia, range)
+ x.ProcessAccessorsNamesClause(valSigTrivia, range)
ElementType.ABSTRACT_MEMBER_DECLARATION
else
match flags.MemberKind with
| SynMemberKind.Constructor -> ElementType.CONSTRUCTOR_SIGNATURE
| _ -> ElementType.MEMBER_SIGNATURE
+
+ match valSigTrivia.WithKeyword, memberTrivia.GetSetKeywords with
+ | Some withKw, Some getSetKeywords ->
+ let m = Range.unionRanges withKw getSetKeywords.Range
+ x.MarkAndDone(m, ElementType.ACCESSOR_DECLARATION)
+ | _ -> ()
+
x.Done(range, mark, elementType)
| SynMemberSig.ValField(SynField(attrs, _, id, synType, _, XmlDoc xmlDoc, _, _, _), range) ->
diff --git a/ReSharper.FSharp/src/FSharp.Psi.Intentions/FSharp.Psi.Intentions.fsproj b/ReSharper.FSharp/src/FSharp.Psi.Intentions/FSharp.Psi.Intentions.fsproj
index 5c9e7bc265..2049d2e566 100644
--- a/ReSharper.FSharp/src/FSharp.Psi.Intentions/FSharp.Psi.Intentions.fsproj
+++ b/ReSharper.FSharp/src/FSharp.Psi.Intentions/FSharp.Psi.Intentions.fsproj
@@ -101,6 +101,8 @@
+
+
QUICKFIX
JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.QuickFixes
diff --git a/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureBindingFix.fs b/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureBindingFix.fs
new file mode 100644
index 0000000000..e579162415
--- /dev/null
+++ b/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureBindingFix.fs
@@ -0,0 +1,51 @@
+namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.QuickFixes
+
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Tree
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.Highlightings
+open JetBrains.ReSharper.Psi
+open JetBrains.ReSharper.Resources.Shell
+open JetBrains.ReSharper.Plugins.FSharp.Psi
+
+type UpdateAccessibilityInSignatureBindingFix(error: ValueNotContainedMutabilityAccessibilityMoreInBindingError) =
+ inherit FSharpQuickFixBase()
+
+ let tryFindBindingSignatureAccessRights (declaredElement: IFSharpMember) =
+ declaredElement.GetDeclarations()
+ |> Seq.tryPick (function
+ | :? IReferencePat as pat when pat.IsFSharpSigFile() ->
+ match pat.DeclaredElement.As() with
+ | null -> None
+ | sigMember ->
+ let bindingSignature = BindingSignatureNavigator.GetByHeadPattern(pat)
+ if isNull bindingSignature then None else
+ Some (bindingSignature, sigMember.GetAccessRights())
+ | _ -> None
+ )
+
+ let tryFindImplementationBindingInfo (pat: ITopReferencePat) =
+ if isNull pat then None else
+
+ match pat.DeclaredElement.As() with
+ | null -> None
+ | fsMember -> Some fsMember
+
+ let mutable implAccessRights = AccessRights.NONE
+ let mutable bindingSignature = null
+
+ override x.Text = $"Update accessibility for {error.ReferenceName.Identifier.Name} in signature"
+
+ override x.IsAvailable _ =
+ let topPat = TopReferencePatNavigator.GetByReferenceName(error.ReferenceName)
+ match tryFindImplementationBindingInfo topPat with
+ | None -> false
+ | Some implDeclaredElement ->
+ match tryFindBindingSignatureAccessRights implDeclaredElement with
+ | None -> false
+ | Some (bindingSig, sigAccessRights) ->
+ implAccessRights <- implDeclaredElement.GetAccessRights()
+ bindingSignature <- bindingSig
+ implAccessRights <> sigAccessRights
+
+ override x.ExecutePsiTransaction _ =
+ use writeCookie = WriteLockCookie.Create(error.ReferenceName.IsPhysical())
+ bindingSignature.SetAccessModifier(implAccessRights)
diff --git a/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureMemberFix.fs b/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureMemberFix.fs
new file mode 100644
index 0000000000..1bbcf69377
--- /dev/null
+++ b/ReSharper.FSharp/src/FSharp.Psi.Intentions/src/QuickFixes/UpdateAccessibilityInSignatureMemberFix.fs
@@ -0,0 +1,82 @@
+namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.QuickFixes
+
+open JetBrains.ReSharper.Plugins.FSharp.Psi
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Tree
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.Highlightings
+open JetBrains.ReSharper.Psi
+open JetBrains.ReSharper.Psi.Tree
+open JetBrains.ReSharper.Resources.Shell
+
+type UpdateAccessibilityInSignatureMemberFix(error: ValueNotContainedMutabilityAccessibilityMoreInMemberError) =
+ inherit FSharpQuickFixBase()
+
+ let tryFindSignatureMemberAccessRights (memberDeclaration: IOverridableMemberDeclaration) =
+ if isNull memberDeclaration.DeclaredElement then None else
+ memberDeclaration.DeclaredElement.GetDeclarations()
+ |> Seq.tryPick (function
+ | :? IMemberSignature as memberSig -> Some (memberSig, memberSig.GetAccessRights())
+ | _ -> None)
+
+ let tryFindSignatureMemberInPropertyAccessRights (memberDeclaration: IMemberDeclaration) (accessorDeclaration:IAccessorDeclaration) =
+ if isNull memberDeclaration.DeclaredElement then None else
+ let implAccessRights = accessorDeclaration.GetAccessRights()
+
+ let allDeclarations : IDeclaration array = memberDeclaration.DeclaredElement.GetDeclarations() |> Seq.toArray
+ let allDeclarations =
+ if allDeclarations.Length > 1 then allDeclarations else
+
+ // Search via the parent
+ let fm = memberDeclaration.DeclaredElement.As()
+ if isNull fm then Array.empty else
+
+ fm.ContainingType.GetDeclarations()
+ |> Seq.tryPick (fun t ->
+ match t with
+ | :? IFSharpTypeDeclaration as td when td.IsFSharpSigFile() ->
+ td.TypeMembers
+ |> Seq.choose (function | :? IDeclaration as decl -> Some decl | _ -> None)
+ |> Seq.toArray
+ |> Some
+ | _ -> None)
+ |> Option.defaultValue Array.empty
+
+ allDeclarations
+ |> Seq.tryPick (function
+ | :? IMemberSignature as memberSig ->
+ memberSig.AccessorDeclarationsEnumerable
+ |> Seq.tryFind (fun ad -> ad.DeclaredName = accessorDeclaration.DeclaredName)
+ |> Option.bind (fun _ ->
+ if implAccessRights <> memberSig.GetAccessRights() then
+ Some (memberSig, accessorDeclaration.DeclaredName, implAccessRights)
+ else None)
+ | _ -> None)
+
+ let updatableSignatures : ResizeArray = ResizeArray()
+
+ override x.Text = $"Update accessibility for {error.MemberDeclaration.Identifier.GetText()} in signature"
+
+ override x.IsAvailable _ =
+ if isNull error.MemberDeclaration then false else
+ // If both the get and set of a property are reported, IsAvailable will be called twice.
+ if updatableSignatures.Count > 0 then true else
+
+ match error.MemberDeclaration with
+ | :? IMemberDeclaration as md when md.AccessorDeclarations.Count = 2 ->
+ // property with get/set
+ md.AccessorDeclarationsEnumerable
+ |> Seq.choose (tryFindSignatureMemberInPropertyAccessRights md)
+ |> Seq.iter (fun (memberSig, _declName, implAccR) -> updatableSignatures.Add (memberSig, implAccR))
+ | _ ->
+ match tryFindSignatureMemberAccessRights error.MemberDeclaration with
+ | None -> ()
+ | Some (ms, sigAccessRights) ->
+ let implAccessRights = error.MemberDeclaration.GetAccessRights()
+ if implAccessRights <> sigAccessRights then
+ updatableSignatures.Add (ms, implAccessRights)
+
+ updatableSignatures.Count > 0
+
+ override x.ExecutePsiTransaction _ =
+ use writeCookie = WriteLockCookie.Create(error.MemberDeclaration.IsPhysical())
+ for memberSignature, implAccessRights in updatableSignatures do
+ memberSignature.SetAccessModifier(implAccessRights)
diff --git a/ReSharper.FSharp/src/FSharp.Psi.Services/src/Daemon/Highlightings/FcsErrors.xml b/ReSharper.FSharp/src/FSharp.Psi.Services/src/Daemon/Highlightings/FcsErrors.xml
index 891563e5b0..1b989c12f1 100644
--- a/ReSharper.FSharp/src/FSharp.Psi.Services/src/Daemon/Highlightings/FcsErrors.xml
+++ b/ReSharper.FSharp/src/FSharp.Psi.Services/src/Daemon/Highlightings/FcsErrors.xml
@@ -218,6 +218,28 @@
UpdateMutabilityInSignatureFix
+
+
+
+ referenceName.GetNavigationRange()
+
+ fcsMessage
+
+
+ UpdateAccessibilityInSignatureBindingFix
+
+
+
+
+
+ memberDeclaration.GetNavigationRange()
+
+ fcsMessage
+
+
+ UpdateAccessibilityInSignatureMemberFix
+
+
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/FSharp.psi b/ReSharper.FSharp/src/FSharp.Psi/src/FSharp.psi
index aef607808c..1fc69db256 100644
--- a/ReSharper.FSharp/src/FSharp.Psi/src/FSharp.psi
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/FSharp.psi
@@ -1317,6 +1317,7 @@ memberSignature options { stubBase="FSharpProperTypeMemberDeclarationBase"; } e
attributeList*
STATIC?
memberKeyword{MEMBER_KEYWORD, MemberKeyword}
+ INLINE?
accessModifier{ACCESS_MODIFIER, AccessModifier}?
identOrOpName{IDENTIFIER, Identifier}
postfixTypeParameterDeclarationList?
@@ -1369,6 +1370,8 @@ autoPropertyDeclaration options { stubBase="FSharpProperTypeMemberDeclarationBas
STATIC?
memberKeyword{MEMBER, MemberKeyword}
VAL
+ MUTABLE?
+ accessModifier{ACCESS_MODIFIER, AccessModifier}?
IDENTIFIER
EQUALS
chameleonExpression
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/ModifiersUtil.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/ModifiersUtil.cs
index b7087faa59..f779a1c0dd 100644
--- a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/ModifiersUtil.cs
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/ModifiersUtil.cs
@@ -5,6 +5,7 @@
using JetBrains.ReSharper.Plugins.FSharp.Psi.Tree;
using JetBrains.ReSharper.Psi;
using JetBrains.ReSharper.Psi.ExtensionsAPI.Caches2;
+using JetBrains.ReSharper.Psi.ExtensionsAPI.Tree;
using JetBrains.ReSharper.Psi.Tree;
namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Impl
@@ -121,5 +122,15 @@ public static AccessRights GetAccessRights([CanBeNull] ITokenNode accessModifier
return AccessRights.PUBLIC;
}
+
+ public static ITreeNode GetAccessNode(AccessRights accessRights)
+ {
+ return accessRights switch
+ {
+ AccessRights.PRIVATE => FSharpTokenType.PRIVATE.CreateTreeElement(),
+ AccessRights.INTERNAL => FSharpTokenType.INTERNAL.CreateTreeElement(),
+ _ => FSharpTokenType.PUBLIC.CreateTreeElement()
+ };
+ }
}
}
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/AutoPropertyDeclaration.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/AutoPropertyDeclaration.cs
index 4e6d5b1eaf..caeb2cb091 100644
--- a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/AutoPropertyDeclaration.cs
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/AutoPropertyDeclaration.cs
@@ -29,5 +29,6 @@ protected override IDeclaredElement CreateDeclaredElement(FSharpSymbol fcsSymbol
public override bool IsOverride => this.IsOverride();
public override bool IsExplicitImplementation => this.IsExplicitImplementation();
+ public override AccessRights GetAccessRights() => ModifiersUtil.GetAccessRights(AccessModifier);
}
}
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/BindingSignature.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/BindingSignature.cs
index b398945633..4db40a0a42 100644
--- a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/BindingSignature.cs
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/BindingSignature.cs
@@ -1,4 +1,5 @@
using JetBrains.ReSharper.Plugins.FSharp.Psi.Parsing;
+using JetBrains.ReSharper.Psi;
using JetBrains.ReSharper.Psi.ExtensionsAPI.Tree;
namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Impl.Tree
@@ -22,5 +23,18 @@ public void SetIsMutable(bool value)
if (headPat != null)
FSharpImplUtil.AddTokenBefore(headPat, FSharpTokenType.MUTABLE);
}
+
+ public void SetAccessModifier(AccessRights accessModifier)
+ {
+ // TODO: check for AccessRights.NONE
+ if (AccessModifier == null)
+ {
+ ModificationUtil.AddChildAfter(BindingKeyword, ModifiersUtil.GetAccessNode(accessModifier));
+ }
+ else
+ {
+ ModificationUtil.ReplaceChild(AccessModifier, ModifiersUtil.GetAccessNode(accessModifier));
+ }
+ }
}
}
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/MemberSignature.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/MemberSignature.cs
index 37a79dce91..d1876bb4c5 100644
--- a/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/MemberSignature.cs
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Impl/Tree/MemberSignature.cs
@@ -2,6 +2,7 @@
using JetBrains.ReSharper.Plugins.FSharp.Psi.Parsing;
using JetBrains.ReSharper.Plugins.FSharp.Psi.Tree;
using JetBrains.ReSharper.Psi;
+using JetBrains.ReSharper.Psi.ExtensionsAPI.Tree;
namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Impl.Tree
{
@@ -27,9 +28,21 @@ protected override IDeclaredElement CreateDeclaredElement(FSharpSymbol fcsSymbol
this.CreateMemberDeclaredElement(fcsSymbol);
public bool IsIndexer => this.IsIndexer();
+ public void SetAccessModifier(AccessRights accessModifier)
+ {
+ if (AccessModifier == null)
+ {
+ ModificationUtil.AddChildAfter(InlineKeyword ?? MemberKeyword, ModifiersUtil.GetAccessNode(accessModifier));
+ }
+ else
+ {
+ ModificationUtil.ReplaceChild(AccessModifier, ModifiersUtil.GetAccessNode(accessModifier));
+ }
+ }
public override bool IsStatic => StaticKeyword != null;
public override bool IsVirtual => MemberKeyword?.GetTokenType() == FSharpTokenType.DEFAULT;
public override bool IsOverride => this.IsOverride();
+ public override AccessRights GetAccessRights() => ModifiersUtil.GetAccessRights(AccessModifier);
}
}
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IBindingSignature.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IBindingSignature.cs
new file mode 100644
index 0000000000..67483a1d39
--- /dev/null
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IBindingSignature.cs
@@ -0,0 +1,9 @@
+using JetBrains.ReSharper.Psi;
+
+namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Tree
+{
+ public partial interface IBindingSignature
+ {
+ void SetAccessModifier(AccessRights accessModifier);
+ }
+}
diff --git a/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IMemberSignature.cs b/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IMemberSignature.cs
new file mode 100644
index 0000000000..fb8d5a79f4
--- /dev/null
+++ b/ReSharper.FSharp/src/FSharp.Psi/src/Tree/IMemberSignature.cs
@@ -0,0 +1,9 @@
+using JetBrains.ReSharper.Psi;
+
+namespace JetBrains.ReSharper.Plugins.FSharp.Psi.Tree
+{
+ public partial interface IMemberSignature
+ {
+ void SetAccessModifier(AccessRights accessModifier);
+ }
+}
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs
new file mode 100644
index 0000000000..6834fdaa81
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs
@@ -0,0 +1,3 @@
+module A
+
+let private a{caret} = 0
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs.gold
new file mode 100644
index 0000000000..6834fdaa81
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fs.gold
@@ -0,0 +1,3 @@
+module A
+
+let private a{caret} = 0
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi
new file mode 100644
index 0000000000..c186b48986
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi
@@ -0,0 +1,3 @@
+module A
+
+val internal a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi.gold
new file mode 100644
index 0000000000..3e1989afdd
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 01.fsi.gold
@@ -0,0 +1,3 @@
+module A
+
+val private a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs
new file mode 100644
index 0000000000..38bae14239
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs
@@ -0,0 +1,3 @@
+module A
+
+let internal a{caret} = 0
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs.gold
new file mode 100644
index 0000000000..38bae14239
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fs.gold
@@ -0,0 +1,3 @@
+module A
+
+let internal a{caret} = 0
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi
new file mode 100644
index 0000000000..ecb2230752
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi
@@ -0,0 +1,3 @@
+module A
+
+val a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi.gold
new file mode 100644
index 0000000000..9fd34442ef
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 02.fsi.gold
@@ -0,0 +1,3 @@
+module A
+
+val internal a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs
new file mode 100644
index 0000000000..374651c526
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs
@@ -0,0 +1,3 @@
+module A
+
+let inline private a{caret} b = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs.gold
new file mode 100644
index 0000000000..374651c526
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fs.gold
@@ -0,0 +1,3 @@
+module A
+
+let inline private a{caret} b = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi
new file mode 100644
index 0000000000..c7cfe72551
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi
@@ -0,0 +1,3 @@
+module A
+
+val inline public a: b: 't -> unit
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi.gold
new file mode 100644
index 0000000000..a71d4689c7
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 03.fsi.gold
@@ -0,0 +1,3 @@
+module A
+
+val inline private a: b: 't -> unit
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs
new file mode 100644
index 0000000000..d7eef5488c
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs
@@ -0,0 +1,3 @@
+module A
+
+let mutable private a{caret} = 4
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs.gold
new file mode 100644
index 0000000000..d7eef5488c
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fs.gold
@@ -0,0 +1,3 @@
+module A
+
+let mutable private a{caret} = 4
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi
new file mode 100644
index 0000000000..343f1eb9ba
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi
@@ -0,0 +1,3 @@
+module A
+
+val mutable public a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi.gold
new file mode 100644
index 0000000000..8eb129387f
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureBindingFix/Binding - 04.fsi.gold
@@ -0,0 +1,3 @@
+module A
+
+val mutable private a: int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs
new file mode 100644
index 0000000000..8c4349c3a4
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member val private Foo{caret} = 1 with get,set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs.gold
new file mode 100644
index 0000000000..8c4349c3a4
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member val private Foo{caret} = 1 with get,set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi
new file mode 100644
index 0000000000..6df7d1a626
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ member Foo: int with get,set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi.gold
new file mode 100644
index 0000000000..1ec9dafda7
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/AutoProperty - 01.fsi.gold
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ member private Foo: int with get,set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs
new file mode 100644
index 0000000000..430bc71e15
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member private this.Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs.gold
new file mode 100644
index 0000000000..430bc71e15
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member private this.Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi
new file mode 100644
index 0000000000..e466eaa4cb
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ member internal Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi.gold
new file mode 100644
index 0000000000..d257281a06
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 01.fsi.gold
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ member private Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs
new file mode 100644
index 0000000000..32ad7c9484
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ static member private Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs.gold
new file mode 100644
index 0000000000..32ad7c9484
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ static member private Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi
new file mode 100644
index 0000000000..ba943c6e3f
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ static member public Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi.gold
new file mode 100644
index 0000000000..581dab478a
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 02.fsi.gold
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ static member private Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs
new file mode 100644
index 0000000000..4dbb32cacc
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ static member inline private Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs.gold
new file mode 100644
index 0000000000..4dbb32cacc
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ static member inline private Foo{caret}() = 1
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi
new file mode 100644
index 0000000000..f19e345ad8
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ static member inline Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi.gold
new file mode 100644
index 0000000000..cb67a27f8d
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Member - 03.fsi.gold
@@ -0,0 +1,5 @@
+module A
+
+type B =
+ new: unit -> B
+ static member inline private Foo: unit -> int
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs
new file mode 100644
index 0000000000..23bfc44577
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with get () = 1 and private set (v: int) = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs.gold
new file mode 100644
index 0000000000..23bfc44577
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with get () = 1 and private set (v: int) = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi
new file mode 100644
index 0000000000..b48867d5f8
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member Foo: int with get
+ member internal Foo: int with set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi.gold
new file mode 100644
index 0000000000..bf468b2f4f
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 01.fsi.gold
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member Foo: int with get
+ member private Foo: int with set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs
new file mode 100644
index 0000000000..6eb1fa0a94
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with private get () = 1 and internal set (v: int) = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs.gold
new file mode 100644
index 0000000000..6eb1fa0a94
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with private get () = 1 and internal set (v: int) = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi
new file mode 100644
index 0000000000..915701d806
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member Foo: int with get
+ member Foo: int with set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi.gold
new file mode 100644
index 0000000000..1d00910ec3
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 02.fsi.gold
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member private Foo: int with get
+ member internal Foo: int with set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs
new file mode 100644
index 0000000000..3cf3d4db7a
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with private get (i:int) = 1 and private set (i:int) v = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs.gold
new file mode 100644
index 0000000000..3cf3d4db7a
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fs.gold
@@ -0,0 +1,4 @@
+module A
+
+type B() =
+ member this.Foo{caret} with private get (i:int) = 1 and private set (i:int) v = ()
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi
new file mode 100644
index 0000000000..38bf571e7f
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member public Foo: int -> int with get
+ member Foo: int -> int with set
diff --git a/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi.gold b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi.gold
new file mode 100644
index 0000000000..2e99550a7f
--- /dev/null
+++ b/ReSharper.FSharp/test/data/features/quickFixes/updateAccessibilityInSignatureMemberFix/Property - 03.fsi.gold
@@ -0,0 +1,6 @@
+module A
+
+type B =
+ new: unit -> B
+ member private Foo: int -> int with get
+ member private Foo: int -> int with set
diff --git a/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/FSharp.Intentions.Tests.fsproj b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/FSharp.Intentions.Tests.fsproj
index 851df9608e..e68d64e2a9 100644
--- a/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/FSharp.Intentions.Tests.fsproj
+++ b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/FSharp.Intentions.Tests.fsproj
@@ -118,6 +118,8 @@
+
+
diff --git a/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureBindingFixTest.fs b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureBindingFixTest.fs
new file mode 100644
index 0000000000..7d891d40dc
--- /dev/null
+++ b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureBindingFixTest.fs
@@ -0,0 +1,16 @@
+namespace JetBrains.ReSharper.Plugins.FSharp.Tests.Intentions.QuickFixes
+
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.QuickFixes
+open JetBrains.ReSharper.Plugins.FSharp.Tests
+open NUnit.Framework
+
+[]
+type UpdateAccessibilityInSignatureBindingFixTest() =
+ inherit FSharpQuickFixTestBase()
+
+ override x.RelativeTestDataPath = "features/quickFixes/updateAccessibilityInSignatureBindingFix"
+
+ [] member x.``Binding - 01`` () = x.DoNamedTestWithSignature()
+ [] member x.``Binding - 02`` () = x.DoNamedTestWithSignature()
+ [] member x.``Binding - 03`` () = x.DoNamedTestWithSignature()
+ [] member x.``Binding - 04`` () = x.DoNamedTestWithSignature()
diff --git a/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureMemberFixTest.fs b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureMemberFixTest.fs
new file mode 100644
index 0000000000..d8c72bd514
--- /dev/null
+++ b/ReSharper.FSharp/test/src/FSharp.Intentions.Tests/src/QuickFixes/UpdateAccessibilityInSignatureMemberFixTest.fs
@@ -0,0 +1,21 @@
+namespace JetBrains.ReSharper.Plugins.FSharp.Tests.Intentions.QuickFixes
+
+open JetBrains.ReSharper.Plugins.FSharp.Psi.Features.Daemon.QuickFixes
+open JetBrains.ReSharper.Plugins.FSharp.Tests
+open NUnit.Framework
+
+[]
+type UpdateAccessibilityInSignatureMemberFixTest() =
+ inherit FSharpQuickFixTestBase()
+
+ override x.RelativeTestDataPath = "features/quickFixes/updateAccessibilityInSignatureMemberFix"
+
+ [] member x.``Member - 01`` () = x.DoNamedTestWithSignature()
+ [] member x.``Member - 02`` () = x.DoNamedTestWithSignature()
+ [] member x.``Member - 03`` () = x.DoNamedTestWithSignature()
+
+ [] member x.``AutoProperty - 01`` () = x.DoNamedTestWithSignature()
+
+ [] member x.``Property - 01`` () = x.DoNamedTestWithSignature()
+ [] member x.``Property - 02`` () = x.DoNamedTestWithSignature()
+ [] member x.``Property - 03`` () = x.DoNamedTestWithSignature()