From 634c539a2a190363c19d5abff7962ff7931c4228 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 16 Jun 2023 17:10:10 +0200 Subject: [PATCH 1/5] Raise error when the accessibility of the getter and setter don't match. --- src/Compiler/SyntaxTree/ParseHelpers.fs | 8 + .../data/SyntaxTree/Member/GetSetMember 01.fs | 5 + .../SyntaxTree/Member/GetSetMember 01.fs.bsl | 209 ++++++++++ .../data/SyntaxTree/Member/GetSetMember 02.fs | 7 + .../SyntaxTree/Member/GetSetMember 02.fs.bsl | 385 ++++++++++++++++++ 5 files changed, 614 insertions(+) create mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 01.fs create mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 02.fs create mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs index 5821534137a..338dac8585a 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fs +++ b/src/Compiler/SyntaxTree/ParseHelpers.fs @@ -764,6 +764,14 @@ let mkSynMemberDefnGetSet | Some (SynMemberDefn.Member (setBinding, m1), SetIdent mSet), Some (SynMemberDefn.Member (getBinding, m2), GetIdent mGet) -> let range = unionRanges m1 m2 + match propertyNameBindingPat, getBinding, setBinding with + | SynPat.LongIdent(accessibility = None), + SynBinding(headPat = SynPat.LongIdent (accessibility = getVis)), + SynBinding(headPat = SynPat.LongIdent (accessibility = setVis)) -> + if getVis <> setVis then + errorR (Error(FSComp.SR.parsMultipleAccessibilitiesForGetSet (), setBinding.RangeOfBindingWithoutRhs)) + | _ -> () + let trivia = { InlineKeyword = opt_inline diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs new file mode 100644 index 00000000000..9e8c571bc42 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs @@ -0,0 +1,5 @@ +module Foo + +type Foo() = + member f.X with internal get (key1, key2) = true and private set (key1, key2) value = () + member internal f.Y with get (key1, key2) = true and private set (key1, key2) value = () diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl new file mode 100644 index 00000000000..5e7607b87be --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl @@ -0,0 +1,209 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/GetSetMember 01.fs", false, QualifiedNameOfFile Foo, [], [], + [SynModuleOrNamespace + ([Foo], false, NamedModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, (3,5--3,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], SimplePats ([], [], (3,8--3,10)), None, + PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), + (3,5--3,8), { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; X], [(4,12--4,13)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (4,34--4,38)); + Named + (SynIdent (key2, None), false, + None, (4,40--4,44))], + [(4,38--4,39)], (4,34--4,44)), + (4,33--4,45))], + Some (Internal (4,20--4,28)), (4,20--4,45)), + None, Const (Bool true, (4,48--4,52)), + (4,20--4,45), NoneAtInvisible, + { LeadingKeyword = Member (4,4--4,10) + InlineKeyword = None + EqualsRange = Some (4,46--4,47) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; X], [(4,12--4,13)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (4,70--4,74)); + Named + (SynIdent (key2, None), false, None, + (4,76--4,80)); + Named + (SynIdent (value, None), false, None, + (4,82--4,87))], [(4,74--4,75)], + (4,69--4,87))], + Some (Private (4,57--4,64)), (4,57--4,87)), + None, Const (Unit, (4,90--4,92)), (4,57--4,87), + NoneAtInvisible, + { LeadingKeyword = Member (4,4--4,10) + InlineKeyword = None + EqualsRange = Some (4,88--4,89) })), + (4,4--4,92), { InlineKeyword = None + WithKeyword = (4,15--4,19) + GetKeyword = Some (4,29--4,32) + AndKeyword = Some (4,53--4,56) + SetKeyword = Some (4,65--4,68) }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Y], [(5,21--5,22)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (5,34--5,38)); + Named + (SynIdent (key2, None), false, + None, (5,40--5,44))], + [(5,38--5,39)], (5,34--5,44)), + (5,33--5,45))], + Some (Internal (5,11--5,19)), (5,29--5,45)), + None, Const (Bool true, (5,48--5,52)), + (5,29--5,45), NoneAtInvisible, + { LeadingKeyword = Member (5,4--5,10) + InlineKeyword = None + EqualsRange = Some (5,46--5,47) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Y], [(5,21--5,22)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (5,70--5,74)); + Named + (SynIdent (key2, None), false, None, + (5,76--5,80)); + Named + (SynIdent (value, None), false, None, + (5,82--5,87))], [(5,74--5,75)], + (5,69--5,87))], + Some (Private (5,57--5,64)), (5,57--5,87)), + None, Const (Unit, (5,90--5,92)), (5,57--5,87), + NoneAtInvisible, + { LeadingKeyword = Member (5,4--5,10) + InlineKeyword = None + EqualsRange = Some (5,88--5,89) })), + (5,4--5,92), { InlineKeyword = None + WithKeyword = (5,24--5,28) + GetKeyword = Some (5,29--5,32) + AndKeyword = Some (5,53--5,56) + SetKeyword = Some (5,65--5,68) })], + (4,4--5,92)), [], + Some + (ImplicitCtor + (None, [], SimplePats ([], [], (3,8--3,10)), None, + PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), + (3,5--3,8), { AsKeyword = None })), (3,5--5,92), + { LeadingKeyword = Type (3,0--3,4) + EqualsRange = Some (3,11--3,12) + WithKeyword = None })], (3,0--5,92))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,92), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,57)-(4,87) parse error Multiple accessibilities given for property getter or setter +(5,57)-(5,87) parse error Multiple accessibilities given for property getter or setter diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs new file mode 100644 index 00000000000..b528c0edef1 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs @@ -0,0 +1,7 @@ +module Foo + +type Foo() = + member f.W with private set (key1, key2) value = () and get (key1, key2) = true + member f.X with get (key1, key2) = true and private set (key1, key2) value = () + member f.Y with private get (key1, key2) = true and public set (key1, key2) value = () + member f.Z with public set (key1, key2) value = () and internal get (key1, key2) = true diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl new file mode 100644 index 00000000000..fa1f684c39c --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl @@ -0,0 +1,385 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/GetSetMember 02.fs", false, QualifiedNameOfFile Foo, [], [], + [SynModuleOrNamespace + ([Foo], false, NamedModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [Foo], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, (3,5--3,8)), + ObjectModel + (Unspecified, + [ImplicitCtor + (None, [], SimplePats ([], [], (3,8--3,10)), None, + PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), + (3,5--3,8), { AsKeyword = None }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; W], [(4,12--4,13)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (4,65--4,69)); + Named + (SynIdent (key2, None), false, + None, (4,71--4,75))], + [(4,69--4,70)], (4,65--4,75)), + (4,64--4,76))], None, (4,60--4,76)), + None, Const (Bool true, (4,79--4,83)), + (4,60--4,76), NoneAtInvisible, + { LeadingKeyword = Member (4,4--4,10) + InlineKeyword = None + EqualsRange = Some (4,77--4,78) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; W], [(4,12--4,13)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (4,33--4,37)); + Named + (SynIdent (key2, None), false, None, + (4,39--4,43)); + Named + (SynIdent (value, None), false, None, + (4,45--4,50))], [(4,37--4,38)], + (4,32--4,50))], + Some (Private (4,20--4,27)), (4,20--4,50)), + None, Const (Unit, (4,53--4,55)), (4,20--4,50), + NoneAtInvisible, + { LeadingKeyword = Member (4,4--4,10) + InlineKeyword = None + EqualsRange = Some (4,51--4,52) })), + (4,4--4,83), { InlineKeyword = None + WithKeyword = (4,15--4,19) + GetKeyword = Some (4,60--4,63) + AndKeyword = Some (4,56--4,59) + SetKeyword = Some (4,28--4,31) }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; X], [(5,12--5,13)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (5,25--5,29)); + Named + (SynIdent (key2, None), false, + None, (5,31--5,35))], + [(5,29--5,30)], (5,25--5,35)), + (5,24--5,36))], None, (5,20--5,36)), + None, Const (Bool true, (5,39--5,43)), + (5,20--5,36), NoneAtInvisible, + { LeadingKeyword = Member (5,4--5,10) + InlineKeyword = None + EqualsRange = Some (5,37--5,38) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; X], [(5,12--5,13)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (5,61--5,65)); + Named + (SynIdent (key2, None), false, None, + (5,67--5,71)); + Named + (SynIdent (value, None), false, None, + (5,73--5,78))], [(5,65--5,66)], + (5,60--5,78))], + Some (Private (5,48--5,55)), (5,48--5,78)), + None, Const (Unit, (5,81--5,83)), (5,48--5,78), + NoneAtInvisible, + { LeadingKeyword = Member (5,4--5,10) + InlineKeyword = None + EqualsRange = Some (5,79--5,80) })), + (5,4--5,83), { InlineKeyword = None + WithKeyword = (5,15--5,19) + GetKeyword = Some (5,20--5,23) + AndKeyword = Some (5,44--5,47) + SetKeyword = Some (5,56--5,59) }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Y], [(6,12--6,13)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (6,33--6,37)); + Named + (SynIdent (key2, None), false, + None, (6,39--6,43))], + [(6,37--6,38)], (6,33--6,43)), + (6,32--6,44))], + Some (Private (6,20--6,27)), (6,20--6,44)), + None, Const (Bool true, (6,47--6,51)), + (6,20--6,44), NoneAtInvisible, + { LeadingKeyword = Member (6,4--6,10) + InlineKeyword = None + EqualsRange = Some (6,45--6,46) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Y], [(6,12--6,13)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (6,68--6,72)); + Named + (SynIdent (key2, None), false, None, + (6,74--6,78)); + Named + (SynIdent (value, None), false, None, + (6,80--6,85))], [(6,72--6,73)], + (6,67--6,85))], + Some (Public (6,56--6,62)), (6,56--6,85)), + None, Const (Unit, (6,88--6,90)), (6,56--6,85), + NoneAtInvisible, + { LeadingKeyword = Member (6,4--6,10) + InlineKeyword = None + EqualsRange = Some (6,86--6,87) })), + (6,4--6,90), { InlineKeyword = None + WithKeyword = (6,15--6,19) + GetKeyword = Some (6,28--6,31) + AndKeyword = Some (6,52--6,55) + SetKeyword = Some (6,63--6,66) }); + GetSetMember + (Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertyGet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Z], [(7,12--7,13)], [None; None]), + Some get, None, + Pats + [Paren + (Tuple + (false, + [Named + (SynIdent (key1, None), false, + None, (7,73--7,77)); + Named + (SynIdent (key2, None), false, + None, (7,79--7,83))], + [(7,77--7,78)], (7,73--7,83)), + (7,72--7,84))], + Some (Internal (7,59--7,67)), (7,59--7,84)), + None, Const (Bool true, (7,87--7,91)), + (7,59--7,84), NoneAtInvisible, + { LeadingKeyword = Member (7,4--7,10) + InlineKeyword = None + EqualsRange = Some (7,85--7,86) })), + Some + (SynBinding + (None, Normal, false, false, [], + PreXmlMerge + (PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), + SynValData + (Some + { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = PropertySet }, + SynValInfo + ([[SynArgInfo ([], false, None)]; + [SynArgInfo ([], false, Some key1); + SynArgInfo ([], false, Some key2); + SynArgInfo ([], false, Some value)]], + SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent + ([f; Z], [(7,12--7,13)], [None; None]), + Some set, None, + Pats + [Tuple + (false, + [Named + (SynIdent (key1, None), false, None, + (7,32--7,36)); + Named + (SynIdent (key2, None), false, None, + (7,38--7,42)); + Named + (SynIdent (value, None), false, None, + (7,44--7,49))], [(7,36--7,37)], + (7,31--7,49))], + Some (Public (7,20--7,26)), (7,20--7,49)), + None, Const (Unit, (7,52--7,54)), (7,20--7,49), + NoneAtInvisible, + { LeadingKeyword = Member (7,4--7,10) + InlineKeyword = None + EqualsRange = Some (7,50--7,51) })), + (7,4--7,91), { InlineKeyword = None + WithKeyword = (7,15--7,19) + GetKeyword = Some (7,68--7,71) + AndKeyword = Some (7,55--7,58) + SetKeyword = Some (7,27--7,30) })], + (4,4--7,91)), [], + Some + (ImplicitCtor + (None, [], SimplePats ([], [], (3,8--3,10)), None, + PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), + (3,5--3,8), { AsKeyword = None })), (3,5--7,91), + { LeadingKeyword = Type (3,0--3,4) + EqualsRange = Some (3,11--3,12) + WithKeyword = None })], (3,0--7,91))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,91), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,20)-(4,50) parse error Multiple accessibilities given for property getter or setter +(5,48)-(5,78) parse error Multiple accessibilities given for property getter or setter +(6,56)-(6,85) parse error Multiple accessibilities given for property getter or setter +(7,20)-(7,49) parse error Multiple accessibilities given for property getter or setter From d6d066ed7b79dec8c2ee99c9b96a2042058e394c Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 19 Jun 2023 14:28:49 +0200 Subject: [PATCH 2/5] Revert ParseHelpers.fs --- src/Compiler/SyntaxTree/ParseHelpers.fs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs index 338dac8585a..5821534137a 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fs +++ b/src/Compiler/SyntaxTree/ParseHelpers.fs @@ -764,14 +764,6 @@ let mkSynMemberDefnGetSet | Some (SynMemberDefn.Member (setBinding, m1), SetIdent mSet), Some (SynMemberDefn.Member (getBinding, m2), GetIdent mGet) -> let range = unionRanges m1 m2 - match propertyNameBindingPat, getBinding, setBinding with - | SynPat.LongIdent(accessibility = None), - SynBinding(headPat = SynPat.LongIdent (accessibility = getVis)), - SynBinding(headPat = SynPat.LongIdent (accessibility = setVis)) -> - if getVis <> setVis then - errorR (Error(FSComp.SR.parsMultipleAccessibilitiesForGetSet (), setBinding.RangeOfBindingWithoutRhs)) - | _ -> () - let trivia = { InlineKeyword = opt_inline From ebed40a1f307323c641816d88910994c2f6ea197 Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 19 Jun 2023 14:36:59 +0200 Subject: [PATCH 3/5] Update error message. --- src/Compiler/FSComp.txt | 2 +- .../SyntaxTree/Member/GetSetMember 01.fs.bsl | 3 +- .../data/SyntaxTree/Member/GetSetMember 02.fs | 7 - .../SyntaxTree/Member/GetSetMember 02.fs.bsl | 385 ------------------ 4 files changed, 2 insertions(+), 395 deletions(-) delete mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 02.fs delete mode 100644 tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index 6aa808c45aa..a035bb0a28d 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -421,7 +421,7 @@ parsAttributesMustComeBeforeVal,"Attributes should be placed before 'val'" 555,parsGetAndOrSetRequired,"'get' and/or 'set' required" 556,parsTypeAnnotationsOnGetSet,"Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...'" 557,parsGetterMustHaveAtLeastOneArgument,"A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...'" -558,parsMultipleAccessibilitiesForGetSet,"Multiple accessibilities given for property getter or setter" +558,parsMultipleAccessibilitiesForGetSet,"When the visibility for a property is specified, setting the visibility of the set or get method is not allowed." 559,parsSetSyntax,"Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... '" 560,parsInterfacesHaveSameVisibilityAsEnclosingType,"Interfaces always have the same visibility as the enclosing type" 561,parsAccessibilityModsIllegalForAbstract,"Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type." diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl index 5e7607b87be..3d88c0ff50d 100644 --- a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl @@ -205,5 +205,4 @@ ImplFile { ConditionalDirectives = [] CodeComments = [] }, set [])) -(4,57)-(4,87) parse error Multiple accessibilities given for property getter or setter -(5,57)-(5,87) parse error Multiple accessibilities given for property getter or setter +(5,57)-(5,87) parse error When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs deleted file mode 100644 index b528c0edef1..00000000000 --- a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs +++ /dev/null @@ -1,7 +0,0 @@ -module Foo - -type Foo() = - member f.W with private set (key1, key2) value = () and get (key1, key2) = true - member f.X with get (key1, key2) = true and private set (key1, key2) value = () - member f.Y with private get (key1, key2) = true and public set (key1, key2) value = () - member f.Z with public set (key1, key2) value = () and internal get (key1, key2) = true diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl deleted file mode 100644 index fa1f684c39c..00000000000 --- a/tests/service/data/SyntaxTree/Member/GetSetMember 02.fs.bsl +++ /dev/null @@ -1,385 +0,0 @@ -ImplFile - (ParsedImplFileInput - ("/root/Member/GetSetMember 02.fs", false, QualifiedNameOfFile Foo, [], [], - [SynModuleOrNamespace - ([Foo], false, NamedModule, - [Types - ([SynTypeDefn - (SynComponentInfo - ([], None, [], [Foo], - PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), - false, None, (3,5--3,8)), - ObjectModel - (Unspecified, - [ImplicitCtor - (None, [], SimplePats ([], [], (3,8--3,10)), None, - PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), - (3,5--3,8), { AsKeyword = None }); - GetSetMember - (Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertyGet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; W], [(4,12--4,13)], [None; None]), - Some get, None, - Pats - [Paren - (Tuple - (false, - [Named - (SynIdent (key1, None), false, - None, (4,65--4,69)); - Named - (SynIdent (key2, None), false, - None, (4,71--4,75))], - [(4,69--4,70)], (4,65--4,75)), - (4,64--4,76))], None, (4,60--4,76)), - None, Const (Bool true, (4,79--4,83)), - (4,60--4,76), NoneAtInvisible, - { LeadingKeyword = Member (4,4--4,10) - InlineKeyword = None - EqualsRange = Some (4,77--4,78) })), - Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertySet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2); - SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; W], [(4,12--4,13)], [None; None]), - Some set, None, - Pats - [Tuple - (false, - [Named - (SynIdent (key1, None), false, None, - (4,33--4,37)); - Named - (SynIdent (key2, None), false, None, - (4,39--4,43)); - Named - (SynIdent (value, None), false, None, - (4,45--4,50))], [(4,37--4,38)], - (4,32--4,50))], - Some (Private (4,20--4,27)), (4,20--4,50)), - None, Const (Unit, (4,53--4,55)), (4,20--4,50), - NoneAtInvisible, - { LeadingKeyword = Member (4,4--4,10) - InlineKeyword = None - EqualsRange = Some (4,51--4,52) })), - (4,4--4,83), { InlineKeyword = None - WithKeyword = (4,15--4,19) - GetKeyword = Some (4,60--4,63) - AndKeyword = Some (4,56--4,59) - SetKeyword = Some (4,28--4,31) }); - GetSetMember - (Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertyGet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; X], [(5,12--5,13)], [None; None]), - Some get, None, - Pats - [Paren - (Tuple - (false, - [Named - (SynIdent (key1, None), false, - None, (5,25--5,29)); - Named - (SynIdent (key2, None), false, - None, (5,31--5,35))], - [(5,29--5,30)], (5,25--5,35)), - (5,24--5,36))], None, (5,20--5,36)), - None, Const (Bool true, (5,39--5,43)), - (5,20--5,36), NoneAtInvisible, - { LeadingKeyword = Member (5,4--5,10) - InlineKeyword = None - EqualsRange = Some (5,37--5,38) })), - Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertySet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2); - SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; X], [(5,12--5,13)], [None; None]), - Some set, None, - Pats - [Tuple - (false, - [Named - (SynIdent (key1, None), false, None, - (5,61--5,65)); - Named - (SynIdent (key2, None), false, None, - (5,67--5,71)); - Named - (SynIdent (value, None), false, None, - (5,73--5,78))], [(5,65--5,66)], - (5,60--5,78))], - Some (Private (5,48--5,55)), (5,48--5,78)), - None, Const (Unit, (5,81--5,83)), (5,48--5,78), - NoneAtInvisible, - { LeadingKeyword = Member (5,4--5,10) - InlineKeyword = None - EqualsRange = Some (5,79--5,80) })), - (5,4--5,83), { InlineKeyword = None - WithKeyword = (5,15--5,19) - GetKeyword = Some (5,20--5,23) - AndKeyword = Some (5,44--5,47) - SetKeyword = Some (5,56--5,59) }); - GetSetMember - (Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertyGet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; Y], [(6,12--6,13)], [None; None]), - Some get, None, - Pats - [Paren - (Tuple - (false, - [Named - (SynIdent (key1, None), false, - None, (6,33--6,37)); - Named - (SynIdent (key2, None), false, - None, (6,39--6,43))], - [(6,37--6,38)], (6,33--6,43)), - (6,32--6,44))], - Some (Private (6,20--6,27)), (6,20--6,44)), - None, Const (Bool true, (6,47--6,51)), - (6,20--6,44), NoneAtInvisible, - { LeadingKeyword = Member (6,4--6,10) - InlineKeyword = None - EqualsRange = Some (6,45--6,46) })), - Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertySet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2); - SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; Y], [(6,12--6,13)], [None; None]), - Some set, None, - Pats - [Tuple - (false, - [Named - (SynIdent (key1, None), false, None, - (6,68--6,72)); - Named - (SynIdent (key2, None), false, None, - (6,74--6,78)); - Named - (SynIdent (value, None), false, None, - (6,80--6,85))], [(6,72--6,73)], - (6,67--6,85))], - Some (Public (6,56--6,62)), (6,56--6,85)), - None, Const (Unit, (6,88--6,90)), (6,56--6,85), - NoneAtInvisible, - { LeadingKeyword = Member (6,4--6,10) - InlineKeyword = None - EqualsRange = Some (6,86--6,87) })), - (6,4--6,90), { InlineKeyword = None - WithKeyword = (6,15--6,19) - GetKeyword = Some (6,28--6,31) - AndKeyword = Some (6,52--6,55) - SetKeyword = Some (6,63--6,66) }); - GetSetMember - (Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertyGet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; Z], [(7,12--7,13)], [None; None]), - Some get, None, - Pats - [Paren - (Tuple - (false, - [Named - (SynIdent (key1, None), false, - None, (7,73--7,77)); - Named - (SynIdent (key2, None), false, - None, (7,79--7,83))], - [(7,77--7,78)], (7,73--7,83)), - (7,72--7,84))], - Some (Internal (7,59--7,67)), (7,59--7,84)), - None, Const (Bool true, (7,87--7,91)), - (7,59--7,84), NoneAtInvisible, - { LeadingKeyword = Member (7,4--7,10) - InlineKeyword = None - EqualsRange = Some (7,85--7,86) })), - Some - (SynBinding - (None, Normal, false, false, [], - PreXmlMerge - (PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), PreXmlDocEmpty), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = false - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = PropertySet }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some key1); - SynArgInfo ([], false, Some key2); - SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), - LongIdent - (SynLongIdent - ([f; Z], [(7,12--7,13)], [None; None]), - Some set, None, - Pats - [Tuple - (false, - [Named - (SynIdent (key1, None), false, None, - (7,32--7,36)); - Named - (SynIdent (key2, None), false, None, - (7,38--7,42)); - Named - (SynIdent (value, None), false, None, - (7,44--7,49))], [(7,36--7,37)], - (7,31--7,49))], - Some (Public (7,20--7,26)), (7,20--7,49)), - None, Const (Unit, (7,52--7,54)), (7,20--7,49), - NoneAtInvisible, - { LeadingKeyword = Member (7,4--7,10) - InlineKeyword = None - EqualsRange = Some (7,50--7,51) })), - (7,4--7,91), { InlineKeyword = None - WithKeyword = (7,15--7,19) - GetKeyword = Some (7,68--7,71) - AndKeyword = Some (7,55--7,58) - SetKeyword = Some (7,27--7,30) })], - (4,4--7,91)), [], - Some - (ImplicitCtor - (None, [], SimplePats ([], [], (3,8--3,10)), None, - PreXmlDoc ((3,8), FSharp.Compiler.Xml.XmlDocCollector), - (3,5--3,8), { AsKeyword = None })), (3,5--7,91), - { LeadingKeyword = Type (3,0--3,4) - EqualsRange = Some (3,11--3,12) - WithKeyword = None })], (3,0--7,91))], - PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, - (1,0--7,91), { LeadingKeyword = Module (1,0--1,6) })], (true, true), - { ConditionalDirectives = [] - CodeComments = [] }, set [])) - -(4,20)-(4,50) parse error Multiple accessibilities given for property getter or setter -(5,48)-(5,78) parse error Multiple accessibilities given for property getter or setter -(6,56)-(6,85) parse error Multiple accessibilities given for property getter or setter -(7,20)-(7,49) parse error Multiple accessibilities given for property getter or setter From 478de4d91ef991150f171bb094852ccac9d76140 Mon Sep 17 00:00:00 2001 From: nojaf Date: Tue, 20 Jun 2023 13:26:26 +0200 Subject: [PATCH 4/5] Update unit test --- .../AccessibilityAnnotations/OnTypeMembers/OnTypeMembers.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/AccessibilityAnnotations/OnTypeMembers/OnTypeMembers.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/AccessibilityAnnotations/OnTypeMembers/OnTypeMembers.fs index b59132ae142..0fbbe44a903 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/AccessibilityAnnotations/OnTypeMembers/OnTypeMembers.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/AccessibilityAnnotations/OnTypeMembers/OnTypeMembers.fs @@ -85,8 +85,8 @@ module AccessibilityAnnotations_OnTypeMembers = |> withDiagnostics [ (Error 10, Line 15, Col 49, Line 15, Col 50, "Unexpected symbol ')' in pattern") (Error 1244, Line 15, Col 48, Line 15, Col 50, "Attempted to parse this as an operator name, but failed") - (Error 558, Line 16, Col 36, Line 16, Col 50, "Multiple accessibilities given for property getter or setter") - (Error 558, Line 19, Col 35, Line 19, Col 56, "Multiple accessibilities given for property getter or setter") + (Error 558, Line 16, Col 36, Line 16, Col 50, "When the visibility for a property is specified, setting the visibility of the set or get method is not allowed.") + (Error 558, Line 19, Col 35, Line 19, Col 56, "When the visibility for a property is specified, setting the visibility of the set or get method is not allowed.") (Error 10, Line 20, Col 49, Line 20, Col 50, "Unexpected identifier in pattern") (Error 1244, Line 20, Col 48, Line 20, Col 57, "Attempted to parse this as an operator name, but failed") (Error 10, Line 23, Col 36, Line 23, Col 42, "Unexpected keyword 'public' in member definition") From 80abf811611cd55f73fb4674e51beefc2eb2c2ce Mon Sep 17 00:00:00 2001 From: nojaf Date: Tue, 20 Jun 2023 15:36:00 +0200 Subject: [PATCH 5/5] Update xlf files --- src/Compiler/xlf/FSComp.txt.cs.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.de.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.es.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.fr.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.it.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ja.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ko.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pl.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ru.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.tr.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 29ad3dc4133..e2ada2aeefc 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Zadali jste víc dostupností pro metodu getter nebo setter vlastnosti. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Zadali jste víc dostupností pro metodu getter nebo setter vlastnosti. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 085d23674b9..df2b1f967f0 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Für den Getter oder Setter der Eigenschaft wurden mehrere Zugriffsebenen angegeben. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Für den Getter oder Setter der Eigenschaft wurden mehrere Zugriffsebenen angegeben. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 2bbd1384420..0c480da0223 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Se proporcionaron varias accesibilidades para un captador o establecedor de propiedad. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Se proporcionaron varias accesibilidades para un captador o establecedor de propiedad. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index acba8d9e9cb..fb6f9624aa8 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Plusieurs accessibilités fournies pour la méthode getter ou setter de la propriété + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Plusieurs accessibilités fournies pour la méthode getter ou setter de la propriété diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 6e03e4d2668..2854baa4e04 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Sono state assegnate più accessibilità per il getter o il setter della proprietà + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Sono state assegnate più accessibilità per il getter o il setter della proprietà diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 20f49a8a710..ea67c6bdb2b 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - プロパティのゲッターまたはセッターに指定されたアクセシビリティが複数あります + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + プロパティのゲッターまたはセッターに指定されたアクセシビリティが複数あります diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 181956f1483..1a159133203 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - 속성 getter 또는 setter에 대해 여러 액세스 가능성이 지정되었습니다. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + 속성 getter 또는 setter에 대해 여러 액세스 가능성이 지정되었습니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 8875b97406b..0000778b463 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Podano wiele dostępności dla metody ustawiającej lub metody pobierającej właściwość + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Podano wiele dostępności dla metody ustawiającej lub metody pobierającej właściwość diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index c189da58d6f..6fd3039fa99 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Acessibilidades múltiplas fornecidas para getter ou setter de propriedade + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Acessibilidades múltiplas fornecidas para getter ou setter de propriedade diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 3f6494c7bae..7fb971a92b9 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Задано несколько модификаторов доступности для метода получения или задания свойства + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Задано несколько модификаторов доступности для метода получения или задания свойства diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 1e15ee5ed02..cbb50b53421 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - Özellik alıcı veya ayarlayıcı için birden çok erişilebilirlik verildi + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + Özellik alıcı veya ayarlayıcı için birden çok erişilebilirlik verildi diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index ff5d2bd0db1..0d7b753c8b1 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - 为属性 Getter 或 Setter 给定了多个可访问性 + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + 为属性 Getter 或 Setter 给定了多个可访问性 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 1d505290f73..ce97b003aac 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -3283,8 +3283,8 @@ - Multiple accessibilities given for property getter or setter - 為屬性 getter 或 setter 指定了多個存取範圍 + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. + 為屬性 getter 或 setter 指定了多個存取範圍