diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy index c020df5f9ca..b37af9c411c 100644 --- a/src/Compiler/pars.fsy +++ b/src/Compiler/pars.fsy @@ -6570,8 +6570,9 @@ pathOp: | ident DOT pathOp { prependIdentInLongIdentWithTrivia (SynIdent($1, None)) (rhs parseState 2) $3 } - | ident DOT error - { (* silent recovery *) SynLongIdent([$1], [rhs parseState 2], [None]) } + | ident DOT ends_coming_soon_or_recover + { if not $3 then reportParseErrorAt (rhs parseState 3) (FSComp.SR.parsIdentifierExpected()) + SynLongIdent([$1], [rhs parseState 2], [None]) } /* nameop is identOrOp not used as part of a path */ diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs new file mode 100644 index 00000000000..26267a717ea --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs @@ -0,0 +1,4 @@ +module Module + +{ new T() with + override _.P1 = 1 } diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs.bsl new file mode 100644 index 00000000000..c3c45df5aaf --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 01.fs.bsl @@ -0,0 +1,36 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 01.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent ([_; P1], [(4,14--4,15)], [None; None]), + None, None, Pats [], None, (4,13--4,17)), None, + Const (Int32 1, (4,20--4,21)), (4,13--4,17), + NoneAtInvisible, { LeadingKeyword = Override (4,4--4,12) + InlineKeyword = None + EqualsRange = Some (4,18--4,19) }), + (4,4--4,21))], [], (3,2--3,9), (3,0--4,23)), (3,0--4,23))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--4,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs new file mode 100644 index 00000000000..a157ce66cd9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + override _.P1 = 1 + + interface I with + member _.P2 = 2 } diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs.bsl new file mode 100644 index 00000000000..0cb601999ba --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 02.fs.bsl @@ -0,0 +1,63 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 02.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,6), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent ([_; P1], [(4,16--4,17)], [None; None]), + None, None, Pats [], None, (4,15--4,19)), None, + Const (Int32 1, (4,22--4,23)), (4,15--4,19), + NoneAtInvisible, { LeadingKeyword = Override (4,6--4,14) + InlineKeyword = None + EqualsRange = Some (4,20--4,21) }), + (4,6--4,23))], + [SynInterfaceImpl + (LongIdent (SynLongIdent ([I], [], [None])), + Some (6,14--6,18), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((7,6), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([_; P2], [(7,14--7,15)], [None; None]), None, + None, Pats [], None, (7,13--7,17)), None, + Const (Int32 2, (7,20--7,21)), (7,13--7,17), + NoneAtInvisible, + { LeadingKeyword = Member (7,6--7,12) + InlineKeyword = None + EqualsRange = Some (7,18--7,19) }), (7,6--7,21))], + (6,2--7,21))], (3,2--3,9), (3,0--7,23)), (3,0--7,23))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs new file mode 100644 index 00000000000..a926626649f --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs @@ -0,0 +1,10 @@ +module Module + +{ new T() with + override _.P1 = 1 + + interface I1 with + member _.P2 = 2 + + interface I2 with + member _.P3 = 3 } diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs.bsl new file mode 100644 index 00000000000..541e822275c --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 03.fs.bsl @@ -0,0 +1,91 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 03.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,6), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent ([_; P1], [(4,16--4,17)], [None; None]), + None, None, Pats [], None, (4,15--4,19)), None, + Const (Int32 1, (4,22--4,23)), (4,15--4,19), + NoneAtInvisible, { LeadingKeyword = Override (4,6--4,14) + InlineKeyword = None + EqualsRange = Some (4,20--4,21) }), + (4,6--4,23))], + [SynInterfaceImpl + (LongIdent (SynLongIdent ([I1], [], [None])), + Some (6,15--6,19), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((7,6), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([_; P2], [(7,14--7,15)], [None; None]), None, + None, Pats [], None, (7,13--7,17)), None, + Const (Int32 2, (7,20--7,21)), (7,13--7,17), + NoneAtInvisible, + { LeadingKeyword = Member (7,6--7,12) + InlineKeyword = None + EqualsRange = Some (7,18--7,19) }), (7,6--7,21))], + (6,2--7,21)); + SynInterfaceImpl + (LongIdent (SynLongIdent ([I2], [], [None])), + Some (9,15--9,19), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((10,6), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([_; P3], [(10,14--10,15)], [None; None]), None, + None, Pats [], None, (10,13--10,17)), None, + Const (Int32 3, (10,20--10,21)), (10,13--10,17), + NoneAtInvisible, + { LeadingKeyword = Member (10,6--10,12) + InlineKeyword = None + EqualsRange = Some (10,18--10,19) }), + (10,6--10,21))], (9,2--10,21))], (3,2--3,9), + (3,0--10,23)), (3,0--10,23))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--10,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs new file mode 100644 index 00000000000..b14bd7a8652 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs @@ -0,0 +1,5 @@ +module Module + +{ new T() with } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs.bsl new file mode 100644 index 00000000000..5b7efb7cdf9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 04.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 04.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [], [], (3,2--3,9), (3,0--3,16)), (3,0--3,16)); + Expr (Const (Unit, (5,0--5,2)), (5,0--5,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(3,15)-(3,16) parse error Incomplete structured construct at or before this point in binding diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs new file mode 100644 index 00000000000..b82f5f57bbe --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs.bsl new file mode 100644 index 00000000000..d4dbc824d6d --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 05.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 05.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [], [], (3,2--3,9), (3,0--4,6)), (3,0--4,6)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,5)-(4,6) parse error Incomplete structured construct at or before this point in binding diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs new file mode 100644 index 00000000000..9d4fb6967a1 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + member } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs.bsl new file mode 100644 index 00000000000..d5e42b7e065 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 06.fs.bsl @@ -0,0 +1,18 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 06.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [], [], (3,2--3,9), (3,0--4,13)), (3,0--4,13)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,12)-(4,13) parse error Incomplete structured construct at or before this point in object expression diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs new file mode 100644 index 00000000000..be69be147b5 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + member this } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs.bsl new file mode 100644 index 00000000000..46ee7f5f3b0 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 07.fs.bsl @@ -0,0 +1,38 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 07.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + Named (SynIdent (this, None), false, None, (4,12--4,16)), + None, ArbitraryAfterError ("memberCore2", (4,16--4,16)), + (4,12--4,16), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,16))], [], (3,2--3,9), + (3,0--4,18)), (3,0--4,18)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,17)-(4,18) parse error Incomplete structured construct at or before this point in object expression. Expected 'with', '=' or other token. diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs new file mode 100644 index 00000000000..d580e1da1bd --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + member this. } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs.bsl new file mode 100644 index 00000000000..176788da428 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 08.fs.bsl @@ -0,0 +1,39 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 08.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + Named (SynIdent (this, None), false, None, (4,12--4,16)), + None, ArbitraryAfterError ("memberCore2", (4,16--4,16)), + (4,12--4,19), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,16))], [], (3,2--3,9), + (3,0--4,19)), (3,0--4,19)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,18)-(4,19) parse error Identifier expected +(4,18)-(4,19) parse error Incomplete structured construct at or before this point in object expression. Expected 'with', '=' or other token. diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs new file mode 100644 index 00000000000..940d6c7f413 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + member this.P } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs.bsl new file mode 100644 index 00000000000..6dfc3a6c95a --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 09.fs.bsl @@ -0,0 +1,41 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 09.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P], [(4,16--4,17)], [None; None]), None, + None, Pats [], None, (4,12--4,18)), None, + ArbitraryAfterError ("memberCore2", (4,18--4,18)), + (4,12--4,18), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,18))], [], (3,2--3,9), + (3,0--4,20)), (3,0--4,20)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,19)-(4,20) parse error Incomplete structured construct at or before this point in object expression. Expected 'with', '=' or other token. diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs new file mode 100644 index 00000000000..a746a78fab6 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs @@ -0,0 +1,6 @@ +module Module + +{ new T() with + member this.P = } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs.bsl new file mode 100644 index 00000000000..b7d5c067cdc --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 10.fs.bsl @@ -0,0 +1,42 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 10.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P], [(4,16--4,17)], [None; None]), None, + None, Pats [], None, (4,12--4,18)), None, + ArbitraryAfterError + ("typedSequentialExprBlock1", (4,22--4,22)), + (4,12--4,18), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = Some (4,19--4,20) }), (4,5--4,22))], [], + (3,2--3,9), (3,0--4,22)), (3,0--4,22)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,21)-(4,22) parse error Expecting expression diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs new file mode 100644 index 00000000000..d89c35d719c --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + member this.P1 = + member this.P2 = 2 } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs.bsl new file mode 100644 index 00000000000..cf3dc9494b1 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 11.fs.bsl @@ -0,0 +1,65 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 11.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P1], [(4,16--4,17)], [None; None]), None, + None, Pats [], None, (4,12--4,19)), None, + ArbitraryAfterError + ("typedSequentialExprBlock1", (4,21--4,21)), + (4,12--4,19), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = Some (4,20--4,21) }), (4,5--4,21)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P2], [(5,16--5,17)], [None; None]), None, + None, Pats [], None, (5,12--5,19)), None, + Const (Int32 2, (5,22--5,23)), (5,12--5,19), + NoneAtInvisible, { LeadingKeyword = Member (5,5--5,11) + InlineKeyword = None + EqualsRange = Some (5,20--5,21) }), + (5,5--5,23))], [], (3,2--3,9), (3,0--5,25)), (3,0--5,25)); + Expr (Const (Unit, (7,0--7,2)), (7,0--7,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(5,5)-(5,11) parse error Possible incorrect indentation: this token is offside of context started at position (4:6). Try indenting this token further or using standard formatting conventions. +(5,5)-(5,11) parse error Expecting expression diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs new file mode 100644 index 00000000000..5b998c91aca --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + member this.P1 + member this.P2 = 2 } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs.bsl new file mode 100644 index 00000000000..e7c408ac27c --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 12.fs.bsl @@ -0,0 +1,63 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 12.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P1], [(4,16--4,17)], [None; None]), None, + None, Pats [], None, (4,12--4,19)), None, + ArbitraryAfterError ("memberCore1", (4,19--4,19)), + (4,12--4,19), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,19)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P2], [(5,16--5,17)], [None; None]), None, + None, Pats [], None, (5,12--5,19)), None, + Const (Int32 2, (5,22--5,23)), (5,12--5,19), + NoneAtInvisible, { LeadingKeyword = Member (5,5--5,11) + InlineKeyword = None + EqualsRange = Some (5,20--5,21) }), + (5,5--5,23))], [], (3,2--3,9), (3,0--5,25)), (3,0--5,25)); + Expr (Const (Unit, (7,0--7,2)), (7,0--7,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,20)-(5,5) parse error Expecting member body diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs new file mode 100644 index 00000000000..94d55bac0a1 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + member this. + member this.P2 = 2 } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs.bsl new file mode 100644 index 00000000000..e7515c3da28 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 13.fs.bsl @@ -0,0 +1,61 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 13.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + Named (SynIdent (this, None), false, None, (4,12--4,16)), + None, ArbitraryAfterError ("memberCore1", (4,16--4,16)), + (4,12--5,5), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,16)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P2], [(5,16--5,17)], [None; None]), None, + None, Pats [], None, (5,12--5,19)), None, + Const (Int32 2, (5,22--5,23)), (5,12--5,19), + NoneAtInvisible, { LeadingKeyword = Member (5,5--5,11) + InlineKeyword = None + EqualsRange = Some (5,20--5,21) }), + (5,5--5,23))], [], (3,2--3,9), (3,0--5,25)), (3,0--5,25)); + Expr (Const (Unit, (7,0--7,2)), (7,0--7,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,18)-(5,5) parse error Incomplete structured construct at or before this point in object expression +(4,18)-(5,5) parse error Expecting member body diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs new file mode 100644 index 00000000000..caae6e23a88 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + member this + member this.P2 = 2 } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs.bsl new file mode 100644 index 00000000000..5b327948723 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 14.fs.bsl @@ -0,0 +1,60 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 14.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + Named (SynIdent (this, None), false, None, (4,12--4,16)), + None, ArbitraryAfterError ("memberCore1", (4,16--4,16)), + (4,12--4,16), NoneAtInvisible, + { LeadingKeyword = Member (4,5--4,11) + InlineKeyword = None + EqualsRange = None }), (4,5--4,16)); + Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P2], [(5,16--5,17)], [None; None]), None, + None, Pats [], None, (5,12--5,19)), None, + Const (Int32 2, (5,22--5,23)), (5,12--5,19), + NoneAtInvisible, { LeadingKeyword = Member (5,5--5,11) + InlineKeyword = None + EqualsRange = Some (5,20--5,21) }), + (5,5--5,23))], [], (3,2--3,9), (3,0--5,25)), (3,0--5,25)); + Expr (Const (Unit, (7,0--7,2)), (7,0--7,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,17)-(5,5) parse error Expecting member body diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs b/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs new file mode 100644 index 00000000000..20a2f8fb8e3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs @@ -0,0 +1,7 @@ +module Module + +{ new T() with + member + member this.P2 = 2 } + +() diff --git a/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs.bsl b/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs.bsl new file mode 100644 index 00000000000..58a61133026 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/Object - Class 15.fs.bsl @@ -0,0 +1,40 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/Object - Class 15.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (ObjExpr + (LongIdent (SynLongIdent ([T], [], [None])), + Some (Const (Unit, (3,7--3,9)), None), Some (3,10--3,14), [], + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,5), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = true + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + LongIdent + (SynLongIdent + ([this; P2], [(5,16--5,17)], [None; None]), None, + None, Pats [], None, (5,12--5,19)), None, + Const (Int32 2, (5,22--5,23)), (5,12--5,19), + NoneAtInvisible, { LeadingKeyword = Member (5,5--5,11) + InlineKeyword = None + EqualsRange = Some (5,20--5,21) }), + (5,5--5,23))], [], (3,2--3,9), (3,0--5,25)), (3,0--5,25)); + Expr (Const (Unit, (7,0--7,2)), (7,0--7,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--7,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(4,12)-(5,5) parse error Incomplete structured construct at or before this point in object expression diff --git a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs b/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs deleted file mode 100644 index b03095d292f..00000000000 --- a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs +++ /dev/null @@ -1,10 +0,0 @@ -module V - -let create () = - { new Object() with - override _.ToString() = "" - interface Interface1 with - member _.Foo1 s = s - - interface Interface2 with - member _.Foo2 s = s } diff --git a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl deleted file mode 100644 index ee36629c339..00000000000 --- a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl +++ /dev/null @@ -1,121 +0,0 @@ -ImplFile - (ParsedImplFileInput - ("/root/Expression/ObjectExpr 01.fs", false, QualifiedNameOfFile V, [], [], - [SynModuleOrNamespace - ([V], false, NamedModule, - [Let - (false, - [SynBinding - (None, Normal, false, false, [], - PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), - SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, - None), - LongIdent - (SynLongIdent ([create], [], [None]), None, None, - Pats [Paren (Const (Unit, (3,11--3,13)), (3,11--3,13))], - None, (3,4--3,13)), None, - ObjExpr - (LongIdent (SynLongIdent ([Object], [], [None])), - Some (Const (Unit, (4,16--4,18)), None), Some (4,19--4,23), - [], - [Member - (SynBinding - (None, Normal, false, false, [], - PreXmlDoc ((5,8), FSharp.Compiler.Xml.XmlDocCollector), - SynValData - (Some { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = true - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = Member }, - SynValInfo - ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None, None), - LongIdent - (SynLongIdent - ([_; ToString], [(5,18--5,19)], [None; None]), - None, None, - Pats - [Paren - (Const (Unit, (5,27--5,29)), (5,27--5,29))], - None, (5,17--5,29)), None, - Const - (String ("", Regular, (5,32--5,34)), (5,32--5,34)), - (5,17--5,29), NoneAtInvisible, - { LeadingKeyword = Override (5,8--5,16) - InlineKeyword = None - EqualsRange = Some (5,30--5,31) }), (5,8--5,34))], - [SynInterfaceImpl - (LongIdent (SynLongIdent ([Interface1], [], [None])), - Some (6,27--6,31), [], - [Member - (SynBinding - (None, Normal, false, false, [], - PreXmlDoc ((7,10), FSharp.Compiler.Xml.XmlDocCollector), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = true - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = Member }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some s)]], - SynArgInfo ([], false, None)), None, None), - LongIdent - (SynLongIdent - ([_; Foo1], [(7,18--7,19)], [None; None]), - None, None, - Pats - [Named - (SynIdent (s, None), false, None, - (7,24--7,25))], None, (7,17--7,25)), - None, Ident s, (7,17--7,25), NoneAtInvisible, - { LeadingKeyword = Member (7,10--7,16) - InlineKeyword = None - EqualsRange = Some (7,26--7,27) }), - (7,10--7,29))], (6,6--7,29)); - SynInterfaceImpl - (LongIdent (SynLongIdent ([Interface2], [], [None])), - Some (9,27--9,31), [], - [Member - (SynBinding - (None, Normal, false, false, [], - PreXmlDoc ((10,10), FSharp.Compiler.Xml.XmlDocCollector), - SynValData - (Some - { IsInstance = true - IsDispatchSlot = false - IsOverrideOrExplicitImpl = true - IsFinal = false - GetterOrSetterIsCompilerGenerated = false - MemberKind = Member }, - SynValInfo - ([[SynArgInfo ([], false, None)]; - [SynArgInfo ([], false, Some s)]], - SynArgInfo ([], false, None)), None, None), - LongIdent - (SynLongIdent - ([_; Foo2], [(10,18--10,19)], [None; None]), - None, None, - Pats - [Named - (SynIdent (s, None), false, None, - (10,24--10,25))], None, (10,17--10,25)), - None, Ident s, (10,17--10,25), NoneAtInvisible, - { LeadingKeyword = Member (10,10--10,16) - InlineKeyword = None - EqualsRange = Some (10,26--10,27) }), - (10,10--10,29))], (9,6--10,29))], (4,6--4,18), - (4,4--10,31)), (3,4--3,13), NoneAtLet, - { LeadingKeyword = Let (3,0--3,3) - InlineKeyword = None - EqualsRange = Some (3,14--3,15) })], (3,0--10,31))], - PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, - (1,0--10,31), { LeadingKeyword = Module (1,0--1,6) })], (true, true), - { ConditionalDirectives = [] - CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl index b0e0106fbcf..e3992570b33 100644 --- a/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl @@ -109,5 +109,5 @@ ImplFile { ConditionalDirectives = [] CodeComments = [] }, set [])) -(5,23)-(6,4) parse error Incomplete structured construct at or before this point in member definition. Expected identifier, '(', '(*)' or other token. +(5,23)-(6,4) parse error Incomplete structured construct at or before this point in member definition (5,23)-(6,4) parse error Expecting member body diff --git a/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl index 74c3dde12a2..f3bd7b4c3af 100644 --- a/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl @@ -108,4 +108,4 @@ ImplFile { ConditionalDirectives = [] CodeComments = [] }, set [])) -(5,23)-(5,24) parse error Unexpected symbol '=' in member definition. Expected identifier, '(', '(*)' or other token. +(5,23)-(5,24) parse error Unexpected symbol '=' in member definition diff --git a/tests/service/data/SyntaxTree/Member/Member 12.fs b/tests/service/data/SyntaxTree/Member/Member 12.fs new file mode 100644 index 00000000000..253f69df231 --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Member 12.fs @@ -0,0 +1,6 @@ +module Module + +type U = + member this. + +() diff --git a/tests/service/data/SyntaxTree/Member/Member 12.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 12.fs.bsl new file mode 100644 index 00000000000..3be2115d72b --- /dev/null +++ b/tests/service/data/SyntaxTree/Member/Member 12.fs.bsl @@ -0,0 +1,46 @@ +ImplFile + (ParsedImplFileInput + ("/root/Member/Member 12.fs", false, QualifiedNameOfFile Module, [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [U], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, (3,5--3,6)), + ObjectModel + (Unspecified, + [Member + (SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (Some { IsInstance = true + IsDispatchSlot = false + IsOverrideOrExplicitImpl = false + IsFinal = false + GetterOrSetterIsCompilerGenerated = false + MemberKind = Member }, + SynValInfo + ([[SynArgInfo ([], false, None)]; []], + SynArgInfo ([], false, None)), None, None), + Named + (SynIdent (this, None), false, None, (4,11--4,15)), + None, + ArbitraryAfterError ("memberCore2", (4,15--4,15)), + (4,11--6,1), NoneAtInvisible, + { LeadingKeyword = Member (4,4--4,10) + InlineKeyword = None + EqualsRange = None }), (4,4--4,15))], (4,4--4,15)), + [], None, (3,5--4,15), { LeadingKeyword = Type (3,0--3,4) + EqualsRange = Some (3,7--3,8) + WithKeyword = None })], (3,0--4,15)); + Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(6,0)-(6,1) parse error Identifier expected +(6,0)-(6,1) parse error Incomplete structured construct at or before this point in member definition. Expected 'with', '=' or other token.