Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb91327c

Browse files
authored
Fix 1587 Internal error: TopValActualParent: does not have a parent (#3017)
* add library-only build and test* Fix 1587 Internal error: TopValActualParent: does not have a parent* fix tests* Fix tests
1 parentd4c637d commitb91327c

File tree

4 files changed

+13
-5
lines changed

4 files changed

+13
-5
lines changed

‎src/fsharp/TastOps.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7126,7 +7126,7 @@ let XmlDocSigOfVal g path (v:Val) =
71267126
| MemberKind.PropertyGetSet
71277127
| MemberKind.PropertySet
71287128
| MemberKind.PropertyGet->"P:",v.PropertyName
7129-
letpath= prependPath path v.TopValActualParent.CompiledName
7129+
letpath=if v.HasTopValActualParentthenprependPath path v.TopValActualParent.CompiledNameelse path
71307130
letparentTypars,methTypars=
71317131
match PartitionValTypars g vwith
71327132
| Some(_,memberParentTypars,memberMethodTypars,_,_)-> memberParentTypars,memberMethodTypars

‎src/fsharp/infos.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,7 @@ type MethInfo =
874874
memberx.DeclaringEntityRef=
875875
match xwith
876876
| ILMeth(_,ilminfo,_)when x.IsExtensionMember-> ilminfo.DeclaringTyconRef
877-
| FSMeth(_,_,vref,_)when x.IsExtensionMember-> vref.TopValActualParent
877+
| FSMeth(_,_,vref,_)when x.IsExtensionMember&& vref.HasTopValActualParent-> vref.TopValActualParent
878878
|_-> tcrefOfAppTy x.TcGlobals x.EnclosingType
879879

880880
/// Get the information about provided static parameters, if any

‎src/fsharp/symbols/SymbolHelpers.fs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ module internal SymbolHelpers =
508508
letGetXmlDocSigOfScopedValRef g(tcref:TyconRef)(vref:ValRef)=
509509
letccuFileName= libFileOfEntityRef tcref
510510
letv= vref.Deref
511-
if v.XmlDocSig=""then
511+
if v.XmlDocSig=""&& v.HasTopValActualParentthen
512512
v.XmlDocSig<- XmlDocSigOfVal g(buildAccessPath vref.TopValActualParent.CompilationPathOpt) v
513513
Some(ccuFileName, v.XmlDocSig)
514514

@@ -559,7 +559,7 @@ module internal SymbolHelpers =
559559
ifnot vref.IsLocalRefthen
560560
letccuFileName= vref.nlr.Ccu.FileName
561561
letv= vref.Deref
562-
if v.XmlDocSig=""then
562+
if v.XmlDocSig=""&& v.HasTopValActualParentthen
563563
v.XmlDocSig<- XmlDocSigOfVal g vref.TopValActualParent.CompiledRepresentationForNamedType.Name v
564564
Some(ccuFileName, v.XmlDocSig)
565565
else
@@ -1294,7 +1294,7 @@ module internal SymbolHelpers =
12941294
match itemwith
12951295
| Item.Value vref| Item.CustomBuilder(_,vref)->
12961296
letv= vref.Deref
1297-
if v.IsModuleBindingthen
1297+
if v.IsModuleBinding&& v.HasTopValActualParentthen
12981298
lettyconRef= v.TopValActualParent
12991299
letparamsString=
13001300
match v.Typarswith

‎src/fsharp/tast.fs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2420,6 +2420,11 @@ and [<StructuredFormatDisplay("{LogicalName}")>]
24202420
match x.ActualParentwith
24212421
| Parent tcref-> tcref
24222422
| ParentNone-> error(InternalError("TopValActualParent: does not have a parent",x.Range))
2423+
2424+
memberx.HasTopValActualParent=
2425+
match x.ActualParentwith
2426+
| Parent_->true
2427+
| ParentNone->false
24232428

24242429
/// Get the apparent parent entity for a member
24252430
memberx.MemberApparentParent:TyconRef=
@@ -3369,6 +3374,9 @@ and
33693374
/// is declared.
33703375
memberx.TopValActualParent= x.Deref.TopValActualParent
33713376

3377+
// Can be false for members after error recovery
3378+
memberx.HasTopValActualParent= x.Deref.HasTopValActualParent
3379+
33723380
/// Get the apparent parent entity for a member
33733381
memberx.MemberApparentParent= x.Deref.MemberApparentParent
33743382

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp