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

Commita989c2d

Browse files
authored
fix five debugger issues (#3561)
* improve debugging* add missing files* update baselines* update baselines* update test baselines
1 parenta6cfc81 commita989c2d

File tree

433 files changed

+27060
-39187
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

433 files changed

+27060
-39187
lines changed

‎src/absil/ilwrite.fs‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2112,7 +2112,7 @@ module Codebuf =
21122112

21132113
letlabelsToRange(lab2pc:Dictionary<ILCodeLabel,int>)p=let(l1,l2)= pin lab2pc.[l1], lab2pc.[l2]
21142114

2115-
letlrange_inside_lrange lab2pc ls1 ls2=
2115+
letlabelRangeInsideLabelRange lab2pc ls1 ls2=
21162116
rangeInsideRange(labelsToRange lab2pc ls1)(labelsToRange lab2pc ls2)
21172117

21182118
letfindRoots contains vs=
@@ -2136,10 +2136,10 @@ module Codebuf =
21362136
let recmakeSEHTree cenv env(pc2pos:int[])(lab2pc:Dictionary<ILCodeLabel,int>)(exs:ILExceptionSpec list)=
21372137

21382138
letclause_inside_lrange cl lr=
2139-
List.forall(fun lr1->lrange_inside_lrange lab2pc lr1 lr)(lranges_of_clause cl)
2139+
List.forall(fun lr1->labelRangeInsideLabelRange lab2pc lr1 lr)(lranges_of_clause cl)
21402140

21412141
lettryspec_inside_lrange(tryspec1:ILExceptionSpec)lr=
2142-
(lrange_inside_lrange lab2pc tryspec1.Range lr&& clause_inside_lrange tryspec1.Clause lr)
2142+
(labelRangeInsideLabelRange lab2pc tryspec1.Range lr&& clause_inside_lrange tryspec1.Clause lr)
21432143

21442144
lettryspec_inside_clause tryspec1 cl=
21452145
List.exists(fun lr-> tryspec_inside_lrange tryspec1 lr)(lranges_of_clause cl)
@@ -2169,10 +2169,10 @@ module Codebuf =
21692169
trees
21702170

21712171
let recmakeLocalsTree cenv localSigs(pc2pos:int[])(lab2pc:Dictionary<ILCodeLabel,int>)(exs:ILLocalDebugInfo list)=
2172-
letlocspec_inside_locspec(locspec1:ILLocalDebugInfo)(locspec2:ILLocalDebugInfo)=
2173-
lrange_inside_lrange lab2pc locspec1.Range locspec2.Range
2172+
letlocalInsideLocal(locspec1:ILLocalDebugInfo)(locspec2:ILLocalDebugInfo)=
2173+
labelRangeInsideLabelRange lab2pc locspec1.Range locspec2.Range
21742174

2175-
letroots= findRootslocspec_inside_locspec exs
2175+
letroots= findRootslocalInsideLocal exs
21762176

21772177
lettrees=
21782178
roots|> List.collect(fun(cl,ch)->

‎src/fsharp/IlxGen.fs‎

Lines changed: 195 additions & 140 deletions
Large diffs are not rendered by default.

‎src/fsharp/TastOps.fs‎

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,24 +1118,21 @@ let mkMultiLambdaBind v letSeqPtOpt m tps vsl (b, rty) =
11181118

11191119
letmkBind seqPtOpt v e= TBind(v, e, seqPtOpt)
11201120

1121-
letmkCompGenBind v e= TBind(v, e, NoSequencePointAtStickyBinding)
1122-
1123-
/// Make bindings that are compiler generated (though the variables may not be - e.g. they may be lambda arguments in a beta reduction)
1124-
letmkCompGenBinds vs es=
1125-
List.map2 mkCompGenBind vs es
1126-
1127-
// n.b. type gives type of body
11281121
letmkLetBind m bind body= Expr.Let(bind, body, m, NewFreeVarsCache())
11291122
letmkLetsBind m binds body= List.foldBack(mkLetBind m) binds body
11301123
letmkLetsFromBindings m binds body= List.foldBack(mkLetBind m) binds body
11311124
letmkLet seqPtOpt m v x body= mkLetBind m(mkBind seqPtOpt v x) body
1125+
1126+
/// Make sticky bindings that are compiler generated (though the variables may not be - e.g. they may be lambda arguments in a beta reduction)
1127+
letmkCompGenBind v e= TBind(v, e, NoSequencePointAtStickyBinding)
1128+
letmkCompGenBinds(vs:Val list)(es:Expr list)= List.map2 mkCompGenBind vs es
11321129
letmkCompGenLet m v x body= mkLetBind m(mkCompGenBind v x) body
1130+
letmkCompGenLets m vs xs body= mkLetsBind m(mkCompGenBinds vs xs) body
1131+
letmkCompGenLetsFromBindings m vs xs body= mkLetsFromBindings m(mkCompGenBinds vs xs) body
11331132

11341133
letmkInvisibleBind v e= TBind(v, e, NoSequencePointAtInvisibleBinding)
1134+
letmkInvisibleBinds(vs:Val list)(es:Expr list)= List.map2 mkInvisibleBind vs es
11351135
letmkInvisibleLet m v x body= mkLetBind m(mkInvisibleBind v x) body
1136-
letmkInvisibleBinds(vs:Val list)(es:Expr list)=
1137-
List.map2 mkInvisibleBind vs es
1138-
11391136
letmkInvisibleLets m vs xs body= mkLetsBind m(mkInvisibleBinds vs xs) body
11401137
letmkInvisibleLetsFromBindings m vs xs body= mkLetsFromBindings m(mkInvisibleBinds vs xs) body
11411138

@@ -5471,6 +5468,7 @@ let foldLinearBindingTargetsOfMatch tree (targets: _[]) =
54715468
// Hence the expressions in the value bindings can be remarked with the range of the target.
54725469
letmTarget= exprTarget.Range
54735470
letes= es|> List.map(remarkExpr mTarget)
5471+
// These are non-sticky - any sequence point for 'exprTarget' goes on 'exprTarget' _after_ the bindings have been evaluated
54745472
TTarget(List.empty, mkLetsBind mTarget binds(mkInvisibleLetsFromBindings mTarget vs es exprTarget), spTarget)
54755473
else tg)
54765474

@@ -5484,6 +5482,7 @@ let rec simplifyTrivialMatch spBind exprm matchm ty tree (targets : _[]) =
54845482
// REVIEW: should we use _spTarget here?
54855483
let(TTarget(vs,rhs,_spTarget))= targets.[n]
54865484
if vs.Length<> es.Lengththen failwith("simplifyTrivialMatch: invalid argument, n ="^string n^", List.length targets ="^string targets.Length);
5485+
// These are non-sticky - any sequence point for 'rhs' goes on 'rhs' _after_ the bindings have been made
54875486
mkInvisibleLetsFromBindings rhs.Range vs es rhs
54885487
|_->
54895488
primMkMatch(spBind, exprm, tree, targets, matchm, ty)
@@ -6415,6 +6414,7 @@ let untupledToRefTupled g vs =
64156414
letm=(List.head vs).Range
64166415
lettupledv,tuplede= mkCompGenLocal m"tupledArg"(mkRefTupledTy g untupledTys)
64176416
letuntupling_es= List.mapi(fun i _-> mkTupleFieldGet g(tupInfoRef, tuplede, untupledTys, i, m)) untupledTys
6417+
// These are non-sticky - at the caller,any sequence point for 'body' goes on 'body' _after_ the binding has been made
64186418
tupledv, mkInvisibleLets m vs untupling_es
64196419

64206420
// The required tupled-arity (arity) can either be 1
@@ -6435,6 +6435,7 @@ let AdjustArityOfLambdaBody g arity (vs:Val list) body =
64356435
untupledTys
64366436
|> List.mapi(fun i ty-> mkCompGenLocal v.Range(v.LogicalName^"_"^string i) ty)
64376437
|> List.unzip
6438+
// These are non-sticky - any sequence point for 'body' goes on 'body' _after_ the binding has been made
64386439
letbody= mkInvisibleLet v.Range v(mkRefTupled g v.Range dummyes untupledTys) body
64396440
dummyvs, body
64406441
else
@@ -6795,7 +6796,7 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex
67956796
(mkApps g((inpCloVarAsExpr, inpCloVarType),[],[inpsAsActualArg], appm), resTy)
67966797
else
67976798
mkMultiLambda appm inpsAsVars
6798-
(mkInvisibleLet appm cloVar
6799+
(mkCompGenLet appm cloVar
67996800
(mkApps g((inpCloVarAsExpr, inpCloVarType),[],[inpsAsActualArg], appm))
68006801
res,
68016802
resTy)
@@ -6813,7 +6814,7 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex
68136814
letexprForAllArgs=
68146815

68156816
if isNil argTysWithNiceNamesthen
6816-
mkInvisibleLet appm cloVar exprWithActualTy exprForOtherArgs
6817+
mkCompGenLet appm cloVar exprWithActualTy exprForOtherArgs
68176818
else
68186819
letlambdaBuilders,binderBuilders,inpsAsArgs=
68196820

@@ -6858,7 +6859,7 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex
68586859
if isNil argTysWithoutNiceNamesthen
68596860
mkApps g((exprWithActualTy, actualTy),[], inpsAsArgs, appm)
68606861
else
6861-
mkInvisibleLet appm
6862+
mkCompGenLet appm
68626863
cloVar(mkApps g((exprWithActualTy, actualTy),[], inpsAsArgs, appm))
68636864
exprForOtherArgs
68646865

@@ -6957,6 +6958,7 @@ let LinearizeTopMatchAux g parent (spBind, m, tree, targets, m2, ty) =
69576958
letrhs= etaExpandTypeLambda g m v.Typars(itemsProj vtys i tmpe, ty)
69586959
// update the arity of the value
69596960
v.SetValReprInfo(Some(InferArityOfExpr g AllowTypeDirectedDetupling.Yes ty[][] rhs))
6961+
// This binding is deliberately non-sticky - any sequence point for 'rhs' goes on 'rhs' _after_ the binding has been evaluated
69606962
mkInvisibleBind v rhs)in(* vi = proj tmp*)
69616963
mkCompGenLet m
69626964
tmp(primMkMatch(spBind, m, tree, targets, m2, tmpTy))(* note, probably retyped match, but note, result still has same type*)
@@ -7255,7 +7257,7 @@ let mkIsInstConditional g m tgty vinpe v e2 e3 =
72557257
lettg3= mbuilder.AddResultTarget(e3, SuppressSequencePointAtTarget)
72567258
letdtree= TDSwitch(exprForVal m v,[TCase(DecisionTreeTest.IsNull, tg3)], Some tg2, m)
72577259
letexpr= mbuilder.Close(dtree, m, tyOfExpr g e2)
7258-
mkInvisibleLet m v(mkIsInst tgty vinpe m) expr
7260+
mkCompGenLet m v(mkIsInst tgty vinpe m) expr
72597261

72607262
else
72617263
letmbuilder=new MatchBuilder(NoSequencePointAtInvisibleBinding, m)

‎src/fsharp/ast.fs‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,15 @@ type XmlDocCollector() =
8181
//printfn "#lines = %d, firstLineIndexAfterPrevGrabPoint = %d, firstLineIndexAfterGrabPoint = %d" lines.Length firstLineIndexAfterPrevGrabPoint firstLineIndexAfterGrabPoint
8282

8383
letlines= lines.[firstLineIndexAfterPrevGrabPoint..firstLineIndexAfterGrabPoint-1]|> Array.rev
84-
letfirstLineNumber=(snd lines.[0]).Line
85-
lines
86-
|> Array.mapi(fun i x-> firstLineNumber- i, x)
87-
|> Array.takeWhile(fun(sequencedLineNumber,(_,pos))-> sequencedLineNumber= pos.Line)
88-
|> Array.map(fun(_,(lineStr,_))-> lineStr)
89-
|> Array.rev
84+
if lines.Length=0then
85+
[||]
86+
else
87+
letfirstLineNumber=(snd lines.[0]).Line
88+
lines
89+
|> Array.mapi(fun i x-> firstLineNumber- i, x)
90+
|> Array.takeWhile(fun(sequencedLineNumber,(_,pos))-> sequencedLineNumber= pos.Line)
91+
|> Array.map(fun(_,(lineStr,_))-> lineStr)
92+
|> Array.rev
9093
with e->
9194
//printfn "unexpected error in LinesBefore:\n%s" (e.ToString())
9295
[||]

‎tests/fsharpqa/Source/CodeGen/EmittedIL/.il.bsl‎

Whitespace-only changes.

‎tests/fsharpqa/Source/CodeGen/EmittedIL/AsyncExpressionStepping/AsyncExpressionSteppingTest1.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// #NoMono #NoMT #CodeGen #EmittedIL #Async#NETFX20Only #NETFX40Only
1+
// #NoMono #NoMT #CodeGen #EmittedIL #Async
22
moduleAsyncExpressionSteppingTest1//Regression testfor FSHARP1.0:4058
33
moduleAsyncExpressionSteppingTest1=
44

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp