F# type inference bug AST diff
90 lines
ImplFile
ImplFile
(ParsedImplFileInput
(ParsedImplFileInput
("tmp.fsx", true, QualifiedNameOfFile Tmp$fsx, [], [],
("tmp.fsx", true, QualifiedNameOfFile Tmp$fsx, [], [],
[SynModuleOrNamespace
[SynModuleOrNamespace
([Tmp], false, AnonModule,
([Tmp], false, AnonModule,
[Types
[Types
([TypeDefn
([TypeDefn
(ComponentInfo
(ComponentInfo
([], [], [], [A],
([], [], [], [A],
PreXmlDoc ((1,6), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((1,6), FSharp.Compiler.XmlDoc+XmlDocCollector),
false, None, tmp.fsx (1,5--1,6) IsSynthetic=false),
false, None, tmp.fsx (1,5--1,6) IsSynthetic=false),
ObjectModel
ObjectModel
(TyconUnspecified,
(TyconUnspecified,
[ImplicitCtor
[ImplicitCtor
(None, [],
(None, [],
SimplePats
SimplePats
([Typed
([Typed
(Id
(Id
(b, None, false, false, false,
(b, None, false, false, false,
tmp.fsx (1,7--1,8) IsSynthetic=false),
tmp.fsx (1,7--1,8) IsSynthetic=false),
LongIdent (LongIdentWithDots ([B], [])),
LongIdent (LongIdentWithDots ([B], [])),
tmp.fsx (1,7--1,11) IsSynthetic=false)],
tmp.fsx (1,7--1,11) IsSynthetic=false)],
tmp.fsx (1,6--1,12) IsSynthetic=false), None,
tmp.fsx (1,6--1,12) IsSynthetic=false), None,
PreXmlDoc ((1,12), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((1,12), FSharp.Compiler.XmlDoc+XmlDocCollector),
tmp.fsx (1,5--1,6) IsSynthetic=false);
tmp.fsx (1,5--1,6) IsSynthetic=false);
LetBindings
LetBindings
([Binding
([Binding
(None, NormalBinding, false, false, [],
(None, NormalBinding, false, false, [],
PreXmlDoc ((2,6), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((2,6), FSharp.Compiler.XmlDoc+XmlDocCollector),
SynValData
SynValData
(None,
(None,
SynValInfo ([], SynArgInfo ([], false, None)),
SynValInfo ([], SynArgInfo ([], false, None)),
None), Wild tmp.fsx (2,6--2,7) IsSynthetic=false,
None), Wild tmp.fsx (2,6--2,7) IsSynthetic=false,
None,
None,
LongIdent
LongIdent
(false,
(false,
LongIdentWithDots
LongIdentWithDots
([b; X; Length],
([b; X; Length],
[tmp.fsx (2,11--2,12) IsSynthetic=false;
[tmp.fsx (2,11--2,12) IsSynthetic=false;
tmp.fsx (2,13--2,14) IsSynthetic=false]),
tmp.fsx (2,13--2,14) IsSynthetic=false]),
None, tmp.fsx (2,10--2,20) IsSynthetic=false),
None, tmp.fsx (2,10--2,20) IsSynthetic=false),
tmp.fsx (2,6--2,7) IsSynthetic=false,
tmp.fsx (2,6--2,7) IsSynthetic=false,
DebugPointAtBinding
DebugPointAtBinding
tmp.fsx (2,2--2,20) IsSynthetic=false)], false,
tmp.fsx (2,2--2,20) IsSynthetic=false)], false,
false, tmp.fsx (2,2--2,20) IsSynthetic=false)],
false, tmp.fsx (2,2--2,20) IsSynthetic=false)],
tmp.fsx (2,2--2,20) IsSynthetic=false), [],
tmp.fsx (2,2--2,20) IsSynthetic=false), [],
tmp.fsx (1,5--2,20) IsSynthetic=false);
tmp.fsx (1,5--2,20) IsSynthetic=false);
TypeDefn
TypeDefn
(ComponentInfo
(ComponentInfo
([], [], [], [B],
([], [], [], [B],
PreXmlDoc ((3,5), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((3,5), FSharp.Compiler.XmlDoc+XmlDocCollector),
false, None, tmp.fsx (3,4--3,5) IsSynthetic=false),
false, None, tmp.fsx (3,4--3,5) IsSynthetic=false),
ObjectModel
ObjectModel
(TyconUnspecified,
(TyconUnspecified,
[ImplicitCtor
[ImplicitCtor
(None, [],
(None, [],
SimplePats ([], tmp.fsx (3,5--3,7) IsSynthetic=false),
SimplePats ([], tmp.fsx (3,5--3,7) IsSynthetic=false),
None,
None,
PreXmlDoc ((3,7), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((3,7), FSharp.Compiler.XmlDoc+XmlDocCollector),
tmp.fsx (3,4--3,5) IsSynthetic=false);
tmp.fsx (3,4--3,5) IsSynthetic=false);
Member
Member
(Binding
(Binding
(None, NormalBinding, false, false, [],
(None, NormalBinding, false, false, [],
PreXmlDoc ((4,9), FSharp.Compiler.XmlDoc+XmlDocCollector),
PreXmlDoc ((4,9), FSharp.Compiler.XmlDoc+XmlDocCollector),
SynValData
SynValData
(Some { IsInstance = true
(Some { IsInstance = true
IsDispatchSlot = false
IsDispatchSlot = false
IsOverrideOrExplicitImpl = false
IsOverrideOrExplicitImpl = false
IsFinal = false
IsFinal = false
MemberKind = Member },
MemberKind = Member },
SynValInfo
SynValInfo
([[SynArgInfo ([], false, None)]; []],
([[SynArgInfo ([], false, None)]; []],
SynArgInfo ([], false, None)), None),
SynArgInfo ([], false, None)), None),
LongIdent
LongIdent
(LongIdentWithDots
(LongIdentWithDots
([_; X],
([_; X],
[tmp.fsx (4,10--4,11) IsSynthetic=false]),
[tmp.fsx (4,10--4,11) IsSynthetic=false]),
None, None, Pats [], None,
None, None, Pats [], None,
tmp.fsx (4,9--4,12) IsSynthetic=false), None,
tmp.fsx (4,9--4,12) IsSynthetic=false),
Const
Some
(String
(SynBindingReturnInfo
("", tmp.fsx (4,15--4,17) IsSynthetic=false),
(LongIdent (LongIdentWithDots ([string], [])),
tmp.fsx (4,15--4,17) IsSynthetic=false),
tmp.fsx (4,14--4,20) IsSynthetic=false, [])),
Typed
(Const
(String
("", tmp.fsx (4,23--4,25) IsSynthetic=false),
tmp.fsx (4,23--4,25) IsSynthetic=false),
LongIdent (LongIdentWithDots ([string], [])),
tmp.fsx (4,23--4,25) IsSynthetic=false),
tmp.fsx (4,9--4,12) IsSynthetic=false,
tmp.fsx (4,9--4,12) IsSynthetic=false,
NoDebugPointAtInvisibleBinding),
NoDebugPointAtInvisibleBinding),
tmp.fsx (4,2--4,17) IsSynthetic=false)],
tmp.fsx (4,2--4,25) IsSynthetic=false)],
tmp.fsx (4,2--4,17) IsSynthetic=false), [],
tmp.fsx (4,2--4,25) IsSynthetic=false), [],
tmp.fsx (3,4--4,17) IsSynthetic=false)],
tmp.fsx (3,4--4,25) IsSynthetic=false)],
tmp.fsx (1,0--4,17) IsSynthetic=false)], PreXmlDocEmpty, [], None,
tmp.fsx (1,0--4,25) IsSynthetic=false)], PreXmlDocEmpty, [], None,
tmp.fsx (1,0--5,0) IsSynthetic=false)], (true, true)))
tmp.fsx (1,0--5,0) IsSynthetic=false)], (true, true)))