From 10972c8ee42a4acfe578886fd4dc6150a048cbbf Mon Sep 17 00:00:00 2001 From: Don Syme Date: Tue, 1 Jun 2021 16:19:57 +0100 Subject: [PATCH 01/10] prefer forward branches for decision tree targets reachable via multiple branches --- src/fsharp/IlxGen.fs | 76 ++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs index 39c2c63d3c4..d129373d524 100644 --- a/src/fsharp/IlxGen.fs +++ b/src/fsharp/IlxGen.fs @@ -5177,7 +5177,8 @@ and GenJoinPoint cenv cgbuf pos eenv ty m sequel = // Accumulate the decision graph as we go and GenDecisionTreeAndTargets cenv cgbuf stackAtTargets eenv tree targets repeatSP sequel contf = - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv tree targets repeatSP (IntMap.empty()) sequel (fun targetInfos -> + let targetCounts = accTargetsOfDecisionTree tree [] |> List.countBy id |> Map.ofList + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv tree targets targetCounts repeatSP (IntMap.empty()) sequel (fun targetInfos -> let sortedTargetInfos = targetInfos |> Seq.sortBy (fun (KeyValue(targetIdx, _)) -> targetIdx) @@ -5206,7 +5207,7 @@ and TryFindTargetInfo targetInfos n = /// /// When inplabOpt is "Some inplab", we are assuming an existing branch to "inplab" and can optionally /// set inplab to point to another location if no codegen is required. -and GenDecisionTreeAndTargetsInner cenv cgbuf inplabOpt stackAtTargets eenv tree targets repeatSP targetInfos sequel (contf: Zmap<_,_> -> FakeUnit) = +and GenDecisionTreeAndTargetsInner cenv cgbuf inplabOpt stackAtTargets eenv tree targets targetCounts repeatSP targetInfos sequel (contf: Zmap<_,_> -> FakeUnit) = CG.SetStack cgbuf stackAtTargets // Set the expected initial stack. match tree with | TDBind(bind, rest) -> @@ -5219,10 +5220,10 @@ and GenDecisionTreeAndTargetsInner cenv cgbuf inplabOpt stackAtTargets eenv tree // we effectively lose an EndLocalScope for all dtrees that go to the same target // So we just pretend that the variable goes out of scope here. CG.SetMarkToHere cgbuf endScope - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv rest targets repeatSP targetInfos sequel contf + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv rest targets targetCounts repeatSP targetInfos sequel contf | TDSuccess(es, targetIdx) -> - let targetInfos, genTargetInfoOpt = GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets repeatSP targetInfos sequel + let targetInfos, genTargetInfoOpt = GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets targetCounts repeatSP targetInfos sequel match genTargetInfoOpt with | Some (eenvAtTarget, spExprAtTarget, exprAtTarget, sequelAtTarget) -> GenLinearExpr cenv cgbuf eenvAtTarget spExprAtTarget exprAtTarget sequelAtTarget true (fun Fake -> contf targetInfos) @@ -5230,13 +5231,13 @@ and GenDecisionTreeAndTargetsInner cenv cgbuf inplabOpt stackAtTargets eenv tree contf targetInfos | TDSwitch(e, cases, dflt, m) -> - GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases dflt m targets repeatSP targetInfos sequel contf + GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases dflt m targets targetCounts repeatSP targetInfos sequel contf and GetTarget (targets:_[]) n = if n >= targets.Length then failwith "GetTarget: target not found in decision tree" targets.[n] -and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets repeatSP targetInfos sequel = +and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets (targetCounts: Map) repeatSP targetInfos sequel = let (TTarget(vs, successExpr, spTarget)) = GetTarget targets targetIdx match TryFindTargetInfo targetInfos targetIdx with | Some (_, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) -> @@ -5255,10 +5256,7 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx (vs, es) ||> List.iter2 (fun v e -> // Emit the expression - GenBindingRhs cenv cgbuf eenv SPSuppress v e) - - vs |> List.rev |> List.iter (fun v -> - // Store the results + GenBindingRhs cenv cgbuf eenv SPSuppress v e GenStoreVal cenv cgbuf eenvAtTarget v.Range v) CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) @@ -5267,7 +5265,6 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx | None -> - match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab let targetMarkBeforeBinds = CG.GenerateDelayMark cgbuf "targetBeforeBinds" let targetMarkAfterBinds = CG.GenerateDelayMark cgbuf "targetAfterBinds" let startScope, endScope as scopeMarks = StartDelayedLocalScope "targetBinds" cgbuf @@ -5275,13 +5272,29 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx let eenvAtTarget = AllocStorageForBinds cenv cgbuf scopeMarks eenv binds let targetInfo = (targetMarkBeforeBinds, targetMarkAfterBinds, eenvAtTarget, successExpr, spTarget, repeatSP, vs, binds, startScope, endScope) - // In debug mode push all decision tree targets to after the switching - let isTargetPostponed, genTargetInfoOpt = - if cenv.opts.localOptimizationsAreOn then - false, Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) + // In debug mode, postpone all decision tree targets to after the switching. + // In release mode, if a target is the target of multiple incoming success nodes, postpone it to avoid + // making any backward branches + let isTargetPostponed = + not cenv.opts.localOptimizationsAreOn || + not (targetCounts.ContainsKey targetIdx) || + targetCounts.[targetIdx] <> 1 + let genTargetInfoOpt = + if isTargetPostponed then + // Here we are postponing the generation of the target. + // If not binding anything we can go directly to the targetMarkAfterBinds point. + if isNil vs then + match inplabOpt with + | None -> CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) + | Some inplab -> CG.SetMark cgbuf inplab targetMarkAfterBinds + else + match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab + CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkBeforeBinds.CodeLabel) + None else - CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkBeforeBinds.CodeLabel) - true, None + // Here we are generating the target immediately + match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab + Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) let targetInfos = IntMap.add targetIdx (targetInfo, isTargetPostponed) targetInfos targetInfos, genTargetInfoOpt @@ -5309,7 +5322,7 @@ and GenDecisionTreeTarget cenv cgbuf stackAtTargets (targetMarkBeforeBinds, targ CG.SetStack cgbuf stackAtTargets (eenvAtTarget, spExpr, successExpr, (EndLocalScope(sequel, endScope))) -and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defaultTargetOpt switchm targets repeatSP targetInfos sequel contf = +and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defaultTargetOpt switchm targets targetCounts repeatSP targetInfos sequel contf = let g = cenv.g let m = e.Range match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab @@ -5319,7 +5332,7 @@ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defau // optimize a test against a boolean value, i.e. the all-important if-then-else | TCase(DecisionTreeTest.Const(Const.Bool b), successTree) :: _ -> let failureTree = (match defaultTargetOpt with None -> cases.Tail.Head.CaseTree | Some d -> d) - GenDecisionTreeTest cenv eenv.cloc cgbuf stackAtTargets e None eenv (if b then successTree else failureTree) (if b then failureTree else successTree) targets repeatSP targetInfos sequel contf + GenDecisionTreeTest cenv eenv.cloc cgbuf stackAtTargets e None eenv (if b then successTree else failureTree) (if b then failureTree else successTree) targets targetCounts repeatSP targetInfos sequel contf // // Remove a single test for a union case . Union case tests are always exa //| [ TCase(DecisionTreeTest.UnionCase _, successTree) ] when (defaultTargetOpt.IsNone) -> @@ -5336,7 +5349,8 @@ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defau let cuspec = GenUnionSpec cenv.amap m eenv.tyenv c.TyconRef tyargs let idx = c.Index let avoidHelpers = entityRefInThisAssembly g.compilingFslib c.TyconRef - GenDecisionTreeTest cenv eenv.cloc cgbuf stackAtTargets e (Some (pop 1, Push [g.ilg.typ_Bool], Choice1Of2 (avoidHelpers, cuspec, idx))) eenv successTree failureTree targets repeatSP targetInfos sequel contf + let tester = (Some (pop 1, Push [g.ilg.typ_Bool], Choice1Of2 (avoidHelpers, cuspec, idx))) + GenDecisionTreeTest cenv eenv.cloc cgbuf stackAtTargets e tester eenv successTree failureTree targets targetCounts repeatSP targetInfos sequel contf | _ -> let caseLabels = List.map (fun _ -> CG.GenerateDelayMark cgbuf "switch_case") cases @@ -5367,7 +5381,7 @@ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defau BI_brtrue | _ -> failwith "internal error: GenDecisionTreeSwitch" CG.EmitInstr cgbuf (pop 1) Push0 (I_brcmp (bi, (List.head caseLabels).CodeLabel)) - GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets repeatSP targetInfos sequel caseLabels cases contf + GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets targetCounts repeatSP targetInfos sequel caseLabels cases contf | DecisionTreeTest.ActivePatternCase _ -> error(InternalError("internal error in codegen: DecisionTreeTest.ActivePatternCase", switchm)) | DecisionTreeTest.UnionCase (hdc, tyargs) -> @@ -5383,7 +5397,7 @@ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defau let avoidHelpers = entityRefInThisAssembly g.compilingFslib hdc.TyconRef EraseUnions.emitDataSwitch g.ilg (UnionCodeGen cgbuf) (avoidHelpers, cuspec, dests) CG.EmitInstrs cgbuf (pop 1) Push0 [ ] // push/pop to match the line above - GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets repeatSP targetInfos sequel caseLabels cases contf + GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets targetCounts repeatSP targetInfos sequel caseLabels cases contf | DecisionTreeTest.Const c -> GenExpr cenv cgbuf eenv SPSuppress e Continue @@ -5426,22 +5440,22 @@ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defau CG.EmitInstr cgbuf (pop 1) Push0 (I_switch destinationLabels) else error(InternalError("non-dense integer matches not implemented in codegen - these should have been removed by the pattern match compiler", switchm)) - GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets repeatSP targetInfos sequel caseLabels cases contf + GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets targetCounts repeatSP targetInfos sequel caseLabels cases contf | _ -> error(InternalError("these matches should never be needed", switchm)) | DecisionTreeTest.Error m -> error(InternalError("Trying to compile error recovery branch", m)) -and GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets repeatSP targetInfos sequel caseLabels cases (contf: Zmap<_,_> -> FakeUnit) = +and GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets targetCounts repeatSP targetInfos sequel caseLabels cases (contf: Zmap<_,_> -> FakeUnit) = match defaultTargetOpt with | Some defaultTarget -> - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv defaultTarget targets repeatSP targetInfos sequel (fun targetInfos -> - GenDecisionTreeCases cenv cgbuf stackAtTargets eenv None targets repeatSP targetInfos sequel caseLabels cases contf + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv defaultTarget targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeCases cenv cgbuf stackAtTargets eenv None targets targetCounts repeatSP targetInfos sequel caseLabels cases contf ) | None -> match caseLabels, cases with | caseLabel :: caseLabelsTail, (TCase(_, caseTree)) :: casesTail -> - GenDecisionTreeAndTargetsInner cenv cgbuf (Some caseLabel) stackAtTargets eenv caseTree targets repeatSP targetInfos sequel (fun targetInfos -> - GenDecisionTreeCases cenv cgbuf stackAtTargets eenv None targets repeatSP targetInfos sequel caseLabelsTail casesTail contf + GenDecisionTreeAndTargetsInner cenv cgbuf (Some caseLabel) stackAtTargets eenv caseTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeCases cenv cgbuf stackAtTargets eenv None targets targetCounts repeatSP targetInfos sequel caseLabelsTail casesTail contf ) | _ -> contf targetInfos @@ -5449,7 +5463,7 @@ and GenDecisionTreeCases cenv cgbuf stackAtTargets eenv defaultTargetOpt targets // Used for the peephole optimization below and (|BoolExpr|_|) = function Expr.Const (Const.Bool b1, _, _) -> Some b1 | _ -> None -and GenDecisionTreeTest cenv cloc cgbuf stackAtTargets e tester eenv successTree failureTree targets repeatSP targetInfos sequel contf = +and GenDecisionTreeTest cenv cloc cgbuf stackAtTargets e tester eenv successTree failureTree targets targetCounts repeatSP targetInfos sequel contf = let g = cenv.g match successTree, failureTree with @@ -5498,8 +5512,8 @@ and GenDecisionTreeTest cenv cloc cgbuf stackAtTargets e tester eenv successTree | Choice2Of2 i -> CG.EmitInstr cgbuf pops pushes i CG.EmitInstr cgbuf (pop 1) Push0 (I_brcmp (BI_brfalse, failure.CodeLabel)) - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets repeatSP targetInfos sequel (fun targetInfos -> - GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets repeatSP targetInfos sequel contf + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel contf ) /// Generate fixups for letrec bindings From 7c3c953b3bf21969ee602f828f60d46dd8588fbb Mon Sep 17 00:00:00 2001 From: Don Syme Date: Tue, 1 Jun 2021 18:08:38 +0100 Subject: [PATCH 02/10] prefer forward branches for decision tree targets reachable via multiple branches --- src/fsharp/IlxGen.fs | 87 +++++++++++++++++++++++++------------- src/fsharp/absil/illib.fs | 6 +++ src/fsharp/absil/illib.fsi | 1 + 3 files changed, 65 insertions(+), 29 deletions(-) diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs index d129373d524..db406a7ce72 100644 --- a/src/fsharp/IlxGen.fs +++ b/src/fsharp/IlxGen.fs @@ -891,10 +891,7 @@ and Mark = | Mark of ILCodeLabel member x.CodeLabel = (let (Mark lab) = x in lab) -//-------------------------------------------------------------------------- -// We normally generate in the context of a "what to do next" continuation -//-------------------------------------------------------------------------- - +/// Represents "what to do next after we generate this expression" and sequel = | EndFilter @@ -904,6 +901,9 @@ and sequel = /// Branch to the given mark | Br of Mark + + /// Execute the given comparison-then-branch instructions on the result of the expression + /// If the branch isn't taken then drop through. | CmpThenBrOrContinue of Pops * ILInstr list /// Continue and leave the value on the IL computation stack @@ -1944,6 +1944,16 @@ type CodeGenBuffer(m: range, member cgbuf.SetMarkToHere (Mark lab) = cgbuf.SetCodeLabelToPC(lab, codebuf.Count) + member cgbuf.SetMarkToHereIfNecessary (inplabOpt: Mark option) = + match inplabOpt with + | None -> () + | Some inplab -> cgbuf.SetMarkToHere inplab + + member cgbuf.EmitBranchIfNecessary (inplabOpt: Mark option, target: Mark) = + match inplabOpt with + | None -> cgbuf.EmitInstr (pop 0, Push0, I_br target.CodeLabel) + | Some inplab -> cgbuf.SetMark(inplab, target) + member cgbuf.SetStack s = stack <- s nstack <- s.Length @@ -5177,7 +5187,7 @@ and GenJoinPoint cenv cgbuf pos eenv ty m sequel = // Accumulate the decision graph as we go and GenDecisionTreeAndTargets cenv cgbuf stackAtTargets eenv tree targets repeatSP sequel contf = - let targetCounts = accTargetsOfDecisionTree tree [] |> List.countBy id |> Map.ofList + let targetCounts = accTargetsOfDecisionTree tree [] |> List.countBy id |> Dictionary.ofList GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv tree targets targetCounts repeatSP (IntMap.empty()) sequel (fun targetInfos -> let sortedTargetInfos = targetInfos @@ -5198,10 +5208,6 @@ and GenPostponedDecisionTreeTargets cenv cgbuf targetInfos stackAtTargets sequel else GenPostponedDecisionTreeTargets cenv cgbuf rest stackAtTargets sequel contf -and TryFindTargetInfo targetInfos n = - match IntMap.tryFind n targetInfos with - | Some (targetInfo, _) -> Some targetInfo - | None -> None /// When inplabOpt is None, we are assuming a branch or fallthrough to the current code location /// @@ -5211,7 +5217,7 @@ and GenDecisionTreeAndTargetsInner cenv cgbuf inplabOpt stackAtTargets eenv tree CG.SetStack cgbuf stackAtTargets // Set the expected initial stack. match tree with | TDBind(bind, rest) -> - match inplabOpt with Some inplab -> CG.SetMarkToHere cgbuf inplab | None -> () + cgbuf.SetMarkToHereIfNecessary inplabOpt let startScope, endScope as scopeMarks = StartDelayedLocalScope "dtreeBind" cgbuf let eenv = AllocStorageForBind cenv cgbuf scopeMarks eenv bind let sp = GenDebugPointForBind cenv cgbuf bind @@ -5237,20 +5243,28 @@ and GetTarget (targets:_[]) n = if n >= targets.Length then failwith "GetTarget: target not found in decision tree" targets.[n] -and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets (targetCounts: Map) repeatSP targetInfos sequel = +/// Generate a success node of a decision trww, binding the variables and going to the target +/// If inplabOpt is present, this label must get set to the first logical place to execute. +/// For example, if no variables get bound this can just be set to jump straight to the target. +and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets (targetCounts: Dictionary) repeatSP targetInfos sequel = let (TTarget(vs, successExpr, spTarget)) = GetTarget targets targetIdx - match TryFindTargetInfo targetInfos targetIdx with - | Some (_, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) -> + match IntMap.tryFind targetIdx targetInfos with + | Some (targetInfo, isTargetPostponed) -> + + let (_, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) = targetInfo + + // We have encountered this target before. See if we should generate it now + let targetCount = targetCounts.[targetIdx] + let generateTargetNow = isTargetPostponed && cenv.opts.localOptimizationsAreOn && targetCount = 1 + targetCounts.[targetIdx] <- targetCount - 1 // If not binding anything we can go directly to the targetMarkAfterBinds point // This is useful to avoid lots of branches e.g. in match A | B | C -> e // In this case each case will just go straight to "e" if isNil vs then - match inplabOpt with - | None -> CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) - | Some inplab -> CG.SetMark cgbuf inplab targetMarkAfterBinds + cgbuf.EmitBranchIfNecessary (inplabOpt, targetMarkAfterBinds) else - match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab + cgbuf.SetMarkToHereIfNecessary inplabOpt repeatSP() (vs, es) ||> List.iter2 (fun v e -> @@ -5260,10 +5274,23 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx GenStoreVal cenv cgbuf eenvAtTarget v.Range v) CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) + + let genTargetInfoOpt = + if generateTargetNow then + // Here we are generating the target immediately + cgbuf.SetMarkToHereIfNecessary inplabOpt + Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) + else + None - targetInfos, None + // Update the targetInfos + let isTargetStillPostponed = isTargetPostponed && not generateTargetNow + let targetInfos = IntMap.add targetIdx (targetInfo, isTargetStillPostponed) targetInfos + targetInfos, genTargetInfoOpt | None -> + // We have not encountered this target before. Set up the generation of the target, even if we're + // going to postpone it let targetMarkBeforeBinds = CG.GenerateDelayMark cgbuf "targetBeforeBinds" let targetMarkAfterBinds = CG.GenerateDelayMark cgbuf "targetAfterBinds" @@ -5272,15 +5299,20 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx let eenvAtTarget = AllocStorageForBinds cenv cgbuf scopeMarks eenv binds let targetInfo = (targetMarkBeforeBinds, targetMarkAfterBinds, eenvAtTarget, successExpr, spTarget, repeatSP, vs, binds, startScope, endScope) + let targetCount = targetCounts.[targetIdx] + // In debug mode, postpone all decision tree targets to after the switching. // In release mode, if a target is the target of multiple incoming success nodes, postpone it to avoid // making any backward branches - let isTargetPostponed = - not cenv.opts.localOptimizationsAreOn || - not (targetCounts.ContainsKey targetIdx) || - targetCounts.[targetIdx] <> 1 + let generateTargetNow = cenv.opts.localOptimizationsAreOn && targetCount = 1 + targetCounts.[targetIdx] <- targetCount - 1 + let genTargetInfoOpt = - if isTargetPostponed then + if generateTargetNow then + // Here we are generating the target immediately + cgbuf.SetMarkToHereIfNecessary inplabOpt + Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) + else // Here we are postponing the generation of the target. // If not binding anything we can go directly to the targetMarkAfterBinds point. if isNil vs then @@ -5288,14 +5320,11 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx | None -> CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) | Some inplab -> CG.SetMark cgbuf inplab targetMarkAfterBinds else - match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab + cgbuf.SetMarkToHereIfNecessary inplabOpt CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkBeforeBinds.CodeLabel) None - else - // Here we are generating the target immediately - match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab - Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) + let isTargetPostponed = not generateTargetNow let targetInfos = IntMap.add targetIdx (targetInfo, isTargetPostponed) targetInfos targetInfos, genTargetInfoOpt @@ -5325,7 +5354,7 @@ and GenDecisionTreeTarget cenv cgbuf stackAtTargets (targetMarkBeforeBinds, targ and GenDecisionTreeSwitch cenv cgbuf inplabOpt stackAtTargets eenv e cases defaultTargetOpt switchm targets targetCounts repeatSP targetInfos sequel contf = let g = cenv.g let m = e.Range - match inplabOpt with None -> () | Some inplab -> CG.SetMarkToHere cgbuf inplab + cgbuf.SetMarkToHereIfNecessary inplabOpt repeatSP() match cases with diff --git a/src/fsharp/absil/illib.fs b/src/fsharp/absil/illib.fs index fa0fb872aa7..516ecad515a 100644 --- a/src/fsharp/absil/illib.fs +++ b/src/fsharp/absil/illib.fs @@ -606,6 +606,12 @@ module String = module Dictionary = let inline newWithSize (size: int) = Dictionary<_, _>(size, HashIdentity.Structural) + let inline ofList (xs: ('Key * 'Value) list) = + let t = Dictionary<_, _>(List.length xs, HashIdentity.Structural) + for (k,v) in xs do + t.Add(k,v) + t + [] type DictionaryExtensions() = diff --git a/src/fsharp/absil/illib.fsi b/src/fsharp/absil/illib.fsi index 57e8593f730..0d30ddf8150 100644 --- a/src/fsharp/absil/illib.fsi +++ b/src/fsharp/absil/illib.fsi @@ -253,6 +253,7 @@ module internal String = module internal Dictionary = val inline newWithSize : size:int -> Dictionary<'a,'b> when 'a: equality + val inline ofList : xs: ('Key * 'Value) list -> Dictionary<'Key,'Value> when 'Key: equality [] type internal DictionaryExtensions = From b6ab109b2ded7b3e29308704e8a29e44afcb79bd Mon Sep 17 00:00:00 2001 From: Don Syme Date: Tue, 1 Jun 2021 18:29:50 +0100 Subject: [PATCH 03/10] prefer forward branches for decision tree targets reachable via multiple branches --- src/fsharp/IlxGen.fs | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs index db406a7ce72..ea8803a121f 100644 --- a/src/fsharp/IlxGen.fs +++ b/src/fsharp/IlxGen.fs @@ -1949,7 +1949,7 @@ type CodeGenBuffer(m: range, | None -> () | Some inplab -> cgbuf.SetMarkToHere inplab - member cgbuf.EmitBranchIfNecessary (inplabOpt: Mark option, target: Mark) = + member cgbuf.SetMarkOrEmitBranchIfNecessary (inplabOpt: Mark option, target: Mark) = match inplabOpt with | None -> cgbuf.EmitInstr (pop 0, Push0, I_br target.CodeLabel) | Some inplab -> cgbuf.SetMark(inplab, target) @@ -5251,25 +5251,23 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx match IntMap.tryFind targetIdx targetInfos with | Some (targetInfo, isTargetPostponed) -> - let (_, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) = targetInfo + let (targetMarkBeforeBinds, targetMarkAfterBinds: Mark, eenvAtTarget, _, _, _, _, _, _, _) = targetInfo // We have encountered this target before. See if we should generate it now let targetCount = targetCounts.[targetIdx] let generateTargetNow = isTargetPostponed && cenv.opts.localOptimizationsAreOn && targetCount = 1 targetCounts.[targetIdx] <- targetCount - 1 - // If not binding anything we can go directly to the targetMarkAfterBinds point + // If not binding anything we can go directly to the targetMarkBeforeBinds point // This is useful to avoid lots of branches e.g. in match A | B | C -> e // In this case each case will just go straight to "e" if isNil vs then - cgbuf.EmitBranchIfNecessary (inplabOpt, targetMarkAfterBinds) + cgbuf.SetMarkOrEmitBranchIfNecessary (inplabOpt, targetMarkBeforeBinds) else cgbuf.SetMarkToHereIfNecessary inplabOpt repeatSP() (vs, es) ||> List.iter2 (fun v e -> - - // Emit the expression GenBindingRhs cenv cgbuf eenv SPSuppress v e GenStoreVal cenv cgbuf eenvAtTarget v.Range v) @@ -5277,8 +5275,6 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx let genTargetInfoOpt = if generateTargetNow then - // Here we are generating the target immediately - cgbuf.SetMarkToHereIfNecessary inplabOpt Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) else None @@ -5314,14 +5310,7 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) else // Here we are postponing the generation of the target. - // If not binding anything we can go directly to the targetMarkAfterBinds point. - if isNil vs then - match inplabOpt with - | None -> CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) - | Some inplab -> CG.SetMark cgbuf inplab targetMarkAfterBinds - else - cgbuf.SetMarkToHereIfNecessary inplabOpt - CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkBeforeBinds.CodeLabel) + cgbuf.SetMarkOrEmitBranchIfNecessary (inplabOpt, targetMarkBeforeBinds) None let isTargetPostponed = not generateTargetNow From 69143e4a8ced120018929bf4fba8cea2a7194caf Mon Sep 17 00:00:00 2001 From: Don Syme Date: Tue, 1 Jun 2021 20:26:31 +0100 Subject: [PATCH 04/10] generate targets in order else postpone --- src/fsharp/IlxGen.fs | 77 ++++++++++++++----- .../Compiler/CodeGen/EmittedIL/Mutation.fs | 66 +++++++--------- tests/fsharp/core/printf/test.fsx | 2 +- 3 files changed, 86 insertions(+), 59 deletions(-) diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs index ea8803a121f..2a712fced97 100644 --- a/src/fsharp/IlxGen.fs +++ b/src/fsharp/IlxGen.fs @@ -5188,10 +5188,13 @@ and GenJoinPoint cenv cgbuf pos eenv ty m sequel = // Accumulate the decision graph as we go and GenDecisionTreeAndTargets cenv cgbuf stackAtTargets eenv tree targets repeatSP sequel contf = let targetCounts = accTargetsOfDecisionTree tree [] |> List.countBy id |> Dictionary.ofList - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv tree targets targetCounts repeatSP (IntMap.empty()) sequel (fun targetInfos -> + let targetNext = ref 0 // used to make sure we generate the targets in-order, postponing if necessary + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv tree targets (targetNext, targetCounts) repeatSP (IntMap.empty()) sequel (fun targetInfos -> let sortedTargetInfos = targetInfos |> Seq.sortBy (fun (KeyValue(targetIdx, _)) -> targetIdx) + |> Seq.filter (fun (KeyValue(_, (_, isTargetPostponed))) -> isTargetPostponed) + |> Seq.map (fun (KeyValue(_, (targetInfo, _))) -> targetInfo) |> List.ofSeq GenPostponedDecisionTreeTargets cenv cgbuf sortedTargetInfos stackAtTargets sequel contf ) @@ -5199,15 +5202,11 @@ and GenDecisionTreeAndTargets cenv cgbuf stackAtTargets eenv tree targets repeat and GenPostponedDecisionTreeTargets cenv cgbuf targetInfos stackAtTargets sequel contf = match targetInfos with | [] -> contf Fake - | (KeyValue(_, (targetInfo, isTargetPostponed))) :: rest -> - if isTargetPostponed then - let eenvAtTarget, spExprAtTarget, exprAtTarget, sequelAtTarget = GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel - GenLinearExpr cenv cgbuf eenvAtTarget spExprAtTarget exprAtTarget sequelAtTarget true (fun Fake -> - GenPostponedDecisionTreeTargets cenv cgbuf rest stackAtTargets sequel contf - ) - else + | targetInfo :: rest -> + let eenvAtTarget, spExprAtTarget, exprAtTarget, sequelAtTarget = GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel + GenLinearExpr cenv cgbuf eenvAtTarget spExprAtTarget exprAtTarget sequelAtTarget true (fun Fake -> GenPostponedDecisionTreeTargets cenv cgbuf rest stackAtTargets sequel contf - + ) /// When inplabOpt is None, we are assuming a branch or fallthrough to the current code location /// @@ -5243,10 +5242,10 @@ and GetTarget (targets:_[]) n = if n >= targets.Length then failwith "GetTarget: target not found in decision tree" targets.[n] -/// Generate a success node of a decision trww, binding the variables and going to the target +/// Generate a success node of a decision tree, binding the variables and going to the target /// If inplabOpt is present, this label must get set to the first logical place to execute. /// For example, if no variables get bound this can just be set to jump straight to the target. -and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets (targetCounts: Dictionary) repeatSP targetInfos sequel = +and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx targets (targetNext: int ref, targetCounts: Dictionary) repeatSP targetInfos sequel = let (TTarget(vs, successExpr, spTarget)) = GetTarget targets targetIdx match IntMap.tryFind targetIdx targetInfos with | Some (targetInfo, isTargetPostponed) -> @@ -5255,7 +5254,7 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx // We have encountered this target before. See if we should generate it now let targetCount = targetCounts.[targetIdx] - let generateTargetNow = isTargetPostponed && cenv.opts.localOptimizationsAreOn && targetCount = 1 + let generateTargetNow = isTargetPostponed && cenv.opts.localOptimizationsAreOn && targetCount = 1 && targetNext.Value = targetIdx targetCounts.[targetIdx] <- targetCount - 1 // If not binding anything we can go directly to the targetMarkBeforeBinds point @@ -5268,13 +5267,19 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx repeatSP() (vs, es) ||> List.iter2 (fun v e -> - GenBindingRhs cenv cgbuf eenv SPSuppress v e + + // Emit the expression + GenBindingRhs cenv cgbuf eenv SPSuppress v e) + + vs |> List.rev |> List.iter (fun v -> + // Store the results GenStoreVal cenv cgbuf eenvAtTarget v.Range v) CG.EmitInstr cgbuf (pop 0) Push0 (I_br targetMarkAfterBinds.CodeLabel) let genTargetInfoOpt = if generateTargetNow then + incr targetNext // generate the targets in-order only Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) else None @@ -5300,12 +5305,13 @@ and GenDecisionTreeSuccess cenv cgbuf inplabOpt stackAtTargets eenv es targetIdx // In debug mode, postpone all decision tree targets to after the switching. // In release mode, if a target is the target of multiple incoming success nodes, postpone it to avoid // making any backward branches - let generateTargetNow = cenv.opts.localOptimizationsAreOn && targetCount = 1 + let generateTargetNow = cenv.opts.localOptimizationsAreOn && targetCount = 1 && targetNext.Value = targetIdx targetCounts.[targetIdx] <- targetCount - 1 let genTargetInfoOpt = if generateTargetNow then // Here we are generating the target immediately + incr targetNext // generate the targets in-order only cgbuf.SetMarkToHereIfNecessary inplabOpt Some(GenDecisionTreeTarget cenv cgbuf stackAtTargets targetInfo sequel) else @@ -5513,26 +5519,55 @@ and GenDecisionTreeTest cenv cloc cgbuf stackAtTargets e tester eenv successTree | _ -> failwith "internal error: GenDecisionTreeTest during bool elim" | _ -> - let failure = CG.GenerateDelayMark cgbuf "testFailure" match tester with - | None -> - // generate the expression, then test it for "false" - GenExpr cenv cgbuf eenv SPSuppress e (CmpThenBrOrContinue(pop 1, [ I_brcmp (BI_brfalse, failure.CodeLabel) ])) + | None _ -> + // Check if there is more logic in the decision tree for the failure branch + // (and no more logic for the success branch), for example + // when emitting the first part of 'expr1 || expr2'. + // + // If so, emit the failure logic, then came back and do the success target, then + // do any postponed failure target. + match successTree, failureTree with + | TDSuccess _, (TDBind _ | TDSwitch _) -> + + // OK, there is more logic in the decision tree on the failure branch + let success = CG.GenerateDelayMark cgbuf "testSuccess" + GenExpr cenv cgbuf eenv SPSuppress e (CmpThenBrOrContinue(pop 1, [ I_brcmp (BI_brtrue, success.CodeLabel) ])) + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeAndTargetsInner cenv cgbuf (Some success) stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel contf + ) + + | _ -> + + // Either we're not yet done with the success branch, or there is no more logic + // in the decision tree on the failure branch. Continue doing the success branch + // logic first. + let failure = CG.GenerateDelayMark cgbuf "testFailure" + GenExpr cenv cgbuf eenv SPSuppress e (CmpThenBrOrContinue(pop 1, [ I_brcmp (BI_brfalse, failure.CodeLabel) ])) + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel contf + ) // Turn 'isdata' tests that branch into EI_brisdata tests | Some (_, _, Choice1Of2 (avoidHelpers, cuspec, idx)) -> + let failure = CG.GenerateDelayMark cgbuf "testFailure" GenExpr cenv cgbuf eenv SPSuppress e (CmpThenBrOrContinue(pop 1, EraseUnions.mkBrIsData g.ilg false (avoidHelpers, cuspec, idx, failure.CodeLabel))) + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel contf + ) + | Some (pops, pushes, i) -> + let failure = CG.GenerateDelayMark cgbuf "testFailure" GenExpr cenv cgbuf eenv SPSuppress e Continue match i with | Choice1Of2 (avoidHelpers, cuspec, idx) -> CG.EmitInstrs cgbuf pops pushes (EraseUnions.mkIsData g.ilg (avoidHelpers, cuspec, idx)) | Choice2Of2 i -> CG.EmitInstr cgbuf pops pushes i CG.EmitInstr cgbuf (pop 1) Push0 (I_brcmp (BI_brfalse, failure.CodeLabel)) - GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> - GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel contf - ) + GenDecisionTreeAndTargetsInner cenv cgbuf None stackAtTargets eenv successTree targets targetCounts repeatSP targetInfos sequel (fun targetInfos -> + GenDecisionTreeAndTargetsInner cenv cgbuf (Some failure) stackAtTargets eenv failureTree targets targetCounts repeatSP targetInfos sequel contf + ) /// Generate fixups for letrec bindings and GenLetRecFixup cenv cgbuf eenv (ilxCloSpec: IlxClosureSpec, e, ilField: ILFieldSpec, e2, _m) = diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs index a13eb1e75a6..0a2bac6b626 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs @@ -284,24 +284,20 @@ type StaticC() = { .maxstack 8 - IL_0000: volatile. - IL_0002: ldsfld int32 Mutation05/StaticC::init@10 - IL_0007: ldc.i4.1 - IL_0008: bge.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0017 - - IL_000e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0013: nop - IL_0014: nop - IL_0015: br.s IL_0018 - - IL_0017: nop - IL_0018: volatile. - IL_001a: ldsfld int32 Mutation05/StaticC::x - IL_001f: ret + IL_0000: volatile. + IL_0002: ldsfld int32 Mutation05/StaticC::init@10 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 + + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop + IL_0010: nop + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: volatile. + IL_0016: ldsfld int32 Mutation05/StaticC::x + IL_001b: ret } .method public specialname static void @@ -309,25 +305,21 @@ type StaticC() = { .maxstack 8 - IL_0000: volatile. - IL_0002: ldsfld int32 Mutation05/StaticC::init@10 - IL_0007: ldc.i4.1 - IL_0008: bge.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0017 - - IL_000e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0013: nop - IL_0014: nop - IL_0015: br.s IL_0018 - - IL_0017: nop - IL_0018: ldarg.0 - IL_0019: volatile. - IL_001b: stsfld int32 Mutation05/StaticC::x - IL_0020: ret + IL_0000: volatile. + IL_0002: ldsfld int32 Mutation05/StaticC::init@10 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 + + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop + IL_0010: nop + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldarg.0 + IL_0015: volatile. + IL_0017: stsfld int32 Mutation05/StaticC::x + IL_001c: ret } .method private specialname rtspecialname static diff --git a/tests/fsharp/core/printf/test.fsx b/tests/fsharp/core/printf/test.fsx index defd79d73bc..bb8a5a44cee 100644 --- a/tests/fsharp/core/printf/test.fsx +++ b/tests/fsharp/core/printf/test.fsx @@ -137,7 +137,7 @@ let _ = test "cewoui2B" (lazy(sprintf "%X" 0xffffffff)) "FFFFFFFF" let _ = test "cewoui2N" (lazy(sprintf "%X" (System.Int32.MinValue+1))) "80000001" let _ = test "cewoui2M" (lazy(sprintf "%X" System.Int32.MaxValue)) "7FFFFFFF" let _ = test "cewoui2," (lazy(sprintf "%X" System.UInt64.MaxValue)) "FFFFFFFFFFFFFFFF" -let _ = test "cewoui2." (lazy(sprintf "%X" System.Int64.MinValue)) "FFFFFFFFFFFFFFFF" +let _ = test "cewoui2." (lazy(sprintf "%X" System.Int64.MinValue)) "8000000000000000" let _ = test "cewou44a" (lazy(sprintf "%u" 0)) "0" let _ = test "cewou44b" (lazy(sprintf "%u" 5)) "5" From 06fa90b9878f560eff7f8c83f11b5c68a526ea1a Mon Sep 17 00:00:00 2001 From: Don Syme Date: Tue, 1 Jun 2021 20:38:29 +0100 Subject: [PATCH 05/10] update baselines --- .../CCtorDUWithMember01.il.bsl | 336 +- .../CCtorDUWithMember02.il.bsl | 16 +- .../CCtorDUWithMember03.il.bsl | 24 +- .../CCtorDUWithMember04.il.bsl | 16 +- .../GeneratedIterators/GenIter01.il.bsl | 308 +- .../GeneratedIterators/GenIter02.il.bsl | 316 +- .../GeneratedIterators/GenIter03.il.bsl | 308 +- .../GeneratedIterators/GenIter04.il.bsl | 308 +- .../InequalityComparison01.il.bsl | 14 +- .../InequalityComparison02.il.bsl | 14 +- .../InequalityComparison03.il.bsl | 14 +- .../InequalityComparison04.il.bsl | 14 +- .../InequalityComparison05.il.bsl | 28 +- .../ListExpressionSteppingTest1.il.bsl | 106 +- .../ListExpressionSteppingTest2.il.bsl | 152 +- .../ListExpressionSteppingTest3.il.bsl | 136 +- .../ListExpressionSteppingTest4.il.bsl | 200 +- .../ListExpressionSteppingTest5.il.bsl | 376 +- .../ListExpressionSteppingTest6.il.bsl | 450 +- .../EmittedIL/Misc/AbstractClass.il.bsl | 14 +- .../CodeGen/EmittedIL/Misc/AnonRecd.il.bsl | 482 +- .../Misc/ArgumentNamesInClosures01.il.bsl | 4 +- .../EmittedIL/Misc/CodeGenRenamings01.il.bsl | 146 +- .../CustomAttributeGenericParameter01.il.bsl | 12 +- .../CodeGen/EmittedIL/Misc/Decimal01.il.bsl | 8 +- .../EmittedIL/Misc/EntryPoint01.il.bsl | 36 +- .../EmittedIL/Misc/EqualsOnUnions01.il.bsl | 746 +-- .../CodeGen/EmittedIL/Misc/ForLoop01.il.bsl | 14 +- .../CodeGen/EmittedIL/Misc/ForLoop02.il.bsl | 14 +- .../CodeGen/EmittedIL/Misc/ForLoop03.il.bsl | 12 +- .../Misc/GeneralizationOnUnions01.il.bsl | 230 +- .../Misc/GenericTypeStaticField01.il.bsl | 4 +- .../EmittedIL/Misc/IfThenElse01.il.bsl | 18 +- .../EmittedIL/Misc/LetIfThenElse01.il.bsl | 130 +- .../CodeGen/EmittedIL/Misc/Lock01.il.bsl | 36 +- .../CodeGen/EmittedIL/Misc/Marshal.il.bsl | 10 +- .../EmittedIL/Misc/MethodImplNoInline.il.bsl | 6 +- .../Misc/MethodImplNoInline02.il.bsl | 6 +- .../Misc/ModuleWithExpression01.il.bsl | 14 +- .../EmittedIL/Misc/NoBoxingOnDispose01.il.bsl | 12 +- .../Misc/NonEscapingArguments02.il.bsl | 14 +- .../CodeGen/EmittedIL/Misc/PreserveSig.il.bsl | 12 +- .../EmittedIL/Misc/Seq_for_all01.il.bsl | 24 +- .../CodeGen/EmittedIL/Misc/Structs01.il.bsl | 50 +- .../CodeGen/EmittedIL/Misc/Structs02.il.bsl | 50 +- .../Misc/StructsAsArrayElements01.il.bsl | 50 +- .../Misc/TryWith_NoFilterBlocks01.il.bsl | 46 +- .../Source/CodeGen/EmittedIL/Misc/cas.il.bsl | 14 +- .../Linq101Aggregates01.il.bsl | 5432 ++++++++--------- .../Linq101ElementOperators01.il.bsl | 1160 ++-- .../Linq101Grouping01.il.bsl | 4 +- .../Linq101Joins01.il.bsl | 48 +- .../Linq101Ordering01.il.bsl | 1164 ++-- .../Linq101Partitioning01.il.bsl | 1156 ++-- .../Linq101Quantifiers01.il.bsl | 582 +- .../Linq101Select01.il.bsl | 2082 +++---- .../Linq101SetOperators01.il.bsl | 1184 ++-- .../Linq101Where01.il.bsl | 344 +- .../SeqExpressionSteppingTest1.il.bsl | 106 +- .../SeqExpressionSteppingTest2.il.bsl | 152 +- .../SeqExpressionSteppingTest3.il.bsl | 136 +- .../SeqExpressionSteppingTest4.il.bsl | 200 +- .../SeqExpressionSteppingTest5.il.bsl | 376 +- .../SeqExpressionSteppingTest6.il.bsl | 450 +- .../SeqExpressionSteppingTest7.il.bsl | 190 +- .../SeqExpressionTailCalls01.il.bsl | 150 +- .../SeqExpressionTailCalls02.il.bsl | 286 +- .../EmittedIL/StaticInit/LetBinding01.il.bsl | 12 +- .../StaticInit/StaticInit_Class01.il.bsl | 48 +- .../StaticInit/StaticInit_Module01.il.bsl | 20 +- .../StaticInit/StaticInit_Struct01.il.bsl | 36 +- .../SteppingMatch/SteppingMatch01.il.bsl | 14 +- .../SteppingMatch/SteppingMatch02.il.bsl | 14 +- .../SteppingMatch/SteppingMatch03.il.bsl | 62 +- .../SteppingMatch/SteppingMatch04.il.bsl | 62 +- .../SteppingMatch/SteppingMatch05.il.bsl | 62 +- .../SteppingMatch/SteppingMatch06.il.bsl | 334 +- .../SteppingMatch/SteppingMatch07.il.bsl | 334 +- .../SteppingMatch/SteppingMatch08.il.bsl | 14 +- .../SteppingMatch/SteppingMatch09.il.bsl | 74 +- .../TestFunctions/TestFunction1.il.bsl | 12 +- .../TestFunctions/TestFunction10.il.bsl | 12 +- .../TestFunctions/TestFunction13.il.bsl | 14 +- .../TestFunctions/TestFunction14.il.bsl | 4 +- .../TestFunctions/TestFunction16.il.bsl | 646 +- .../TestFunctions/TestFunction17.il.bsl | 580 +- .../TestFunctions/TestFunction19.il.bsl | 12 +- .../TestFunctions/TestFunction20.il.bsl | 12 +- .../TestFunctions/TestFunction21.il.bsl | 646 +- .../TestFunctions/TestFunction23.il.bsl | 4 +- .../TestFunctions/TestFunction24.il.bsl | 748 +-- .../TestFunctions/TestFunction3b.il.bsl | 48 +- .../TestFunctions/TestFunction3c.il.bsl | 50 +- .../TestFunctions/TestFunction9b4.il.bsl | 14 +- .../TestFunctions/Testfunction11.il.bsl | 14 +- .../TestFunctions/Testfunction12.il.bsl | 12 +- .../TestFunctions/Testfunction15.il.bsl | 4 +- .../TestFunctions/Testfunction18.il.bsl | 14 +- .../TestFunctions/Testfunction2.il.bsl | 14 +- .../TestFunctions/Testfunction22.il.bsl | 12 +- .../TestFunctions/Testfunction22b.il.bsl | 14 +- .../TestFunctions/Testfunction22c.il.bsl | 14 +- .../TestFunctions/Testfunction22d.il.bsl | 14 +- .../TestFunctions/Testfunction22e.il.bsl | 14 +- .../TestFunctions/Testfunction22f.il.bsl | 28 +- .../TestFunctions/Testfunction22g.il.bsl | 34 +- .../TestFunctions/Testfunction22h.il.bsl | 14 +- .../TestFunctions/Testfunction3.il.bsl | 14 +- .../TestFunctions/Testfunction4.il.bsl | 14 +- .../TestFunctions/Testfunction5.il.bsl | 14 +- .../TestFunctions/Testfunction6.il.bsl | 4 +- .../TestFunctions/Testfunction7.il.bsl | 14 +- .../TestFunctions/Testfunction8.il.bsl | 36 +- .../TestFunctions/Testfunction9.il.bsl | 36 +- .../TestFunctions/Testfunction9b.il.bsl | 246 +- .../TestFunctions/Testfunction9b1.il.bsl | 246 +- .../TestFunctions/Testfunction9b2.il.bsl | 246 +- .../TestFunctions/Testfunction9b3.il.bsl | 246 +- .../EmittedIL/Tuples/OptionalArg01.il.bsl | 144 +- .../CodeGen/EmittedIL/Tuples/Tuple01.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple02.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple03.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple04.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple05.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple06.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple07.il.bsl | 14 +- .../CodeGen/EmittedIL/Tuples/Tuple08.il.bsl | 14 +- .../EmittedIL/Tuples/TupleElimination.il.bsl | 8 +- .../EmittedIL/Tuples/TupleMonster.il.bsl | 12 +- .../Tuples/ValueTupleAliasConstructor.il.bsl | 23 +- 130 files changed, 11839 insertions(+), 14218 deletions(-) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01.il.bsl index 5875beb14e4..b07afd62275 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CCtorDUWithMember01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CCtorDUWithMember01 { - // Offset: 0x00000000 Length: 0x00000790 + // Offset: 0x00000000 Length: 0x0000077A } .mresource public FSharpOptimizationData.CCtorDUWithMember01 { - // Offset: 0x00000798 Length: 0x00000227 + // Offset: 0x00000780 Length: 0x00000227 } .module CCtorDUWithMember01.exe -// MVID: {59B1923F-26F1-14EE-A745-03833F92B159} +// MVID: {60B68B7E-26F1-14EE-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00A70000 +// Image base: 0x06D80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -70,7 +70,7 @@ [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_2, [3] class CCtorDUWithMember01a/C V_3) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember01.fs' + .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember01.fs' IL_0000: ldstr "File1.A = %A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class CCtorDUWithMember01a/C>::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -255,76 +255,60 @@ instance int32 CompareTo(class CCtorDUWithMember01a/C obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 64 (0x40) + // Code size 48 (0x30) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember01a.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember01a.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0032 + IL_0004: brfalse.s IL_0026 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0030 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: bne.un.s IL_0028 - - IL_0026: br.s IL_002a - - IL_0028: br.s IL_002c + IL_000c: ldarg.0 + IL_000d: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: bne.un.s IL_0020 .line 100001,100001 : 0,0 '' - IL_002a: ldc.i4.0 - IL_002b: ret + IL_001e: ldc.i4.0 + IL_001f: ret .line 100001,100001 : 0,0 '' - IL_002c: ldloc.0 - IL_002d: ldloc.1 - IL_002e: sub - IL_002f: ret + IL_0020: ldloc.0 + IL_0021: ldloc.1 + IL_0022: sub + IL_0023: ret .line 100001,100001 : 0,0 '' - IL_0030: ldc.i4.1 - IL_0031: ret + IL_0024: ldc.i4.1 + IL_0025: ret .line 100001,100001 : 0,0 '' - IL_0032: ldarg.1 - IL_0033: ldnull - IL_0034: cgt.un - IL_0036: brfalse.s IL_003a - - IL_0038: br.s IL_003c - - IL_003a: br.s IL_003e + IL_0026: ldarg.1 + IL_0027: ldnull + IL_0028: cgt.un + IL_002a: brfalse.s IL_002e .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.m1 - IL_003d: ret + IL_002c: ldc.i4.m1 + IL_002d: ret .line 100001,100001 : 0,0 '' - IL_003e: ldc.i4.0 - IL_003f: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method C::CompareTo .method public hidebysig virtual final @@ -346,7 +330,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 81 (0x51) + // Code size 65 (0x41) .maxstack 4 .locals init ([0] class CCtorDUWithMember01a/C V_0, [1] int32 V_1, @@ -358,99 +342,79 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0011 - - IL_000f: br.s IL_003e + IL_000b: brfalse.s IL_0032 .line 100001,100001 : 0,0 '' - IL_0011: ldarg.1 - IL_0012: unbox.any CCtorDUWithMember01a/C - IL_0017: ldnull - IL_0018: cgt.un - IL_001a: brfalse.s IL_001e - - IL_001c: br.s IL_0020 - - IL_001e: br.s IL_003c + IL_000d: ldarg.1 + IL_000e: unbox.any CCtorDUWithMember01a/C + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_0030 .line 100001,100001 : 0,0 '' - IL_0020: ldarg.0 - IL_0021: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0026: stloc.1 - IL_0027: ldloc.0 - IL_0028: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_002d: stloc.2 - IL_002e: ldloc.1 - IL_002f: ldloc.2 - IL_0030: bne.un.s IL_0034 - - IL_0032: br.s IL_0036 - - IL_0034: br.s IL_0038 + IL_0018: ldarg.0 + IL_0019: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_001e: stloc.1 + IL_001f: ldloc.0 + IL_0020: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0025: stloc.2 + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: bne.un.s IL_002c .line 100001,100001 : 0,0 '' - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002a: ldc.i4.0 + IL_002b: ret .line 100001,100001 : 0,0 '' - IL_0038: ldloc.1 - IL_0039: ldloc.2 - IL_003a: sub - IL_003b: ret + IL_002c: ldloc.1 + IL_002d: ldloc.2 + IL_002e: sub + IL_002f: ret .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.1 - IL_003d: ret + IL_0030: ldc.i4.1 + IL_0031: ret .line 100001,100001 : 0,0 '' - IL_003e: ldarg.1 - IL_003f: unbox.any CCtorDUWithMember01a/C - IL_0044: ldnull - IL_0045: cgt.un - IL_0047: brfalse.s IL_004b - - IL_0049: br.s IL_004d - - IL_004b: br.s IL_004f + IL_0032: ldarg.1 + IL_0033: unbox.any CCtorDUWithMember01a/C + IL_0038: ldnull + IL_0039: cgt.un + IL_003b: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_004d: ldc.i4.m1 - IL_004e: ret + IL_003d: ldc.i4.m1 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004f: ldc.i4.0 - IL_0050: ret + IL_003f: ldc.i4.0 + IL_0040: ret } // end of method C::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 21 (0x15) + // Code size 17 (0x11) .maxstack 3 .locals init ([0] int32 V_0) .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0013 + IL_0004: brfalse.s IL_000f .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0012: ret + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_000e: ret .line 100001,100001 : 0,0 '' - IL_0013: ldc.i4.0 - IL_0014: ret + IL_000f: ldc.i4.0 + IL_0010: ret } // end of method C::GetHashCode .method public hidebysig virtual final @@ -471,7 +435,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 55 (0x37) + // Code size 47 (0x2f) .maxstack 4 .locals init ([0] class CCtorDUWithMember01a/C V_0, [1] class CCtorDUWithMember01a/C V_1, @@ -481,48 +445,40 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_002f + IL_0004: brfalse.s IL_0027 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst CCtorDUWithMember01a/C - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_002d + IL_0006: ldarg.1 + IL_0007: isinst CCtorDUWithMember01a/C + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.0 - IL_001b: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0020: stloc.2 - IL_0021: ldloc.1 - IL_0022: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0027: stloc.3 - IL_0028: ldloc.2 - IL_0029: ldloc.3 - IL_002a: ceq - IL_002c: ret + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0018: stloc.2 + IL_0019: ldloc.1 + IL_001a: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_001f: stloc.3 + IL_0020: ldloc.2 + IL_0021: ldloc.3 + IL_0022: ceq + IL_0024: ret .line 100001,100001 : 0,0 '' - IL_002d: ldc.i4.0 - IL_002e: ret + IL_0025: ldc.i4.0 + IL_0026: ret .line 100001,100001 : 0,0 '' - IL_002f: ldarg.1 - IL_0030: ldnull - IL_0031: cgt.un - IL_0033: ldc.i4.0 - IL_0034: ceq - IL_0036: ret + IL_0027: ldarg.1 + IL_0028: ldnull + IL_0029: cgt.un + IL_002b: ldc.i4.0 + IL_002c: ceq + IL_002e: ret } // end of method C::Equals .method public hidebysig specialname @@ -539,7 +495,7 @@ instance bool Equals(class CCtorDUWithMember01a/C obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 49 (0x31) + // Code size 41 (0x29) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) @@ -547,52 +503,44 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0029 + IL_0004: brfalse.s IL_0021 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0027 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_001f .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 CCtorDUWithMember01a/C::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: ceq - IL_0026: ret + IL_000c: ldarg.0 + IL_000d: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 CCtorDUWithMember01a/C::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: ceq + IL_001e: ret .line 100001,100001 : 0,0 '' - IL_0027: ldc.i4.0 - IL_0028: ret + IL_001f: ldc.i4.0 + IL_0020: ret .line 100001,100001 : 0,0 '' - IL_0029: ldarg.1 - IL_002a: ldnull - IL_002b: cgt.un - IL_002d: ldc.i4.0 - IL_002e: ceq - IL_0030: ret + IL_0021: ldarg.1 + IL_0022: ldnull + IL_0023: cgt.un + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: ret } // end of method C::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class CCtorDUWithMember01a/C V_0) .line 3,3 : 6,7 '' @@ -600,21 +548,17 @@ IL_0001: isinst CCtorDUWithMember01a/C IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool CCtorDUWithMember01a/C::Equals(class CCtorDUWithMember01a/C) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool CCtorDUWithMember01a/C::Equals(class CCtorDUWithMember01a/C) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method C::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember02.il.bsl index f8d32ee78a8..10cb539ef09 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CCtorDUWithMember02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CCtorDUWithMember02 { - // Offset: 0x00000000 Length: 0x0000030C + // Offset: 0x00000000 Length: 0x00000302 } .mresource public FSharpOptimizationData.CCtorDUWithMember02 { - // Offset: 0x00000310 Length: 0x000000E4 + // Offset: 0x00000308 Length: 0x000000E4 } .module CCtorDUWithMember02.exe -// MVID: {59B1923F-D176-C99D-A745-03833F92B159} +// MVID: {60B68B7E-D176-C99D-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01380000 +// Image base: 0x06BF0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -68,7 +68,7 @@ .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_0, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 2,2 : 1,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember02.fs' + .line 2,2 : 1,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember02.fs' IL_0000: ldstr "x = %A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,int32>::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -152,7 +152,7 @@ // Code size 77 (0x4d) .maxstack 4 .locals init ([0] int32 y) - .line 3,3 : 1,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember02a.fs' + .line 3,3 : 1,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember02a.fs' IL_0000: ldstr "hello1" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember03.il.bsl index 2ded0bcb8b9..6f45553c0ec 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CCtorDUWithMember03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CCtorDUWithMember03 { - // Offset: 0x00000000 Length: 0x0000029D + // Offset: 0x00000000 Length: 0x00000293 } .mresource public FSharpOptimizationData.CCtorDUWithMember03 { - // Offset: 0x000002A8 Length: 0x000000B2 + // Offset: 0x00000298 Length: 0x000000B2 } .module CCtorDUWithMember03.exe -// MVID: {59B1923F-C97B-D207-A745-03833F92B159} +// MVID: {60B68B7E-C97B-D207-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x030C0000 +// Image base: 0x05970000 // =============== CLASS MEMBERS DECLARATION =================== @@ -68,7 +68,7 @@ .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_0, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember03.fs' + .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember03.fs' IL_0000: ldstr "File1.x = %A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,int32>::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -93,7 +93,7 @@ { // Code size 6 (0x6) .maxstack 8 - IL_0000: ldsfld int32 ''.$CCtorDUWithMember03a::'x@3-1' + IL_0000: ldsfld int32 ''.$CCtorDUWithMember03a::x@3 IL_0005: ret } // end of method CCtorDUWithMember03a::get_x @@ -103,7 +103,7 @@ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 - IL_0001: stsfld int32 ''.$CCtorDUWithMember03a::'x@3-1' + IL_0001: stsfld int32 ''.$CCtorDUWithMember03a::x@3 IL_0006: ret } // end of method CCtorDUWithMember03a::set_x @@ -118,7 +118,7 @@ .class private abstract auto ansi sealed ''.$CCtorDUWithMember03a extends [mscorlib]System.Object { - .field static assembly int32 'x@3-1' + .field static assembly int32 x@3 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .field static assembly int32 init@ .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) @@ -129,9 +129,9 @@ { // Code size 7 (0x7) .maxstack 8 - .line 3,3 : 1,18 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember03a.fs' + .line 3,3 : 1,18 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember03a.fs' IL_0000: ldc.i4.1 - IL_0001: stsfld int32 ''.$CCtorDUWithMember03a::'x@3-1' + IL_0001: stsfld int32 ''.$CCtorDUWithMember03a::x@3 IL_0006: ret } // end of method $CCtorDUWithMember03a::.cctor diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04.il.bsl index 4063e241fda..0813094fef6 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CCtorDUWithMember04 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CCtorDUWithMember04 { - // Offset: 0x00000000 Length: 0x0000029D + // Offset: 0x00000000 Length: 0x00000293 } .mresource public FSharpOptimizationData.CCtorDUWithMember04 { - // Offset: 0x000002A8 Length: 0x000000B2 + // Offset: 0x00000298 Length: 0x000000B2 } .module CCtorDUWithMember04.exe -// MVID: {59B1923F-CF28-717B-A745-03833F92B159} +// MVID: {60B68B7E-CF28-717B-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00AA0000 +// Image base: 0x07050000 // =============== CLASS MEMBERS DECLARATION =================== @@ -68,7 +68,7 @@ .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_0, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember04.fs' + .line 2,2 : 1,23 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember04.fs' IL_0000: ldstr "File1.x = %A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,int32>::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -118,7 +118,7 @@ // Code size 7 (0x7) .maxstack 3 .locals init ([0] int32 x) - .line 3,3 : 1,10 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember04a.fs' + .line 3,3 : 1,10 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\CCtorDUWithMember\\CCtorDUWithMember04a.fs' IL_0000: call int32 CCtorDUWithMember04a::get_x() IL_0005: stloc.0 IL_0006: ret diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter01.il.bsl index 601e4ffc1e7..021035aebbb 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly GenIter01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.GenIter01 { - // Offset: 0x00000000 Length: 0x000001FF + // Offset: 0x00000000 Length: 0x000001F3 } .mresource public FSharpOptimizationData.GenIter01 { - // Offset: 0x00000208 Length: 0x0000007A + // Offset: 0x000001F8 Length: 0x0000007A } .module GenIter01.exe -// MVID: {5B9A6329-F836-DC98-A745-038329639A5B} +// MVID: {60B68B7E-F836-DC98-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01080000 +// Image base: 0x071C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -91,105 +91,99 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 157 (0x9d) + // Code size 151 (0x97) .maxstack 8 .locals init ([0] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter01.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter01/squaresOfOneToTen@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0073 + IL_001b: nop + IL_001c: br.s IL_006d .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0070 + IL_001e: nop + IL_001f: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0094 + IL_0021: nop + IL_0022: br.s IL_008e .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 5,6 : 7,23 '' - IL_002b: ldarg.0 - IL_002c: ldc.i4.0 - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.2 - IL_002f: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0025: ldarg.0 + IL_0026: ldc.i4.0 + IL_0027: ldc.i4.1 + IL_0028: ldc.i4.2 + IL_0029: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_0034: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0039: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_003e: ldarg.0 - IL_003f: ldc.i4.1 - IL_0040: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_002e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0033: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_0038: ldarg.0 + IL_0039: ldc.i4.1 + IL_003a: stfld int32 GenIter01/squaresOfOneToTen@5::pc .line 5,6 : 7,23 '' - IL_0045: ldarg.0 - IL_0046: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_004b: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0050: brfalse.s IL_0073 - - IL_0052: ldarg.0 - IL_0053: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_0058: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005d: stloc.0 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_003f: ldarg.0 + IL_0040: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_0045: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_004a: brfalse.s IL_006d + + IL_004c: ldarg.0 + IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_0052: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0057: stloc.0 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 GenIter01/squaresOfOneToTen@5::pc .line 6,6 : 18,23 '' - IL_0065: ldarg.0 - IL_0066: ldloc.0 - IL_0067: ldloc.0 - IL_0068: mul - IL_0069: stfld int32 GenIter01/squaresOfOneToTen@5::current - IL_006e: ldc.i4.1 - IL_006f: ret + IL_005f: ldarg.0 + IL_0060: ldloc.0 + IL_0061: ldloc.0 + IL_0062: mul + IL_0063: stfld int32 GenIter01/squaresOfOneToTen@5::current + IL_0068: ldc.i4.1 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_0070: nop - IL_0071: br.s IL_0045 + IL_006a: nop + IL_006b: br.s IL_003f - IL_0073: ldarg.0 - IL_0074: ldc.i4.3 - IL_0075: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_006d: ldarg.0 + IL_006e: ldc.i4.3 + IL_006f: stfld int32 GenIter01/squaresOfOneToTen@5::pc .line 5,6 : 7,23 '' - IL_007a: ldarg.0 - IL_007b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_0080: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0085: nop - IL_0086: ldarg.0 - IL_0087: ldnull - IL_0088: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_008d: ldarg.0 - IL_008e: ldc.i4.3 - IL_008f: stfld int32 GenIter01/squaresOfOneToTen@5::pc - IL_0094: ldarg.0 + IL_0074: ldarg.0 + IL_0075: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_007a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007f: nop + IL_0080: ldarg.0 + IL_0081: ldnull + IL_0082: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_0087: ldarg.0 + IL_0088: ldc.i4.3 + IL_0089: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_008e: ldarg.0 + IL_008f: ldc.i4.0 + IL_0090: stfld int32 GenIter01/squaresOfOneToTen@5::current IL_0095: ldc.i4.0 - IL_0096: stfld int32 GenIter01/squaresOfOneToTen@5::current - IL_009b: ldc.i4.0 - IL_009c: ret + IL_0096: ret } // end of method squaresOfOneToTen@5::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -201,158 +195,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 GenIter01/squaresOfOneToTen@5::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 GenIter01/squaresOfOneToTen@5::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter01/squaresOfOneToTen@5::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 GenIter01/squaresOfOneToTen@5::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 GenIter01/squaresOfOneToTen@5::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 GenIter01/squaresOfOneToTen@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 GenIter01/squaresOfOneToTen@5::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 5,6 : 7,23 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method squaresOfOneToTen@5::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter01/squaresOfOneToTen@5::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method squaresOfOneToTen@5::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter02.il.bsl index aa203793fe4..43ec6cef6b0 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly GenIter02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.GenIter02 { - // Offset: 0x00000000 Length: 0x00000200 + // Offset: 0x00000000 Length: 0x000001F4 } .mresource public FSharpOptimizationData.GenIter02 { - // Offset: 0x00000208 Length: 0x0000007B + // Offset: 0x000001F8 Length: 0x0000007B } .module GenIter02.exe -// MVID: {5B9A6329-F857-DC98-A745-038329639A5B} +// MVID: {60B68B7E-F857-DC98-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02900000 +// Image base: 0x06720000 // =============== CLASS MEMBERS DECLARATION =================== @@ -91,110 +91,104 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 176 (0xb0) + // Code size 170 (0xaa) .maxstack 8 .locals init ([0] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter02.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter02.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter02/squaresOfOneToTenB@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0086 + IL_001b: nop + IL_001c: br.s IL_0080 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0083 + IL_001e: nop + IL_001f: br.s IL_007d .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00a7 + IL_0021: nop + IL_0022: br IL_00a1 .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 5,7 : 7,23 '' - IL_002e: ldarg.0 - IL_002f: ldc.i4.0 - IL_0030: ldc.i4.1 - IL_0031: ldc.i4.2 - IL_0032: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0028: ldarg.0 + IL_0029: ldc.i4.0 + IL_002a: ldc.i4.1 + IL_002b: ldc.i4.2 + IL_002c: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_0037: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_003c: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_0041: ldarg.0 - IL_0042: ldc.i4.1 - IL_0043: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_003b: ldarg.0 + IL_003c: ldc.i4.1 + IL_003d: stfld int32 GenIter02/squaresOfOneToTenB@5::pc .line 5,7 : 7,23 '' - IL_0048: ldarg.0 - IL_0049: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_004e: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0053: brfalse.s IL_0086 - - IL_0055: ldarg.0 - IL_0056: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_005b: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0060: stloc.0 + IL_0042: ldarg.0 + IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_004d: brfalse.s IL_0080 + + IL_004f: ldarg.0 + IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005a: stloc.0 .line 6,6 : 12,27 '' - IL_0061: ldstr "hello" - IL_0066: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_006b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0070: pop - IL_0071: ldarg.0 - IL_0072: ldc.i4.2 - IL_0073: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_005b: ldstr "hello" + IL_0060: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0065: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_006a: pop + IL_006b: ldarg.0 + IL_006c: ldc.i4.2 + IL_006d: stfld int32 GenIter02/squaresOfOneToTenB@5::pc .line 7,7 : 12,23 '' - IL_0078: ldarg.0 - IL_0079: ldloc.0 - IL_007a: ldloc.0 - IL_007b: mul - IL_007c: stfld int32 GenIter02/squaresOfOneToTenB@5::current - IL_0081: ldc.i4.1 - IL_0082: ret + IL_0072: ldarg.0 + IL_0073: ldloc.0 + IL_0074: ldloc.0 + IL_0075: mul + IL_0076: stfld int32 GenIter02/squaresOfOneToTenB@5::current + IL_007b: ldc.i4.1 + IL_007c: ret .line 100001,100001 : 0,0 '' - IL_0083: nop - IL_0084: br.s IL_0048 + IL_007d: nop + IL_007e: br.s IL_0042 - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_0080: ldarg.0 + IL_0081: ldc.i4.3 + IL_0082: stfld int32 GenIter02/squaresOfOneToTenB@5::pc .line 5,7 : 7,23 '' - IL_008d: ldarg.0 - IL_008e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_0093: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0098: nop - IL_0099: ldarg.0 - IL_009a: ldnull - IL_009b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_00a0: ldarg.0 - IL_00a1: ldc.i4.3 - IL_00a2: stfld int32 GenIter02/squaresOfOneToTenB@5::pc - IL_00a7: ldarg.0 + IL_0087: ldarg.0 + IL_0088: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_008d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0092: nop + IL_0093: ldarg.0 + IL_0094: ldnull + IL_0095: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_009a: ldarg.0 + IL_009b: ldc.i4.3 + IL_009c: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_00a1: ldarg.0 + IL_00a2: ldc.i4.0 + IL_00a3: stfld int32 GenIter02/squaresOfOneToTenB@5::current IL_00a8: ldc.i4.0 - IL_00a9: stfld int32 GenIter02/squaresOfOneToTenB@5::current - IL_00ae: ldc.i4.0 - IL_00af: ret + IL_00a9: ret } // end of method squaresOfOneToTenB@5::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -206,158 +200,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 GenIter02/squaresOfOneToTenB@5::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 GenIter02/squaresOfOneToTenB@5::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter02/squaresOfOneToTenB@5::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 GenIter02/squaresOfOneToTenB@5::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 GenIter02/squaresOfOneToTenB@5::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 GenIter02/squaresOfOneToTenB@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 GenIter02/squaresOfOneToTenB@5::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 5,7 : 7,23 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method squaresOfOneToTenB@5::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter02/squaresOfOneToTenB@5::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method squaresOfOneToTenB@5::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter03.il.bsl index 88bd760bc85..fbc110183f3 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly GenIter03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.GenIter03 { - // Offset: 0x00000000 Length: 0x00000200 + // Offset: 0x00000000 Length: 0x000001F4 } .mresource public FSharpOptimizationData.GenIter03 { - // Offset: 0x00000208 Length: 0x0000007B + // Offset: 0x000001F8 Length: 0x0000007B } .module GenIter03.exe -// MVID: {5B9A6329-F77C-DC98-A745-038329639A5B} +// MVID: {60B68B7E-F77C-DC98-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x026B0000 +// Image base: 0x07390000 // =============== CLASS MEMBERS DECLARATION =================== @@ -91,105 +91,99 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 158 (0x9e) + // Code size 152 (0x98) .maxstack 8 .locals init ([0] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter03.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter03.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter03/squaresOfOneToTenC@4::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0074 + IL_001b: nop + IL_001c: br.s IL_006e .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0071 + IL_001e: nop + IL_001f: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0095 + IL_0021: nop + IL_0022: br.s IL_008f .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 4,4 : 30,55 '' - IL_002b: ldarg.0 - IL_002c: ldc.i4.0 - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0025: ldarg.0 + IL_0026: ldc.i4.0 + IL_0027: ldc.i4.1 + IL_0028: ldc.i4.s 10 + IL_002a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_003f: ldarg.0 - IL_0040: ldc.i4.1 - IL_0041: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_002f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0034: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_0039: ldarg.0 + IL_003a: ldc.i4.1 + IL_003b: stfld int32 GenIter03/squaresOfOneToTenC@4::pc .line 4,4 : 30,55 '' - IL_0046: ldarg.0 - IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0051: brfalse.s IL_0074 - - IL_0053: ldarg.0 - IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005e: stloc.0 - IL_005f: ldarg.0 - IL_0060: ldc.i4.2 - IL_0061: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_0040: ldarg.0 + IL_0041: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_0046: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_004b: brfalse.s IL_006e + + IL_004d: ldarg.0 + IL_004e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_0053: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0058: stloc.0 + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld int32 GenIter03/squaresOfOneToTenC@4::pc .line 4,4 : 50,55 '' - IL_0066: ldarg.0 - IL_0067: ldloc.0 - IL_0068: ldloc.0 - IL_0069: mul - IL_006a: stfld int32 GenIter03/squaresOfOneToTenC@4::current - IL_006f: ldc.i4.1 - IL_0070: ret + IL_0060: ldarg.0 + IL_0061: ldloc.0 + IL_0062: ldloc.0 + IL_0063: mul + IL_0064: stfld int32 GenIter03/squaresOfOneToTenC@4::current + IL_0069: ldc.i4.1 + IL_006a: ret .line 100001,100001 : 0,0 '' - IL_0071: nop - IL_0072: br.s IL_0046 + IL_006b: nop + IL_006c: br.s IL_0040 - IL_0074: ldarg.0 - IL_0075: ldc.i4.3 - IL_0076: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_006e: ldarg.0 + IL_006f: ldc.i4.3 + IL_0070: stfld int32 GenIter03/squaresOfOneToTenC@4::pc .line 4,4 : 30,55 '' - IL_007b: ldarg.0 - IL_007c: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_0081: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0086: nop - IL_0087: ldarg.0 - IL_0088: ldnull - IL_0089: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_008e: ldarg.0 - IL_008f: ldc.i4.3 - IL_0090: stfld int32 GenIter03/squaresOfOneToTenC@4::pc - IL_0095: ldarg.0 + IL_0075: ldarg.0 + IL_0076: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_007b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0080: nop + IL_0081: ldarg.0 + IL_0082: ldnull + IL_0083: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_0088: ldarg.0 + IL_0089: ldc.i4.3 + IL_008a: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_008f: ldarg.0 + IL_0090: ldc.i4.0 + IL_0091: stfld int32 GenIter03/squaresOfOneToTenC@4::current IL_0096: ldc.i4.0 - IL_0097: stfld int32 GenIter03/squaresOfOneToTenC@4::current - IL_009c: ldc.i4.0 - IL_009d: ret + IL_0097: ret } // end of method squaresOfOneToTenC@4::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -201,158 +195,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 GenIter03/squaresOfOneToTenC@4::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 GenIter03/squaresOfOneToTenC@4::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter03/squaresOfOneToTenC@4::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 GenIter03/squaresOfOneToTenC@4::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 GenIter03/squaresOfOneToTenC@4::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 GenIter03/squaresOfOneToTenC@4::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 GenIter03/squaresOfOneToTenC@4::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 4,4 : 30,55 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method squaresOfOneToTenC@4::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter03/squaresOfOneToTenC@4::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method squaresOfOneToTenC@4::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter04.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter04.il.bsl index 25a08dfd652..1b9aa7eea86 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter04.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/GeneratedIterators/GenIter04.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly GenIter04 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.GenIter04 { - // Offset: 0x00000000 Length: 0x000001F0 + // Offset: 0x00000000 Length: 0x000001E4 } .mresource public FSharpOptimizationData.GenIter04 { - // Offset: 0x000001F8 Length: 0x0000007B + // Offset: 0x000001E8 Length: 0x0000007B } .module GenIter04.exe -// MVID: {5B9A6329-F79D-DC98-A745-038329639A5B} +// MVID: {60B68B7E-F79D-DC98-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00790000 +// Image base: 0x06CC0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -91,105 +91,99 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 158 (0x9e) + // Code size 152 (0x98) .maxstack 8 .locals init ([0] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter04.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\GeneratedIterators\\GenIter04.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter04/squaresOfOneToTenD@4::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0074 + IL_001b: nop + IL_001c: br.s IL_006e .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0071 + IL_001e: nop + IL_001f: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0095 + IL_0021: nop + IL_0022: br.s IL_008f .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 4,4 : 28,53 '' - IL_002b: ldarg.0 - IL_002c: ldc.i4.0 - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0025: ldarg.0 + IL_0026: ldc.i4.0 + IL_0027: ldc.i4.1 + IL_0028: ldc.i4.s 10 + IL_002a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_003f: ldarg.0 - IL_0040: ldc.i4.1 - IL_0041: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_002f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0034: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_0039: ldarg.0 + IL_003a: ldc.i4.1 + IL_003b: stfld int32 GenIter04/squaresOfOneToTenD@4::pc .line 4,4 : 28,53 '' - IL_0046: ldarg.0 - IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0051: brfalse.s IL_0074 - - IL_0053: ldarg.0 - IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005e: stloc.0 - IL_005f: ldarg.0 - IL_0060: ldc.i4.2 - IL_0061: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_0040: ldarg.0 + IL_0041: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_0046: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_004b: brfalse.s IL_006e + + IL_004d: ldarg.0 + IL_004e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_0053: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0058: stloc.0 + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld int32 GenIter04/squaresOfOneToTenD@4::pc .line 4,4 : 48,53 '' - IL_0066: ldarg.0 - IL_0067: ldloc.0 - IL_0068: ldloc.0 - IL_0069: mul - IL_006a: stfld int32 GenIter04/squaresOfOneToTenD@4::current - IL_006f: ldc.i4.1 - IL_0070: ret + IL_0060: ldarg.0 + IL_0061: ldloc.0 + IL_0062: ldloc.0 + IL_0063: mul + IL_0064: stfld int32 GenIter04/squaresOfOneToTenD@4::current + IL_0069: ldc.i4.1 + IL_006a: ret .line 100001,100001 : 0,0 '' - IL_0071: nop - IL_0072: br.s IL_0046 + IL_006b: nop + IL_006c: br.s IL_0040 - IL_0074: ldarg.0 - IL_0075: ldc.i4.3 - IL_0076: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_006e: ldarg.0 + IL_006f: ldc.i4.3 + IL_0070: stfld int32 GenIter04/squaresOfOneToTenD@4::pc .line 4,4 : 28,53 '' - IL_007b: ldarg.0 - IL_007c: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_0081: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0086: nop - IL_0087: ldarg.0 - IL_0088: ldnull - IL_0089: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_008e: ldarg.0 - IL_008f: ldc.i4.3 - IL_0090: stfld int32 GenIter04/squaresOfOneToTenD@4::pc - IL_0095: ldarg.0 + IL_0075: ldarg.0 + IL_0076: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_007b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0080: nop + IL_0081: ldarg.0 + IL_0082: ldnull + IL_0083: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_0088: ldarg.0 + IL_0089: ldc.i4.3 + IL_008a: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_008f: ldarg.0 + IL_0090: ldc.i4.0 + IL_0091: stfld int32 GenIter04/squaresOfOneToTenD@4::current IL_0096: ldc.i4.0 - IL_0097: stfld int32 GenIter04/squaresOfOneToTenD@4::current - IL_009c: ldc.i4.0 - IL_009d: ret + IL_0097: ret } // end of method squaresOfOneToTenD@4::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -201,158 +195,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 GenIter04/squaresOfOneToTenD@4::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 GenIter04/squaresOfOneToTenD@4::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 GenIter04/squaresOfOneToTenD@4::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 GenIter04/squaresOfOneToTenD@4::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 GenIter04/squaresOfOneToTenD@4::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 GenIter04/squaresOfOneToTenD@4::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 GenIter04/squaresOfOneToTenD@4::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 4,4 : 28,53 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method squaresOfOneToTenD@4::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 GenIter04/squaresOfOneToTenD@4::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method squaresOfOneToTenD@4::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison01.il.bsl index 37c0b51c0e3..bc1449351fd 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly InequalityComparison01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.InequalityComparison01 { - // Offset: 0x00000000 Length: 0x0000020E + // Offset: 0x00000000 Length: 0x0000020A } .mresource public FSharpOptimizationData.InequalityComparison01 { - // Offset: 0x00000218 Length: 0x00000085 + // Offset: 0x00000210 Length: 0x00000085 } .module InequalityComparison01.exe -// MVID: {59B19213-263A-E6D5-A745-03831392B159} +// MVID: {60B68B7E-263A-E6D5-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002E0000 +// Image base: 0x074E0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ // Code size 8 (0x8) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 27,33 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison01.fs' + .line 3,3 : 27,33 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison01.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: cgt diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison02.il.bsl index 6ce221af23c..ca23c28d8a2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly InequalityComparison02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.InequalityComparison02 { - // Offset: 0x00000000 Length: 0x0000020E + // Offset: 0x00000000 Length: 0x0000020A } .mresource public FSharpOptimizationData.InequalityComparison02 { - // Offset: 0x00000218 Length: 0x00000085 + // Offset: 0x00000210 Length: 0x00000085 } .module InequalityComparison02.exe -// MVID: {59B19213-263A-E72C-A745-03831392B159} +// MVID: {60B68B7E-263A-E72C-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02D40000 +// Image base: 0x07180000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ // Code size 8 (0x8) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 27,33 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison02.fs' + .line 3,3 : 27,33 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison02.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: clt diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison03.il.bsl index 96a9c5591cc..4fd361bb957 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly InequalityComparison03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.InequalityComparison03 { - // Offset: 0x00000000 Length: 0x0000020E + // Offset: 0x00000000 Length: 0x0000020A } .mresource public FSharpOptimizationData.InequalityComparison03 { - // Offset: 0x00000218 Length: 0x00000085 + // Offset: 0x00000210 Length: 0x00000085 } .module InequalityComparison03.exe -// MVID: {59B19213-263A-E70B-A745-03831392B159} +// MVID: {60B68B7E-263A-E70B-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x008E0000 +// Image base: 0x06510000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ // Code size 5 (0x5) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 27,32 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison03.fs' + .line 3,3 : 27,32 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison03.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: clt diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison04.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison04.il.bsl index 5209536406c..988eae50727 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison04.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison04.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly InequalityComparison04 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.InequalityComparison04 { - // Offset: 0x00000000 Length: 0x0000020E + // Offset: 0x00000000 Length: 0x0000020A } .mresource public FSharpOptimizationData.InequalityComparison04 { - // Offset: 0x00000218 Length: 0x00000085 + // Offset: 0x00000210 Length: 0x00000085 } .module InequalityComparison04.exe -// MVID: {59B19213-263A-E772-A745-03831392B159} +// MVID: {60B68B7E-263A-E772-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00F20000 +// Image base: 0x07590000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ // Code size 5 (0x5) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 27,32 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison04.fs' + .line 3,3 : 27,32 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison04.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: cgt diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison05.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison05.il.bsl index 173552b2fa4..d0f9c71afb5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison05.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/InequalityComparison/InequalityComparison05.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly InequalityComparison05 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.InequalityComparison05 { - // Offset: 0x00000000 Length: 0x00000236 + // Offset: 0x00000000 Length: 0x00000232 } .mresource public FSharpOptimizationData.InequalityComparison05 { - // Offset: 0x00000240 Length: 0x00000085 + // Offset: 0x00000238 Length: 0x00000085 } .module InequalityComparison05.exe -// MVID: {59B19213-263A-E751-A745-03831392B159} +// MVID: {60B68B7E-263A-E751-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x001D0000 +// Image base: 0x07350000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,25 +58,21 @@ { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 04 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 ) - // Code size 12 (0xc) + // Code size 8 (0x8) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 40,55 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison05.fs' + .line 3,3 : 40,55 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\InequalityComparison\\InequalityComparison05.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ble.s IL_0006 - IL_0004: br.s IL_0008 - - IL_0006: br.s IL_000a - .line 3,3 : 56,57 '' - IL_0008: ldarg.2 - IL_0009: ret + IL_0004: ldarg.2 + IL_0005: ret .line 3,3 : 63,64 '' - IL_000a: ldarg.3 - IL_000b: ret + IL_0006: ldarg.3 + IL_0007: ret } // end of method InequalityComparison05::f5 } // end of class InequalityComparison05 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest1.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest1.il.bsl index 831514e5f3c..477be4bfe8d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest1.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest1.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest1 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest1 { - // Offset: 0x00000000 Length: 0x0000026D + // Offset: 0x00000000 Length: 0x00000269 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest1 { - // Offset: 0x00000278 Length: 0x000000AF + // Offset: 0x00000270 Length: 0x000000AF } .module ListExpressionSteppingTest1.exe -// MVID: {59B1920C-50CF-F6CE-A745-03830C92B159} +// MVID: {60B68B7E-50CF-F6CE-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x030B0000 +// Image base: 0x05230000 // =============== CLASS MEMBERS DECLARATION =================== @@ -87,51 +87,47 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 66 (0x42) - .maxstack 6 + // Code size 62 (0x3e) + .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest1.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest1.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0017, - IL_0019) - IL_0015: br.s IL_0021 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_001e + IL_001a) + IL_0015: br.s IL_001d .line 100001,100001 : 0,0 '' - IL_001b: nop - IL_001c: br.s IL_0032 + IL_0017: nop + IL_0018: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_001e: nop - IL_001f: br.s IL_0039 + IL_001a: nop + IL_001b: br.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: ldarg.0 - IL_0023: ldc.i4.1 - IL_0024: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc + IL_001d: nop + IL_001e: ldarg.0 + IL_001f: ldc.i4.1 + IL_0020: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc .line 6,6 : 11,18 '' - IL_0029: ldarg.0 - IL_002a: ldc.i4.1 - IL_002b: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::current - IL_0030: ldc.i4.1 - IL_0031: ret - - IL_0032: ldarg.0 - IL_0033: ldc.i4.2 - IL_0034: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc - IL_0039: ldarg.0 - IL_003a: ldc.i4.0 - IL_003b: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::current - IL_0040: ldc.i4.0 - IL_0041: ret + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::current + IL_002c: ldc.i4.1 + IL_002d: ret + + IL_002e: ldarg.0 + IL_002f: ldc.i4.2 + IL_0030: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: stfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::current + IL_003c: ldc.i4.0 + IL_003d: ret } // end of method f0@6::GenerateNext .method public strict virtual instance void @@ -148,42 +144,36 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 45 (0x2d) + // Code size 39 (0x27) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest1/ListExpressionSteppingTest1/f0@6::pc IL_0006: switch ( IL_0019, - IL_001b, - IL_001d) - IL_0017: br.s IL_0028 - - IL_0019: br.s IL_001f - - IL_001b: br.s IL_0022 - - IL_001d: br.s IL_0025 + IL_001c, + IL_001f) + IL_0017: br.s IL_0022 .line 100001,100001 : 0,0 '' - IL_001f: nop - IL_0020: br.s IL_002b + IL_0019: nop + IL_001a: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0022: nop - IL_0023: br.s IL_0029 + IL_001c: nop + IL_001d: br.s IL_0023 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_002b + IL_001f: nop + IL_0020: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: ldc.i4.0 - IL_002a: ret + IL_0022: nop + IL_0023: ldc.i4.0 + IL_0024: ret - IL_002b: ldc.i4.0 - IL_002c: ret + IL_0025: ldc.i4.0 + IL_0026: ret } // end of method f0@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest2.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest2.il.bsl index 2b86c1c4ba1..b574eb3e9a2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest2.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest2.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest2 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest2 { - // Offset: 0x00000000 Length: 0x0000026D + // Offset: 0x00000000 Length: 0x00000269 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest2 { - // Offset: 0x00000278 Length: 0x000000AF + // Offset: 0x00000270 Length: 0x000000AF } .module ListExpressionSteppingTest2.exe -// MVID: {59B1920C-D3DE-B780-A745-03830C92B159} +// MVID: {60B68B7E-D3DE-B780-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00690000 +// Image base: 0x051A0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -87,78 +87,72 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 123 (0x7b) + // Code size 117 (0x75) .maxstack 6 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest2.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest2.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_004b + IL_001b: nop + IL_001c: br.s IL_0045 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006b + IL_001e: nop + IL_001f: br.s IL_0065 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0072 + IL_0021: nop + IL_0022: br.s IL_006c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 6,6 : 11,26 '' - IL_002b: ldstr "hello" - IL_0030: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0035: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_003a: pop - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc + IL_0025: ldstr "hello" + IL_002a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_002f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0034: pop + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc .line 7,7 : 11,18 '' - IL_0042: ldarg.0 + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current IL_0043: ldc.i4.1 - IL_0044: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current - IL_0049: ldc.i4.1 - IL_004a: ret + IL_0044: ret .line 8,8 : 11,28 '' - IL_004b: ldstr "goodbye" - IL_0050: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0055: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_005a: pop - IL_005b: ldarg.0 - IL_005c: ldc.i4.2 - IL_005d: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc + IL_0045: ldstr "goodbye" + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_004f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0054: pop + IL_0055: ldarg.0 + IL_0056: ldc.i4.2 + IL_0057: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc .line 9,9 : 11,18 '' - IL_0062: ldarg.0 - IL_0063: ldc.i4.2 - IL_0064: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current - IL_0069: ldc.i4.1 - IL_006a: ret - - IL_006b: ldarg.0 - IL_006c: ldc.i4.3 - IL_006d: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc - IL_0072: ldarg.0 + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current + IL_0063: ldc.i4.1 + IL_0064: ret + + IL_0065: ldarg.0 + IL_0066: ldc.i4.3 + IL_0067: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc + IL_006c: ldarg.0 + IL_006d: ldc.i4.0 + IL_006e: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current IL_0073: ldc.i4.0 - IL_0074: stfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::current - IL_0079: ldc.i4.0 - IL_007a: ret + IL_0074: ret } // end of method f1@6::GenerateNext .method public strict virtual instance void @@ -175,52 +169,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest2/ListExpressionSteppingTest2/f1@6::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method f1@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest3.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest3.il.bsl index 864056dbe8c..1c09dd7c7e4 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest3.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest3.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest3 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest3 { - // Offset: 0x00000000 Length: 0x0000027D + // Offset: 0x00000000 Length: 0x00000279 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest3 { - // Offset: 0x00000288 Length: 0x000000AF + // Offset: 0x00000280 Length: 0x000000AF } .module ListExpressionSteppingTest3.exe -// MVID: {59B1920C-AE45-39B4-A745-03830C92B159} +// MVID: {60B68B7E-AE45-39B4-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00FF0000 +// Image base: 0x064B0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -92,73 +92,69 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 116 (0x74) + // Code size 112 (0x70) .maxstack 6 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest3.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest3.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0017, - IL_0019) - IL_0015: br.s IL_0021 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_001e + IL_001a) + IL_0015: br.s IL_001d .line 100001,100001 : 0,0 '' - IL_001b: nop - IL_001c: br.s IL_0061 + IL_0017: nop + IL_0018: br.s IL_005d .line 100001,100001 : 0,0 '' - IL_001e: nop - IL_001f: br.s IL_006b + IL_001a: nop + IL_001b: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0021: nop + IL_001d: nop .line 7,7 : 17,23 '' - IL_0022: ldarg.0 - IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x - IL_0028: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_002d: ldc.i4.4 - IL_002e: bge.s IL_0064 + IL_001e: ldarg.0 + IL_001f: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x + IL_0024: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0029: ldc.i4.4 + IL_002a: bge.s IL_0060 .line 8,8 : 14,20 '' - IL_0030: ldarg.0 - IL_0031: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x - IL_0036: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_003b: nop + IL_002c: ldarg.0 + IL_002d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x + IL_0032: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0037: nop .line 9,9 : 14,29 '' - IL_003c: ldstr "hello" - IL_0041: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0046: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_004b: pop - IL_004c: ldarg.0 - IL_004d: ldc.i4.1 - IL_004e: stfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc + IL_0038: ldstr "hello" + IL_003d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0042: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0047: pop + IL_0048: ldarg.0 + IL_0049: ldc.i4.1 + IL_004a: stfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc .line 10,10 : 14,21 '' - IL_0053: ldarg.0 - IL_0054: ldarg.0 - IL_0055: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x - IL_005a: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::current - IL_005f: ldc.i4.1 - IL_0060: ret + IL_004f: ldarg.0 + IL_0050: ldarg.0 + IL_0051: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::x + IL_0056: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::current + IL_005b: ldc.i4.1 + IL_005c: ret .line 100001,100001 : 0,0 '' - IL_0061: nop - IL_0062: br.s IL_0022 - - IL_0064: ldarg.0 - IL_0065: ldc.i4.2 - IL_0066: stfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc - IL_006b: ldarg.0 - IL_006c: ldnull - IL_006d: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::current - IL_0072: ldc.i4.0 - IL_0073: ret + IL_005d: nop + IL_005e: br.s IL_001e + + IL_0060: ldarg.0 + IL_0061: ldc.i4.2 + IL_0062: stfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc + IL_0067: ldarg.0 + IL_0068: ldnull + IL_0069: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::current + IL_006e: ldc.i4.0 + IL_006f: ret } // end of method f2@7::GenerateNext .method public strict virtual instance void @@ -175,42 +171,36 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 45 (0x2d) + // Code size 39 (0x27) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest3/ListExpressionSteppingTest3/f2@7::pc IL_0006: switch ( IL_0019, - IL_001b, - IL_001d) - IL_0017: br.s IL_0028 - - IL_0019: br.s IL_001f - - IL_001b: br.s IL_0022 - - IL_001d: br.s IL_0025 + IL_001c, + IL_001f) + IL_0017: br.s IL_0022 .line 100001,100001 : 0,0 '' - IL_001f: nop - IL_0020: br.s IL_002b + IL_0019: nop + IL_001a: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0022: nop - IL_0023: br.s IL_0029 + IL_001c: nop + IL_001d: br.s IL_0023 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_002b + IL_001f: nop + IL_0020: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: ldc.i4.0 - IL_002a: ret + IL_0022: nop + IL_0023: ldc.i4.0 + IL_0024: ret - IL_002b: ldc.i4.0 - IL_002c: ret + IL_0025: ldc.i4.0 + IL_0026: ret } // end of method f2@7::get_CheckClose .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest4.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest4.il.bsl index 2d0ccb9e33d..53123f16d7b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest4.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest4.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest4 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest4 { - // Offset: 0x00000000 Length: 0x00000275 + // Offset: 0x00000000 Length: 0x00000269 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest4 { - // Offset: 0x00000280 Length: 0x000000AF + // Offset: 0x00000270 Length: 0x000000AF } .module ListExpressionSteppingTest4.exe -// MVID: {5B9A68C1-3154-FA67-A745-0383C1689A5B} +// MVID: {60B68B7E-3154-FA67-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x018D0000 +// Image base: 0x066A0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -97,107 +97,101 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 190 (0xbe) + // Code size 184 (0xb8) .maxstack 6 .locals init ([0] int32 z) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest4.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest4.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0078 + IL_001b: nop + IL_001c: br.s IL_0072 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_00a0 + IL_001e: nop + IL_001f: br.s IL_009a .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00b5 + IL_0021: nop + IL_0022: br IL_00af .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 6,6 : 11,24 '' - IL_002e: ldarg.0 - IL_002f: ldc.i4.0 - IL_0030: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0035: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x + IL_0028: ldarg.0 + IL_0029: ldc.i4.0 + IL_002a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_002f: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x .line 7,7 : 11,17 '' - IL_003a: ldarg.0 - IL_003b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x - IL_0040: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0045: nop + IL_0034: ldarg.0 + IL_0035: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x + IL_003a: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_003f: nop .line 8,8 : 11,24 '' - IL_0046: ldarg.0 - IL_0047: ldc.i4.0 - IL_0048: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_004d: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y + IL_0040: ldarg.0 + IL_0041: ldc.i4.0 + IL_0042: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_0047: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y .line 9,9 : 11,17 '' - IL_0052: ldarg.0 - IL_0053: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y - IL_0058: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: ldc.i4.1 - IL_0060: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc + IL_004c: ldarg.0 + IL_004d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y + IL_0052: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0057: nop + IL_0058: ldarg.0 + IL_0059: ldc.i4.1 + IL_005a: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc .line 10,10 : 11,19 '' - IL_0065: ldarg.0 - IL_0066: ldarg.0 - IL_0067: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x - IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0071: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current - IL_0076: ldc.i4.1 - IL_0077: ret + IL_005f: ldarg.0 + IL_0060: ldarg.0 + IL_0061: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x + IL_0066: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_006b: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current + IL_0070: ldc.i4.1 + IL_0071: ret .line 11,11 : 11,26 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x - IL_007e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0083: ldarg.0 - IL_0084: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y - IL_0089: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_008e: add - IL_008f: stloc.0 - IL_0090: ldarg.0 - IL_0091: ldc.i4.2 - IL_0092: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc + IL_0072: ldarg.0 + IL_0073: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x + IL_0078: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_007d: ldarg.0 + IL_007e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y + IL_0083: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0088: add + IL_0089: stloc.0 + IL_008a: ldarg.0 + IL_008b: ldc.i4.2 + IL_008c: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc .line 12,12 : 11,18 '' - IL_0097: ldarg.0 - IL_0098: ldloc.0 - IL_0099: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current - IL_009e: ldc.i4.1 - IL_009f: ret + IL_0091: ldarg.0 + IL_0092: ldloc.0 + IL_0093: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current + IL_0098: ldc.i4.1 + IL_0099: ret .line 8,8 : 15,16 '' - IL_00a0: ldarg.0 - IL_00a1: ldnull - IL_00a2: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y - IL_00a7: ldarg.0 - IL_00a8: ldnull - IL_00a9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x - IL_00ae: ldarg.0 - IL_00af: ldc.i4.3 - IL_00b0: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc - IL_00b5: ldarg.0 + IL_009a: ldarg.0 + IL_009b: ldnull + IL_009c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::y + IL_00a1: ldarg.0 + IL_00a2: ldnull + IL_00a3: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::x + IL_00a8: ldarg.0 + IL_00a9: ldc.i4.3 + IL_00aa: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc + IL_00af: ldarg.0 + IL_00b0: ldc.i4.0 + IL_00b1: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current IL_00b6: ldc.i4.0 - IL_00b7: stfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::current - IL_00bc: ldc.i4.0 - IL_00bd: ret + IL_00b7: ret } // end of method f3@6::GenerateNext .method public strict virtual instance void @@ -214,52 +208,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest4/ListExpressionSteppingTest4/f3@6::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method f3@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest5.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest5.il.bsl index 39def210b7f..e52febd80af 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest5.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest5.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest5 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest5 { - // Offset: 0x00000000 Length: 0x00000275 + // Offset: 0x00000000 Length: 0x00000269 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest5 { - // Offset: 0x00000280 Length: 0x000000AF + // Offset: 0x00000270 Length: 0x000000AF } .module ListExpressionSteppingTest5.exe -// MVID: {5B9A6329-CBE3-BFEA-A745-038329639A5B} +// MVID: {60B68B7E-CBE3-BFEA-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x027C0000 +// Image base: 0x06910000 // =============== CLASS MEMBERS DECLARATION =================== @@ -97,130 +97,122 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 232 (0xe8) + // Code size 224 (0xe0) .maxstack 6 .locals init ([0] int32 z) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest5.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest5.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001f, - IL_0021, - IL_0023, - IL_0025) - IL_001d: br.s IL_0039 - - IL_001f: br.s IL_0027 - - IL_0021: br.s IL_002d - - IL_0023: br.s IL_0030 - - IL_0025: br.s IL_0033 + IL_0025, + IL_0028, + IL_002b) + IL_001d: br.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00ae + IL_001f: nop + IL_0020: br IL_00a6 .line 100001,100001 : 0,0 '' - IL_002d: nop - IL_002e: br.s IL_007f + IL_0025: nop + IL_0026: br.s IL_0077 .line 100001,100001 : 0,0 '' - IL_0030: nop - IL_0031: br.s IL_00a7 + IL_0028: nop + IL_0029: br.s IL_009f .line 100001,100001 : 0,0 '' - IL_0033: nop - IL_0034: br IL_00df + IL_002b: nop + IL_002c: br IL_00d7 .line 100001,100001 : 0,0 '' - IL_0039: nop + IL_0031: nop .line 6,6 : 11,24 '' - IL_003a: ldarg.0 - IL_003b: ldc.i4.0 - IL_003c: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0041: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_0046: ldarg.0 - IL_0047: ldc.i4.1 - IL_0048: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_0032: ldarg.0 + IL_0033: ldc.i4.0 + IL_0034: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_0039: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_003e: ldarg.0 + IL_003f: ldc.i4.1 + IL_0040: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc .line 8,8 : 15,28 '' - IL_004d: ldarg.0 - IL_004e: ldc.i4.0 - IL_004f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0054: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y + IL_0045: ldarg.0 + IL_0046: ldc.i4.0 + IL_0047: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_004c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y .line 9,9 : 15,21 '' - IL_0059: ldarg.0 - IL_005a: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y - IL_005f: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0064: nop - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_0051: ldarg.0 + IL_0052: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y + IL_0057: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_005c: nop + IL_005d: ldarg.0 + IL_005e: ldc.i4.2 + IL_005f: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc .line 10,10 : 15,23 '' - IL_006c: ldarg.0 - IL_006d: ldarg.0 - IL_006e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_0073: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0078: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current - IL_007d: ldc.i4.1 - IL_007e: ret + IL_0064: ldarg.0 + IL_0065: ldarg.0 + IL_0066: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_006b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0070: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current + IL_0075: ldc.i4.1 + IL_0076: ret .line 11,11 : 15,30 '' - IL_007f: ldarg.0 - IL_0080: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_0085: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_008a: ldarg.0 - IL_008b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y - IL_0090: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0095: add - IL_0096: stloc.0 - IL_0097: ldarg.0 - IL_0098: ldc.i4.3 - IL_0099: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_0077: ldarg.0 + IL_0078: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_007d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0082: ldarg.0 + IL_0083: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y + IL_0088: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_008d: add + IL_008e: stloc.0 + IL_008f: ldarg.0 + IL_0090: ldc.i4.3 + IL_0091: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc .line 12,12 : 15,22 '' - IL_009e: ldarg.0 - IL_009f: ldloc.0 - IL_00a0: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current - IL_00a5: ldc.i4.1 - IL_00a6: ret - - IL_00a7: ldarg.0 - IL_00a8: ldnull - IL_00a9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y - IL_00ae: ldarg.0 - IL_00af: ldc.i4.4 - IL_00b0: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_0096: ldarg.0 + IL_0097: ldloc.0 + IL_0098: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current + IL_009d: ldc.i4.1 + IL_009e: ret + + IL_009f: ldarg.0 + IL_00a0: ldnull + IL_00a1: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::y + IL_00a6: ldarg.0 + IL_00a7: ldc.i4.4 + IL_00a8: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc .line 14,14 : 14,20 '' - IL_00b5: ldarg.0 - IL_00b6: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_00bb: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_00c0: nop + IL_00ad: ldarg.0 + IL_00ae: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_00b3: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_00b8: nop .line 15,15 : 14,28 '' - IL_00c1: ldstr "done" - IL_00c6: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00cb: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00d0: pop - IL_00d1: ldarg.0 - IL_00d2: ldnull - IL_00d3: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_00d8: ldarg.0 - IL_00d9: ldc.i4.4 - IL_00da: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc - IL_00df: ldarg.0 - IL_00e0: ldc.i4.0 - IL_00e1: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current - IL_00e6: ldc.i4.0 - IL_00e7: ret + IL_00b9: ldstr "done" + IL_00be: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00c3: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00c8: pop + IL_00c9: ldarg.0 + IL_00ca: ldnull + IL_00cb: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_00d0: ldarg.0 + IL_00d1: ldc.i4.4 + IL_00d2: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_00d7: ldarg.0 + IL_00d8: ldc.i4.0 + IL_00d9: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current + IL_00de: ldc.i4.0 + IL_00df: ret } // end of method f4@6::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 176 (0xb0) + // Code size 162 (0xa2) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -236,7 +228,7 @@ .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_00a3 + IL_0014: br IL_0099 .line 100001,100001 : 0,0 '' IL_0019: nop @@ -246,171 +238,147 @@ IL_001b: ldfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc IL_0020: switch ( IL_003b, - IL_003d, - IL_003f, + IL_003e, IL_0041, - IL_0043) - IL_0039: br.s IL_0054 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 - - IL_003f: br.s IL_004b - - IL_0041: br.s IL_004e - - IL_0043: br.s IL_0051 + IL_0044, + IL_0047) + IL_0039: br.s IL_004a .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_007d + IL_003b: nop + IL_003c: br.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0059 + IL_003e: nop + IL_003f: br.s IL_004f .line 100001,100001 : 0,0 '' - IL_004b: nop - IL_004c: br.s IL_0058 + IL_0041: nop + IL_0042: br.s IL_004e .line 100001,100001 : 0,0 '' - IL_004e: nop - IL_004f: br.s IL_0055 + IL_0044: nop + IL_0045: br.s IL_004b .line 100001,100001 : 0,0 '' - IL_0051: nop - IL_0052: br.s IL_007d + IL_0047: nop + IL_0048: br.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0054: nop + IL_004a: nop .line 100001,100001 : 0,0 '' - IL_0055: nop - IL_0056: br.s IL_0059 + IL_004b: nop + IL_004c: br.s IL_004f .line 100001,100001 : 0,0 '' - IL_0058: nop - IL_0059: ldarg.0 - IL_005a: ldc.i4.4 - IL_005b: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.4 + IL_0051: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc .line 14,14 : 14,20 '' - IL_0060: ldarg.0 - IL_0061: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x - IL_0066: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_006b: nop + IL_0056: ldarg.0 + IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::x + IL_005c: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0061: nop .line 15,15 : 14,28 '' - IL_006c: ldstr "done" - IL_0071: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0076: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_007b: pop + IL_0062: ldstr "done" + IL_0067: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0071: pop .line 100001,100001 : 0,0 '' - IL_007c: nop - IL_007d: ldarg.0 - IL_007e: ldc.i4.4 - IL_007f: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc - IL_0084: ldarg.0 - IL_0085: ldc.i4.0 - IL_0086: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current - IL_008b: ldnull - IL_008c: stloc.1 - IL_008d: leave.s IL_009b + IL_0072: nop + IL_0073: ldarg.0 + IL_0074: ldc.i4.4 + IL_0075: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc + IL_007a: ldarg.0 + IL_007b: ldc.i4.0 + IL_007c: stfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::current + IL_0081: ldnull + IL_0082: stloc.1 + IL_0083: leave.s IL_0091 } // end .try catch [mscorlib]System.Object { - IL_008f: castclass [mscorlib]System.Exception - IL_0094: stloc.2 + IL_0085: castclass [mscorlib]System.Exception + IL_008a: stloc.2 .line 6,6 : 15,16 '' - IL_0095: ldloc.2 - IL_0096: stloc.0 - IL_0097: ldnull - IL_0098: stloc.1 - IL_0099: leave.s IL_009b + IL_008b: ldloc.2 + IL_008c: stloc.0 + IL_008d: ldnull + IL_008e: stloc.1 + IL_008f: leave.s IL_0091 .line 100001,100001 : 0,0 '' } // end handler - IL_009b: ldloc.1 - IL_009c: pop + IL_0091: ldloc.1 + IL_0092: pop .line 100001,100001 : 0,0 '' - IL_009d: nop - IL_009e: br IL_0000 - - IL_00a3: ldloc.0 - IL_00a4: ldnull - IL_00a5: cgt.un - IL_00a7: brfalse.s IL_00ab + IL_0093: nop + IL_0094: br IL_0000 - IL_00a9: br.s IL_00ad - - IL_00ab: br.s IL_00af + IL_0099: ldloc.0 + IL_009a: ldnull + IL_009b: cgt.un + IL_009d: brfalse.s IL_00a1 .line 100001,100001 : 0,0 '' - IL_00ad: ldloc.0 - IL_00ae: throw + IL_009f: ldloc.0 + IL_00a0: throw .line 100001,100001 : 0,0 '' - IL_00af: ret + IL_00a1: ret } // end of method f4@6::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 67 (0x43) - .maxstack 5 + // Code size 57 (0x39) + .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest5/ListExpressionSteppingTest5/f4@6::pc IL_0006: switch ( IL_0021, - IL_0023, - IL_0025, + IL_0024, IL_0027, - IL_0029) - IL_001f: br.s IL_003a - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e - - IL_0025: br.s IL_0031 - - IL_0027: br.s IL_0034 - - IL_0029: br.s IL_0037 + IL_002a, + IL_002d) + IL_001f: br.s IL_0030 .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0041 + IL_0021: nop + IL_0022: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_003f + IL_0024: nop + IL_0025: br.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: br.s IL_003d + IL_0027: nop + IL_0028: br.s IL_0033 .line 100001,100001 : 0,0 '' - IL_0034: nop - IL_0035: br.s IL_003b + IL_002a: nop + IL_002b: br.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_0041 + IL_002d: nop + IL_002e: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_003a: nop - IL_003b: ldc.i4.1 - IL_003c: ret + IL_0030: nop + IL_0031: ldc.i4.1 + IL_0032: ret - IL_003d: ldc.i4.1 - IL_003e: ret + IL_0033: ldc.i4.1 + IL_0034: ret - IL_003f: ldc.i4.1 - IL_0040: ret + IL_0035: ldc.i4.1 + IL_0036: ret - IL_0041: ldc.i4.0 - IL_0042: ret + IL_0037: ldc.i4.0 + IL_0038: ret } // end of method f4@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest6.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest6.il.bsl index 2d43c04e954..73ebc22d707 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest6.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/ListExpressionStepping/ListExpressionSteppingTest6.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly ListExpressionSteppingTest6 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ListExpressionSteppingTest6 { - // Offset: 0x00000000 Length: 0x0000029D + // Offset: 0x00000000 Length: 0x00000291 } .mresource public FSharpOptimizationData.ListExpressionSteppingTest6 { - // Offset: 0x000002A8 Length: 0x000000BC + // Offset: 0x00000298 Length: 0x000000BC } .module ListExpressionSteppingTest6.exe -// MVID: {5B9A6329-98A2-AB14-A745-038329639A5B} +// MVID: {60B68B7E-98A2-AB14-A745-03837E8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x007B0000 +// Image base: 0x07460000 // =============== CLASS MEMBERS DECLARATION =================== @@ -103,166 +103,156 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 304 (0x130) + // Code size 294 (0x126) .maxstack 6 .locals init ([0] int32 x, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest6.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\ListExpressionStepping\\ListExpressionSteppingTest6.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0023, - IL_0025, - IL_0027, + IL_0026, IL_0029, - IL_002b) - IL_0021: br.s IL_0045 - - IL_0023: br.s IL_002d - - IL_0025: br.s IL_0030 - - IL_0027: br.s IL_0033 - - IL_0029: br.s IL_0039 - - IL_002b: br.s IL_003f + IL_002f, + IL_0035) + IL_0021: br.s IL_003b .line 100001,100001 : 0,0 '' - IL_002d: nop - IL_002e: br.s IL_0099 + IL_0023: nop + IL_0024: br.s IL_008f .line 100001,100001 : 0,0 '' - IL_0030: nop - IL_0031: br.s IL_0096 + IL_0026: nop + IL_0027: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_0033: nop - IL_0034: br IL_0106 + IL_0029: nop + IL_002a: br IL_00fc .line 100001,100001 : 0,0 '' - IL_0039: nop - IL_003a: br IL_0103 + IL_002f: nop + IL_0030: br IL_00f9 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br IL_0127 + IL_0035: nop + IL_0036: br IL_011d .line 100001,100001 : 0,0 '' - IL_0045: nop + IL_003b: nop .line 7,9 : 11,21 '' - IL_0046: ldarg.0 - IL_0047: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6::get_es() - IL_004c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0051: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' - IL_0056: ldarg.0 - IL_0057: ldc.i4.1 - IL_0058: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_003c: ldarg.0 + IL_003d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6::get_es() + IL_0042: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0047: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_004c: ldarg.0 + IL_004d: ldc.i4.1 + IL_004e: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 7,9 : 11,21 '' - IL_005d: ldarg.0 - IL_005e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' - IL_0063: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0068: brfalse.s IL_0099 - - IL_006a: ldarg.0 - IL_006b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' - IL_0070: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0075: stloc.0 + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_0059: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_005e: brfalse.s IL_008f + + IL_0060: ldarg.0 + IL_0061: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_0066: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_006b: stloc.0 .line 8,8 : 14,29 '' - IL_0076: ldstr "hello" - IL_007b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0080: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0085: pop - IL_0086: ldarg.0 - IL_0087: ldc.i4.2 - IL_0088: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_006c: ldstr "hello" + IL_0071: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0076: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_007b: pop + IL_007c: ldarg.0 + IL_007d: ldc.i4.2 + IL_007e: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 9,9 : 14,21 '' - IL_008d: ldarg.0 - IL_008e: ldloc.0 - IL_008f: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current - IL_0094: ldc.i4.1 - IL_0095: ret + IL_0083: ldarg.0 + IL_0084: ldloc.0 + IL_0085: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current + IL_008a: ldc.i4.1 + IL_008b: ret .line 100001,100001 : 0,0 '' - IL_0096: nop - IL_0097: br.s IL_005d + IL_008c: nop + IL_008d: br.s IL_0053 - IL_0099: ldarg.0 - IL_009a: ldc.i4.5 - IL_009b: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_008f: ldarg.0 + IL_0090: ldc.i4.5 + IL_0091: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 7,9 : 11,21 '' - IL_00a0: ldarg.0 - IL_00a1: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' - IL_00a6: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00ab: nop - IL_00ac: ldarg.0 - IL_00ad: ldnull - IL_00ae: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_0096: ldarg.0 + IL_0097: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_009c: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_00a1: nop + IL_00a2: ldarg.0 + IL_00a3: ldnull + IL_00a4: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' .line 10,12 : 11,21 '' - IL_00b3: ldarg.0 - IL_00b4: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6::get_es() - IL_00b9: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_00be: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_00c3: ldarg.0 - IL_00c4: ldc.i4.3 - IL_00c5: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_00a9: ldarg.0 + IL_00aa: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6::get_es() + IL_00af: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_00b4: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_00b9: ldarg.0 + IL_00ba: ldc.i4.3 + IL_00bb: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 10,12 : 11,21 '' - IL_00ca: ldarg.0 - IL_00cb: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_00d0: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_00d5: brfalse.s IL_0106 - - IL_00d7: ldarg.0 - IL_00d8: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_00dd: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_00e2: stloc.1 + IL_00c0: ldarg.0 + IL_00c1: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_00c6: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00cb: brfalse.s IL_00fc + + IL_00cd: ldarg.0 + IL_00ce: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_00d3: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_00d8: stloc.1 .line 11,11 : 14,31 '' - IL_00e3: ldstr "goodbye" - IL_00e8: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00ed: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00f2: pop - IL_00f3: ldarg.0 - IL_00f4: ldc.i4.4 - IL_00f5: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_00d9: ldstr "goodbye" + IL_00de: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00e3: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e8: pop + IL_00e9: ldarg.0 + IL_00ea: ldc.i4.4 + IL_00eb: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 12,12 : 14,21 '' - IL_00fa: ldarg.0 - IL_00fb: ldloc.1 - IL_00fc: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current - IL_0101: ldc.i4.1 - IL_0102: ret + IL_00f0: ldarg.0 + IL_00f1: ldloc.1 + IL_00f2: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current + IL_00f7: ldc.i4.1 + IL_00f8: ret .line 100001,100001 : 0,0 '' - IL_0103: nop - IL_0104: br.s IL_00ca + IL_00f9: nop + IL_00fa: br.s IL_00c0 - IL_0106: ldarg.0 - IL_0107: ldc.i4.5 - IL_0108: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_00fc: ldarg.0 + IL_00fd: ldc.i4.5 + IL_00fe: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc .line 10,12 : 11,21 '' - IL_010d: ldarg.0 - IL_010e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_0113: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0118: nop - IL_0119: ldarg.0 - IL_011a: ldnull - IL_011b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_0120: ldarg.0 - IL_0121: ldc.i4.5 - IL_0122: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc - IL_0127: ldarg.0 - IL_0128: ldc.i4.0 - IL_0129: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current - IL_012e: ldc.i4.0 - IL_012f: ret + IL_0103: ldarg.0 + IL_0104: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_0109: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_010e: nop + IL_010f: ldarg.0 + IL_0110: ldnull + IL_0111: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_0116: ldarg.0 + IL_0117: ldc.i4.5 + IL_0118: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_011d: ldarg.0 + IL_011e: ldc.i4.0 + IL_011f: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current + IL_0124: ldc.i4.0 + IL_0125: ret } // end of method f7@7::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 189 (0xbd) + // Code size 173 (0xad) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -278,7 +268,7 @@ .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_00b0 + IL_0014: br IL_00a4 .line 100001,100001 : 0,0 '' IL_0019: nop @@ -288,191 +278,163 @@ IL_001b: ldfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc IL_0020: switch ( IL_003f, - IL_0041, - IL_0043, + IL_0042, IL_0045, - IL_0047, - IL_0049) - IL_003d: br.s IL_005d - - IL_003f: br.s IL_004b - - IL_0041: br.s IL_004e - - IL_0043: br.s IL_0051 - - IL_0045: br.s IL_0054 - - IL_0047: br.s IL_0057 - - IL_0049: br.s IL_005a + IL_0048, + IL_004b, + IL_004e) + IL_003d: br.s IL_0051 .line 100001,100001 : 0,0 '' - IL_004b: nop - IL_004c: br.s IL_008a + IL_003f: nop + IL_0040: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_004e: nop - IL_004f: br.s IL_0076 + IL_0042: nop + IL_0043: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0051: nop - IL_0052: br.s IL_0075 + IL_0045: nop + IL_0046: br.s IL_0069 .line 100001,100001 : 0,0 '' - IL_0054: nop - IL_0055: br.s IL_005f + IL_0048: nop + IL_0049: br.s IL_0053 .line 100001,100001 : 0,0 '' - IL_0057: nop - IL_0058: br.s IL_005e + IL_004b: nop + IL_004c: br.s IL_0052 .line 100001,100001 : 0,0 '' - IL_005a: nop - IL_005b: br.s IL_008a + IL_004e: nop + IL_004f: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_005d: nop + IL_0051: nop .line 100001,100001 : 0,0 '' - IL_005e: nop - IL_005f: ldarg.0 - IL_0060: ldc.i4.5 - IL_0061: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc - IL_0066: ldarg.0 - IL_0067: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 - IL_006c: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0071: nop + IL_0052: nop + IL_0053: ldarg.0 + IL_0054: ldc.i4.5 + IL_0055: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_005a: ldarg.0 + IL_005b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::enum0 + IL_0060: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0065: nop .line 100001,100001 : 0,0 '' - IL_0072: nop - IL_0073: br.s IL_008a + IL_0066: nop + IL_0067: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_0075: nop - IL_0076: ldarg.0 - IL_0077: ldc.i4.5 - IL_0078: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc - IL_007d: ldarg.0 - IL_007e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' - IL_0083: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0088: nop + IL_0069: nop + IL_006a: ldarg.0 + IL_006b: ldc.i4.5 + IL_006c: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop .line 100001,100001 : 0,0 '' - IL_0089: nop - IL_008a: ldarg.0 - IL_008b: ldc.i4.5 - IL_008c: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc - IL_0091: ldarg.0 - IL_0092: ldc.i4.0 - IL_0093: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current - IL_0098: ldnull - IL_0099: stloc.1 - IL_009a: leave.s IL_00a8 + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldc.i4.5 + IL_0080: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc + IL_0085: ldarg.0 + IL_0086: ldc.i4.0 + IL_0087: stfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::current + IL_008c: ldnull + IL_008d: stloc.1 + IL_008e: leave.s IL_009c } // end .try catch [mscorlib]System.Object { - IL_009c: castclass [mscorlib]System.Exception - IL_00a1: stloc.2 + IL_0090: castclass [mscorlib]System.Exception + IL_0095: stloc.2 .line 7,9 : 11,21 '' - IL_00a2: ldloc.2 - IL_00a3: stloc.0 - IL_00a4: ldnull - IL_00a5: stloc.1 - IL_00a6: leave.s IL_00a8 + IL_0096: ldloc.2 + IL_0097: stloc.0 + IL_0098: ldnull + IL_0099: stloc.1 + IL_009a: leave.s IL_009c .line 100001,100001 : 0,0 '' } // end handler - IL_00a8: ldloc.1 - IL_00a9: pop + IL_009c: ldloc.1 + IL_009d: pop .line 100001,100001 : 0,0 '' - IL_00aa: nop - IL_00ab: br IL_0000 - - IL_00b0: ldloc.0 - IL_00b1: ldnull - IL_00b2: cgt.un - IL_00b4: brfalse.s IL_00b8 - - IL_00b6: br.s IL_00ba + IL_009e: nop + IL_009f: br IL_0000 - IL_00b8: br.s IL_00bc + IL_00a4: ldloc.0 + IL_00a5: ldnull + IL_00a6: cgt.un + IL_00a8: brfalse.s IL_00ac .line 100001,100001 : 0,0 '' - IL_00ba: ldloc.0 - IL_00bb: throw + IL_00aa: ldloc.0 + IL_00ab: throw .line 100001,100001 : 0,0 '' - IL_00bc: ret + IL_00ac: ret } // end of method f7@7::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 78 (0x4e) + // Code size 66 (0x42) .maxstack 5 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 ListExpressionSteppingTest6/ListExpressionSteppingTest6/f7@7::pc IL_0006: switch ( IL_0025, - IL_0027, - IL_0029, + IL_0028, IL_002b, - IL_002d, - IL_002f) - IL_0023: br.s IL_0043 - - IL_0025: br.s IL_0031 - - IL_0027: br.s IL_0034 - - IL_0029: br.s IL_0037 - - IL_002b: br.s IL_003a - - IL_002d: br.s IL_003d - - IL_002f: br.s IL_0040 + IL_002e, + IL_0031, + IL_0034) + IL_0023: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: br.s IL_004c + IL_0025: nop + IL_0026: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0034: nop - IL_0035: br.s IL_004a + IL_0028: nop + IL_0029: br.s IL_003e .line 100001,100001 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_0048 + IL_002b: nop + IL_002c: br.s IL_003c .line 100001,100001 : 0,0 '' - IL_003a: nop - IL_003b: br.s IL_0046 + IL_002e: nop + IL_002f: br.s IL_003a .line 100001,100001 : 0,0 '' - IL_003d: nop - IL_003e: br.s IL_0044 + IL_0031: nop + IL_0032: br.s IL_0038 .line 100001,100001 : 0,0 '' - IL_0040: nop - IL_0041: br.s IL_004c + IL_0034: nop + IL_0035: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0043: nop - IL_0044: ldc.i4.1 - IL_0045: ret + IL_0037: nop + IL_0038: ldc.i4.1 + IL_0039: ret - IL_0046: ldc.i4.1 - IL_0047: ret + IL_003a: ldc.i4.1 + IL_003b: ret - IL_0048: ldc.i4.1 - IL_0049: ret + IL_003c: ldc.i4.1 + IL_003d: ret - IL_004a: ldc.i4.1 - IL_004b: ret + IL_003e: ldc.i4.1 + IL_003f: ret - IL_004c: ldc.i4.0 - IL_004d: ret + IL_0040: ldc.i4.0 + IL_0041: ret } // end of method f7@7::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AbstractClass.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AbstractClass.il.bsl index 0bae910d0f1..4c8bea58a08 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AbstractClass.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AbstractClass.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly AbstractClass { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.AbstractClass { - // Offset: 0x00000000 Length: 0x00000306 + // Offset: 0x00000000 Length: 0x00000302 } .mresource public FSharpOptimizationData.AbstractClass { - // Offset: 0x00000310 Length: 0x000000B1 + // Offset: 0x00000308 Length: 0x000000B1 } .module AbstractClass.exe -// MVID: {59B19213-333C-8BAF-A745-03831392B159} +// MVID: {60B68B7F-333C-8BAF-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x010A0000 +// Image base: 0x07500000 // =============== CLASS MEMBERS DECLARATION =================== @@ -62,7 +62,7 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\AbstractClass.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\AbstractClass.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AnonRecd.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AnonRecd.il.bsl index af9a419018c..23db70c3a45 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AnonRecd.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/AnonRecd.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.7.3081.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:6:0:0 + .ver 5:0:0:0 } .assembly AnonRecd { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.AnonRecd { - // Offset: 0x00000000 Length: 0x000001CE + // Offset: 0x00000000 Length: 0x000001C2 } .mresource public FSharpOptimizationData.AnonRecd { - // Offset: 0x000001D8 Length: 0x0000006B + // Offset: 0x000001C8 Length: 0x0000006B } .module AnonRecd.exe -// MVID: {5CBDEF61-C42F-5208-A745-038361EFBD5C} +// MVID: {60B68B7F-C42F-5208-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00D20000 +// Image base: 0x05160000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ .locals init ([0] int32 x, [1] class '<>f__AnonymousType1912756633`2' a) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 5,22 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\AnonRecd.fs' + .line 4,4 : 5,22 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\AnonRecd.fs' IL_0000: ldc.i4.1 IL_0001: stloc.0 .line 6,6 : 5,31 '' @@ -161,97 +161,77 @@ instance int32 CompareTo(class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 104 (0x68) + // Code size 84 (0x54) .maxstack 5 .locals init ([0] int32 V_0) - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\unknown' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\unknown' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_005a + IL_0004: brfalse.s IL_004a .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0058 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0048 .line 100001,100001 : 0,0 '' - IL_0014: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0019: ldarg.0 - IL_001a: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_001f: ldarg.1 - IL_0020: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0025: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: ldarg.0 + IL_0012: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0017: ldarg.1 + IL_0018: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_001d: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, !!0, !!0) - IL_002a: stloc.0 - IL_002b: ldloc.0 - IL_002c: ldc.i4.0 - IL_002d: bge.s IL_0031 - - IL_002f: br.s IL_0033 - - IL_0031: br.s IL_0035 + IL_0022: stloc.0 + IL_0023: ldloc.0 + IL_0024: ldc.i4.0 + IL_0025: bge.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0033: ldloc.0 - IL_0034: ret + IL_0027: ldloc.0 + IL_0028: ret .line 100001,100001 : 0,0 '' - IL_0035: ldloc.0 - IL_0036: ldc.i4.0 - IL_0037: ble.s IL_003b - - IL_0039: br.s IL_003d - - IL_003b: br.s IL_003f + IL_0029: ldloc.0 + IL_002a: ldc.i4.0 + IL_002b: ble.s IL_002f .line 100001,100001 : 0,0 '' - IL_003d: ldloc.0 - IL_003e: ret + IL_002d: ldloc.0 + IL_002e: ret .line 100001,100001 : 0,0 '' - IL_003f: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0044: ldarg.0 - IL_0045: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_004a: ldarg.1 - IL_004b: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0050: tail. - IL_0052: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, + IL_002f: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0034: ldarg.0 + IL_0035: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_003a: ldarg.1 + IL_003b: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0040: tail. + IL_0042: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, !!0, !!0) - IL_0057: ret + IL_0047: ret .line 100001,100001 : 0,0 '' - IL_0058: ldc.i4.1 - IL_0059: ret + IL_0048: ldc.i4.1 + IL_0049: ret .line 100001,100001 : 0,0 '' - IL_005a: ldarg.1 - IL_005b: ldnull - IL_005c: cgt.un - IL_005e: brfalse.s IL_0062 - - IL_0060: br.s IL_0064 - - IL_0062: br.s IL_0066 + IL_004a: ldarg.1 + IL_004b: ldnull + IL_004c: cgt.un + IL_004e: brfalse.s IL_0052 .line 100001,100001 : 0,0 '' - IL_0064: ldc.i4.m1 - IL_0065: ret + IL_0050: ldc.i4.m1 + IL_0051: ret .line 100001,100001 : 0,0 '' - IL_0066: ldc.i4.0 - IL_0067: ret + IL_0052: ldc.i4.0 + IL_0053: ret } // end of method '<>f__AnonymousType1912756633`2'::CompareTo .method public hidebysig virtual final @@ -274,7 +254,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 115 (0x73) + // Code size 95 (0x5f) .maxstack 5 .locals init ([0] class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> V_0, [1] class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> V_1, @@ -288,152 +268,128 @@ IL_0009: ldarg.0 IL_000a: ldnull IL_000b: cgt.un - IL_000d: brfalse.s IL_0011 - - IL_000f: br.s IL_0013 - - IL_0011: br.s IL_0060 + IL_000d: brfalse.s IL_0050 .line 100001,100001 : 0,0 '' - IL_0013: ldarg.1 - IL_0014: unbox.any class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> - IL_0019: ldnull - IL_001a: cgt.un - IL_001c: brfalse.s IL_0020 - - IL_001e: br.s IL_0022 - - IL_0020: br.s IL_005e + IL_000f: ldarg.1 + IL_0010: unbox.any class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> + IL_0015: ldnull + IL_0016: cgt.un + IL_0018: brfalse.s IL_004e .line 100001,100001 : 0,0 '' - IL_0022: ldarg.2 - IL_0023: ldarg.0 - IL_0024: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0029: ldloc.1 - IL_002a: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_002f: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, + IL_001a: ldarg.2 + IL_001b: ldarg.0 + IL_001c: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0021: ldloc.1 + IL_0022: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0027: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, !!0, !!0) - IL_0034: stloc.2 - IL_0035: ldloc.2 - IL_0036: ldc.i4.0 - IL_0037: bge.s IL_003b - - IL_0039: br.s IL_003d - - IL_003b: br.s IL_003f + IL_002c: stloc.2 + IL_002d: ldloc.2 + IL_002e: ldc.i4.0 + IL_002f: bge.s IL_0033 .line 100001,100001 : 0,0 '' - IL_003d: ldloc.2 - IL_003e: ret + IL_0031: ldloc.2 + IL_0032: ret .line 100001,100001 : 0,0 '' - IL_003f: ldloc.2 - IL_0040: ldc.i4.0 - IL_0041: ble.s IL_0045 - - IL_0043: br.s IL_0047 - - IL_0045: br.s IL_0049 + IL_0033: ldloc.2 + IL_0034: ldc.i4.0 + IL_0035: ble.s IL_0039 .line 100001,100001 : 0,0 '' - IL_0047: ldloc.2 - IL_0048: ret + IL_0037: ldloc.2 + IL_0038: ret .line 100001,100001 : 0,0 '' - IL_0049: ldarg.2 - IL_004a: ldarg.0 - IL_004b: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0050: ldloc.1 - IL_0051: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0056: tail. - IL_0058: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, + IL_0039: ldarg.2 + IL_003a: ldarg.0 + IL_003b: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0040: ldloc.1 + IL_0041: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0046: tail. + IL_0048: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericComparisonWithComparerj__TPar'>(class [mscorlib]System.Collections.IComparer, !!0, !!0) - IL_005d: ret + IL_004d: ret .line 100001,100001 : 0,0 '' - IL_005e: ldc.i4.1 - IL_005f: ret + IL_004e: ldc.i4.1 + IL_004f: ret .line 100001,100001 : 0,0 '' - IL_0060: ldarg.1 - IL_0061: unbox.any class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> - IL_0066: ldnull - IL_0067: cgt.un - IL_0069: brfalse.s IL_006d - - IL_006b: br.s IL_006f - - IL_006d: br.s IL_0071 + IL_0050: ldarg.1 + IL_0051: unbox.any class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> + IL_0056: ldnull + IL_0057: cgt.un + IL_0059: brfalse.s IL_005d .line 100001,100001 : 0,0 '' - IL_006f: ldc.i4.m1 - IL_0070: ret + IL_005b: ldc.i4.m1 + IL_005c: ret .line 100001,100001 : 0,0 '' - IL_0071: ldc.i4.0 - IL_0072: ret + IL_005d: ldc.i4.0 + IL_005e: ret } // end of method '<>f__AnonymousType1912756633`2'::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 70 (0x46) + // Code size 66 (0x42) .maxstack 7 .locals init ([0] int32 V_0) .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0044 + IL_0004: brfalse.s IL_0040 .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldc.i4 0x9e3779b9 - IL_0011: ldarg.1 - IL_0012: ldarg.0 - IL_0013: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0018: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericHashWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldc.i4 0x9e3779b9 + IL_000d: ldarg.1 + IL_000e: ldarg.0 + IL_000f: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0014: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericHashWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, !!0) - IL_001d: ldloc.0 - IL_001e: ldc.i4.6 - IL_001f: shl - IL_0020: ldloc.0 - IL_0021: ldc.i4.2 - IL_0022: shr - IL_0023: add - IL_0024: add - IL_0025: add - IL_0026: stloc.0 - IL_0027: ldc.i4 0x9e3779b9 - IL_002c: ldarg.1 - IL_002d: ldarg.0 - IL_002e: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0033: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericHashWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, + IL_0019: ldloc.0 + IL_001a: ldc.i4.6 + IL_001b: shl + IL_001c: ldloc.0 + IL_001d: ldc.i4.2 + IL_001e: shr + IL_001f: add + IL_0020: add + IL_0021: add + IL_0022: stloc.0 + IL_0023: ldc.i4 0x9e3779b9 + IL_0028: ldarg.1 + IL_0029: ldarg.0 + IL_002a: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_002f: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericHashWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, !!0) - IL_0038: ldloc.0 - IL_0039: ldc.i4.6 - IL_003a: shl - IL_003b: ldloc.0 - IL_003c: ldc.i4.2 - IL_003d: shr - IL_003e: add - IL_003f: add - IL_0040: add - IL_0041: stloc.0 - IL_0042: ldloc.0 - IL_0043: ret - - .line 100001,100001 : 0,0 '' - IL_0044: ldc.i4.0 - IL_0045: ret + IL_0034: ldloc.0 + IL_0035: ldc.i4.6 + IL_0036: shl + IL_0037: ldloc.0 + IL_0038: ldc.i4.2 + IL_0039: shr + IL_003a: add + IL_003b: add + IL_003c: add + IL_003d: stloc.0 + IL_003e: ldloc.0 + IL_003f: ret + + .line 100001,100001 : 0,0 '' + IL_0040: ldc.i4.0 + IL_0041: ret } // end of method '<>f__AnonymousType1912756633`2'::GetHashCode .method public hidebysig virtual final @@ -455,7 +411,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 83 (0x53) + // Code size 71 (0x47) .maxstack 5 .locals init ([0] class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> V_0, [1] class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> V_1) @@ -463,140 +419,116 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_004b + IL_0004: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_0049 + IL_0006: ldarg.1 + IL_0007: isinst class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_003d .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.2 - IL_001b: ldarg.0 - IL_001c: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0021: ldloc.1 - IL_0022: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0027: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.2 + IL_0013: ldarg.0 + IL_0014: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0019: ldloc.1 + IL_001a: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_001f: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, !!0, !!0) - IL_002c: brfalse.s IL_0030 - - IL_002e: br.s IL_0032 - - IL_0030: br.s IL_0047 + IL_0024: brfalse.s IL_003b .line 100001,100001 : 0,0 '' - IL_0032: ldarg.2 - IL_0033: ldarg.0 - IL_0034: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0039: ldloc.1 - IL_003a: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_003f: tail. - IL_0041: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, + IL_0026: ldarg.2 + IL_0027: ldarg.0 + IL_0028: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_002d: ldloc.1 + IL_002e: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0033: tail. + IL_0035: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityWithComparerj__TPar'>(class [mscorlib]System.Collections.IEqualityComparer, !!0, !!0) - IL_0046: ret + IL_003a: ret .line 100001,100001 : 0,0 '' - IL_0047: ldc.i4.0 - IL_0048: ret + IL_003b: ldc.i4.0 + IL_003c: ret .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.0 - IL_004a: ret + IL_003d: ldc.i4.0 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004b: ldarg.1 - IL_004c: ldnull - IL_004d: cgt.un - IL_004f: ldc.i4.0 - IL_0050: ceq - IL_0052: ret + IL_003f: ldarg.1 + IL_0040: ldnull + IL_0041: cgt.un + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: ret } // end of method '<>f__AnonymousType1912756633`2'::Equals .method public hidebysig virtual final instance bool Equals(class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 75 (0x4b) - .maxstack 4 + // Code size 63 (0x3f) + .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0043 + IL_0004: brfalse.s IL_0037 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0041 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_001a: ldarg.1 - IL_001b: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ - IL_0020: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityERj__TPar'>(!!0, + IL_000c: ldarg.0 + IL_000d: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0012: ldarg.1 + IL_0013: ldfld !0 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::A@ + IL_0018: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityERj__TPar'>(!!0, !!0) - IL_0025: brfalse.s IL_0029 - - IL_0027: br.s IL_002b - - IL_0029: br.s IL_003f + IL_001d: brfalse.s IL_0033 .line 100001,100001 : 0,0 '' - IL_002b: ldarg.0 - IL_002c: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0031: ldarg.1 - IL_0032: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ - IL_0037: tail. - IL_0039: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityERj__TPar'>(!!0, + IL_001f: ldarg.0 + IL_0020: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_0025: ldarg.1 + IL_0026: ldfld !1 class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::B@ + IL_002b: tail. + IL_002d: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::GenericEqualityERj__TPar'>(!!0, !!0) - IL_003e: ret + IL_0032: ret .line 100001,100001 : 0,0 '' - IL_003f: ldc.i4.0 - IL_0040: ret + IL_0033: ldc.i4.0 + IL_0034: ret .line 100001,100001 : 0,0 '' - IL_0041: ldc.i4.0 - IL_0042: ret + IL_0035: ldc.i4.0 + IL_0036: ret .line 100001,100001 : 0,0 '' - IL_0043: ldarg.1 - IL_0044: ldnull - IL_0045: cgt.un - IL_0047: ldc.i4.0 - IL_0048: ceq - IL_004a: ret + IL_0037: ldarg.1 + IL_0038: ldnull + IL_0039: cgt.un + IL_003b: ldc.i4.0 + IL_003c: ceq + IL_003e: ret } // end of method '<>f__AnonymousType1912756633`2'::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 26 (0x1a) + // Code size 22 (0x16) .maxstack 4 .locals init ([0] class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> V_0) .line 1,1 : 1,1 '' @@ -604,22 +536,18 @@ IL_0001: isinst class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'> IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0018 + IL_0008: brfalse.s IL_0014 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: tail. - IL_0012: callvirt instance bool class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::Equals(class '<>f__AnonymousType1912756633`2') - IL_0017: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: tail. + IL_000e: callvirt instance bool class '<>f__AnonymousType1912756633`2'j__TPar',!'j__TPar'>::Equals(class '<>f__AnonymousType1912756633`2') + IL_0013: ret .line 100001,100001 : 0,0 '' - IL_0018: ldc.i4.0 - IL_0019: ret + IL_0014: ldc.i4.0 + IL_0015: ret } // end of method '<>f__AnonymousType1912756633`2'::Equals .property instance !'j__TPar' A() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ArgumentNamesInClosures01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ArgumentNamesInClosures01.il.bsl index 20e4f6be78f..e6142d728e9 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ArgumentNamesInClosures01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ArgumentNamesInClosures01.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x000003A0 Length: 0x0000010D } .module ArgumentNamesInClosures01.dll -// MVID: {5FCFFD09-39CA-41B5-A745-038309FDCF5F} +// MVID: {60B68B7F-39CA-41B5-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05A70000 +// Image base: 0x00EF0000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CodeGenRenamings01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CodeGenRenamings01.il.bsl index 6fab8d600ef..3e24f7d2506 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CodeGenRenamings01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CodeGenRenamings01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CodeGenRenamings01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CodeGenRenamings01 { - // Offset: 0x00000000 Length: 0x000003CC + // Offset: 0x00000000 Length: 0x000003C8 } .mresource public FSharpOptimizationData.CodeGenRenamings01 { // Offset: 0x000003D0 Length: 0x0000011B } .module CodeGenRenamings01.exe -// MVID: {59B19213-8173-986B-A745-03831392B159} +// MVID: {60B68B7F-8173-986B-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x010A0000 +// Image base: 0x05350000 // =============== CLASS MEMBERS DECLARATION =================== @@ -83,74 +83,68 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 103 (0x67) + // Code size 97 (0x61) .maxstack 7 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\CodeGenRenamings01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\CodeGenRenamings01.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 CodeGenRenamings01/seq1@9::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0041 + IL_001b: nop + IL_001c: br.s IL_003b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0057 + IL_001e: nop + IL_001f: br.s IL_0051 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_005e + IL_0021: nop + IL_0022: br.s IL_0058 .line 100001,100001 : 0,0 '' - IL_002a: nop - IL_002b: ldarg.0 - IL_002c: ldc.i4.1 - IL_002d: stfld int32 CodeGenRenamings01/seq1@9::pc + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 CodeGenRenamings01/seq1@9::pc .line 9,9 : 18,30 '' - IL_0032: ldarg.0 - IL_0033: ldc.i4.1 - IL_0034: ldc.i4.1 - IL_0035: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: ldc.i4.1 + IL_002f: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, !1) - IL_003a: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current - IL_003f: ldc.i4.1 - IL_0040: ret + IL_0034: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current + IL_0039: ldc.i4.1 + IL_003a: ret - IL_0041: ldarg.0 - IL_0042: ldc.i4.2 - IL_0043: stfld int32 CodeGenRenamings01/seq1@9::pc + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: stfld int32 CodeGenRenamings01/seq1@9::pc .line 9,9 : 32,44 '' - IL_0048: ldarg.0 - IL_0049: ldc.i4.2 - IL_004a: ldc.i4.2 - IL_004b: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: ldc.i4.2 + IL_0045: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, !1) - IL_0050: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current - IL_0055: ldc.i4.1 - IL_0056: ret - - IL_0057: ldarg.0 - IL_0058: ldc.i4.3 - IL_0059: stfld int32 CodeGenRenamings01/seq1@9::pc - IL_005e: ldarg.0 - IL_005f: ldnull - IL_0060: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current - IL_0065: ldc.i4.0 - IL_0066: ret + IL_004a: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current + IL_004f: ldc.i4.1 + IL_0050: ret + + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 CodeGenRenamings01/seq1@9::pc + IL_0058: ldarg.0 + IL_0059: ldnull + IL_005a: stfld class [mscorlib]System.Tuple`2 CodeGenRenamings01/seq1@9::current + IL_005f: ldc.i4.0 + IL_0060: ret } // end of method seq1@9::GenerateNext .method public strict virtual instance void @@ -167,52 +161,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 CodeGenRenamings01/seq1@9::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method seq1@9::get_CheckClose .method public strict virtual instance class [mscorlib]System.Tuple`2 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CustomAttributeGenericParameter01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CustomAttributeGenericParameter01.il.bsl index 63d76598150..f3c32848290 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CustomAttributeGenericParameter01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/CustomAttributeGenericParameter01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly CustomAttributeGenericParameter01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.CustomAttributeGenericParameter01 { - // Offset: 0x00000000 Length: 0x000002C2 + // Offset: 0x00000000 Length: 0x000002BE } .mresource public FSharpOptimizationData.CustomAttributeGenericParameter01 { // Offset: 0x000002C8 Length: 0x0000007A } .module CustomAttributeGenericParameter01.exe -// MVID: {59B19213-F08A-F524-A745-03831392B159} +// MVID: {60B68B7F-F08A-F524-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x001D0000 +// Image base: 0x05340000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ // Code size 2 (0x2) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 48,49 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\CustomAttributeGenericParameter01.fs' + .line 4,4 : 48,49 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\CustomAttributeGenericParameter01.fs' IL_0000: ldarg.0 IL_0001: ret } // end of method M::f diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Decimal01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Decimal01.il.bsl index 6fa27f19cbf..b0c34bdda4a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Decimal01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Decimal01.il.bsl @@ -34,20 +34,20 @@ } .mresource public FSharpSignatureData.Decimal01 { - // Offset: 0x00000000 Length: 0x00000139 + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Decimal01 { // Offset: 0x00000140 Length: 0x00000050 } .module Decimal01.exe -// MVID: {5F1F9A50-F150-FA46-A745-0383509A1F5F} +// MVID: {60B68B7F-F150-FA46-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06840000 +// Image base: 0x05600000 // =============== CLASS MEMBERS DECLARATION =================== @@ -71,7 +71,7 @@ // Code size 13 (0xd) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 6,6 : 9,13 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\Decimal01.fs' + .line 6,6 : 9,13 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\Decimal01.fs' IL_0000: ldc.i4.s 12 IL_0002: ldc.i4.0 IL_0003: ldc.i4.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EntryPoint01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EntryPoint01.il.bsl index 4768f783d4c..4afe8d6966b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EntryPoint01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EntryPoint01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly EntryPoint01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.EntryPoint01 { - // Offset: 0x00000000 Length: 0x00000253 + // Offset: 0x00000000 Length: 0x0000024F } .mresource public FSharpOptimizationData.EntryPoint01 { // Offset: 0x00000258 Length: 0x00000090 } .module EntryPoint01.exe -// MVID: {59B19213-9846-72C1-A745-03831392B159} +// MVID: {60B68B7F-9846-72C1-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00680000 +// Image base: 0x071C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,10 +66,10 @@ { .entrypoint .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 39 (0x27) + // Code size 35 (0x23) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 8,8 : 9,39 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\EntryPoint01.fs' + .line 8,8 : 9,39 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\EntryPoint01.fs' .line 100001,100001 : 0,0 '' IL_0000: ldc.i4.0 IL_0001: stsfld int32 ''.$EntryPoint01::init@ @@ -77,26 +77,22 @@ IL_000b: pop IL_000c: call int32 EntryPoint01::get_static_initializer() IL_0011: ldc.i4.s 10 - IL_0013: bne.un.s IL_0017 - - IL_0015: br.s IL_0019 - - IL_0017: br.s IL_001d + IL_0013: bne.un.s IL_0019 .line 8,8 : 40,41 '' - IL_0019: ldc.i4.0 + IL_0015: ldc.i4.0 .line 100001,100001 : 0,0 '' - IL_001a: nop - IL_001b: br.s IL_001f + IL_0016: nop + IL_0017: br.s IL_001b .line 8,8 : 47,48 '' - IL_001d: ldc.i4.1 + IL_0019: ldc.i4.1 .line 100001,100001 : 0,0 '' - IL_001e: nop + IL_001a: nop .line 100001,100001 : 0,0 '' - IL_001f: tail. - IL_0021: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0026: ret + IL_001b: tail. + IL_001d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0022: ret } // end of method EntryPoint01::main .property int32 static_initializer() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EqualsOnUnions01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EqualsOnUnions01.il.bsl index 5d270545498..f1c372c2645 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EqualsOnUnions01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/EqualsOnUnions01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly EqualsOnUnions01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.EqualsOnUnions01 { - // Offset: 0x00000000 Length: 0x0000064B + // Offset: 0x00000000 Length: 0x0000063B } .mresource public FSharpOptimizationData.EqualsOnUnions01 { - // Offset: 0x00000650 Length: 0x000001C7 + // Offset: 0x00000640 Length: 0x000001C7 } .module EqualsOnUnions01.exe -// MVID: {59B19213-BBFB-14A0-A745-03831392B159} +// MVID: {60B68B7F-BBFB-14A0-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01350000 +// Image base: 0x07200000 // =============== CLASS MEMBERS DECLARATION =================== @@ -339,7 +339,7 @@ instance int32 CompareTo(class EqualsOnUnions01/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 158 (0x9e) + // Code size 131 (0x83) .maxstack 4 .locals init ([0] int32 V_0, [1] class EqualsOnUnions01/U V_1, @@ -351,130 +351,106 @@ [7] int32 V_7, [8] int32 V_8) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\EqualsOnUnions01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\EqualsOnUnions01.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_0090 - - .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_001a - - IL_0015: br IL_008e - - .line 100001,100001 : 0,0 '' - IL_001a: ldarg.0 - IL_001b: stloc.1 - IL_001c: ldloc.1 - IL_001d: isinst EqualsOnUnions01/U/B - IL_0022: brfalse.s IL_0027 - - IL_0024: ldc.i4.1 - IL_0025: br.s IL_0028 - - IL_0027: ldc.i4.0 - IL_0028: stloc.0 - IL_0029: ldarg.1 - IL_002a: stloc.3 - IL_002b: ldloc.3 - IL_002c: isinst EqualsOnUnions01/U/B - IL_0031: brfalse.s IL_0036 - - IL_0033: ldc.i4.1 - IL_0034: br.s IL_0037 - - IL_0036: ldc.i4.0 - IL_0037: stloc.2 - IL_0038: ldloc.0 - IL_0039: ldloc.2 - IL_003a: bne.un.s IL_003e - - IL_003c: br.s IL_0040 - - IL_003e: br.s IL_008a + IL_0004: brfalse IL_0079 .line 100001,100001 : 0,0 '' - IL_0040: ldarg.0 - IL_0041: isinst EqualsOnUnions01/U/B - IL_0046: brfalse.s IL_004a - - IL_0048: br.s IL_004c - - IL_004a: br.s IL_0088 + IL_0009: ldarg.1 + IL_000a: ldnull + IL_000b: cgt.un + IL_000d: brfalse.s IL_0077 .line 100001,100001 : 0,0 '' - IL_004c: ldarg.0 - IL_004d: castclass EqualsOnUnions01/U/B - IL_0052: stloc.s V_4 - IL_0054: ldarg.1 - IL_0055: castclass EqualsOnUnions01/U/B - IL_005a: stloc.s V_5 - IL_005c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0061: stloc.s V_6 - IL_0063: ldloc.s V_4 - IL_0065: ldfld int32 EqualsOnUnions01/U/B::item - IL_006a: stloc.s V_7 - IL_006c: ldloc.s V_5 - IL_006e: ldfld int32 EqualsOnUnions01/U/B::item - IL_0073: stloc.s V_8 - IL_0075: ldloc.s V_7 - IL_0077: ldloc.s V_8 - IL_0079: bge.s IL_007d - - IL_007b: br.s IL_007f - - IL_007d: br.s IL_0081 + IL_000f: ldarg.0 + IL_0010: stloc.1 + IL_0011: ldloc.1 + IL_0012: isinst EqualsOnUnions01/U/B + IL_0017: brfalse.s IL_001c + + IL_0019: ldc.i4.1 + IL_001a: br.s IL_001d + + IL_001c: ldc.i4.0 + IL_001d: stloc.0 + IL_001e: ldarg.1 + IL_001f: stloc.3 + IL_0020: ldloc.3 + IL_0021: isinst EqualsOnUnions01/U/B + IL_0026: brfalse.s IL_002b + + IL_0028: ldc.i4.1 + IL_0029: br.s IL_002c + + IL_002b: ldc.i4.0 + IL_002c: stloc.2 + IL_002d: ldloc.0 + IL_002e: ldloc.2 + IL_002f: bne.un.s IL_0073 + + .line 100001,100001 : 0,0 '' + IL_0031: ldarg.0 + IL_0032: isinst EqualsOnUnions01/U/B + IL_0037: brfalse.s IL_0071 + + .line 100001,100001 : 0,0 '' + IL_0039: ldarg.0 + IL_003a: castclass EqualsOnUnions01/U/B + IL_003f: stloc.s V_4 + IL_0041: ldarg.1 + IL_0042: castclass EqualsOnUnions01/U/B + IL_0047: stloc.s V_5 + IL_0049: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_004e: stloc.s V_6 + IL_0050: ldloc.s V_4 + IL_0052: ldfld int32 EqualsOnUnions01/U/B::item + IL_0057: stloc.s V_7 + IL_0059: ldloc.s V_5 + IL_005b: ldfld int32 EqualsOnUnions01/U/B::item + IL_0060: stloc.s V_8 + IL_0062: ldloc.s V_7 + IL_0064: ldloc.s V_8 + IL_0066: bge.s IL_006a .line 100001,100001 : 0,0 '' - IL_007f: ldc.i4.m1 - IL_0080: ret + IL_0068: ldc.i4.m1 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_0081: ldloc.s V_7 - IL_0083: ldloc.s V_8 - IL_0085: cgt - IL_0087: ret + IL_006a: ldloc.s V_7 + IL_006c: ldloc.s V_8 + IL_006e: cgt + IL_0070: ret .line 100001,100001 : 0,0 '' - IL_0088: ldc.i4.0 - IL_0089: ret + IL_0071: ldc.i4.0 + IL_0072: ret .line 100001,100001 : 0,0 '' - IL_008a: ldloc.0 - IL_008b: ldloc.2 - IL_008c: sub - IL_008d: ret + IL_0073: ldloc.0 + IL_0074: ldloc.2 + IL_0075: sub + IL_0076: ret .line 100001,100001 : 0,0 '' - IL_008e: ldc.i4.1 - IL_008f: ret + IL_0077: ldc.i4.1 + IL_0078: ret .line 100001,100001 : 0,0 '' - IL_0090: ldarg.1 - IL_0091: ldnull - IL_0092: cgt.un - IL_0094: brfalse.s IL_0098 - - IL_0096: br.s IL_009a - - IL_0098: br.s IL_009c + IL_0079: ldarg.1 + IL_007a: ldnull + IL_007b: cgt.un + IL_007d: brfalse.s IL_0081 .line 100001,100001 : 0,0 '' - IL_009a: ldc.i4.m1 - IL_009b: ret + IL_007f: ldc.i4.m1 + IL_0080: ret .line 100001,100001 : 0,0 '' - IL_009c: ldc.i4.0 - IL_009d: ret + IL_0081: ldc.i4.0 + IL_0082: ret } // end of method U::CompareTo .method public hidebysig virtual final @@ -496,7 +472,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 173 (0xad) + // Code size 146 (0x92) .maxstack 4 .locals init ([0] class EqualsOnUnions01/U V_0, [1] int32 V_1, @@ -515,135 +491,111 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0014 - - IL_000f: br IL_009a + IL_000b: brfalse IL_0083 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.1 - IL_0015: unbox.any EqualsOnUnions01/U - IL_001a: ldnull - IL_001b: cgt.un - IL_001d: brfalse.s IL_0021 - - IL_001f: br.s IL_0026 - - IL_0021: br IL_0098 + IL_0010: ldarg.1 + IL_0011: unbox.any EqualsOnUnions01/U + IL_0016: ldnull + IL_0017: cgt.un + IL_0019: brfalse.s IL_0081 .line 100001,100001 : 0,0 '' - IL_0026: ldarg.0 - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst EqualsOnUnions01/U/B - IL_002e: brfalse.s IL_0033 - - IL_0030: ldc.i4.1 - IL_0031: br.s IL_0034 + IL_001b: ldarg.0 + IL_001c: stloc.2 + IL_001d: ldloc.2 + IL_001e: isinst EqualsOnUnions01/U/B + IL_0023: brfalse.s IL_0028 - IL_0033: ldc.i4.0 - IL_0034: stloc.1 - IL_0035: ldloc.0 - IL_0036: stloc.s V_4 - IL_0038: ldloc.s V_4 - IL_003a: isinst EqualsOnUnions01/U/B - IL_003f: brfalse.s IL_0044 + IL_0025: ldc.i4.1 + IL_0026: br.s IL_0029 - IL_0041: ldc.i4.1 - IL_0042: br.s IL_0045 + IL_0028: ldc.i4.0 + IL_0029: stloc.1 + IL_002a: ldloc.0 + IL_002b: stloc.s V_4 + IL_002d: ldloc.s V_4 + IL_002f: isinst EqualsOnUnions01/U/B + IL_0034: brfalse.s IL_0039 - IL_0044: ldc.i4.0 - IL_0045: stloc.3 - IL_0046: ldloc.1 - IL_0047: ldloc.3 - IL_0048: bne.un.s IL_004c + IL_0036: ldc.i4.1 + IL_0037: br.s IL_003a - IL_004a: br.s IL_004e - - IL_004c: br.s IL_0094 + IL_0039: ldc.i4.0 + IL_003a: stloc.3 + IL_003b: ldloc.1 + IL_003c: ldloc.3 + IL_003d: bne.un.s IL_007d .line 100001,100001 : 0,0 '' - IL_004e: ldarg.0 - IL_004f: isinst EqualsOnUnions01/U/B - IL_0054: brfalse.s IL_0058 - - IL_0056: br.s IL_005a - - IL_0058: br.s IL_0092 + IL_003f: ldarg.0 + IL_0040: isinst EqualsOnUnions01/U/B + IL_0045: brfalse.s IL_007b .line 100001,100001 : 0,0 '' - IL_005a: ldarg.0 - IL_005b: castclass EqualsOnUnions01/U/B - IL_0060: stloc.s V_5 - IL_0062: ldloc.0 - IL_0063: castclass EqualsOnUnions01/U/B - IL_0068: stloc.s V_6 - IL_006a: ldarg.2 - IL_006b: stloc.s V_7 - IL_006d: ldloc.s V_5 - IL_006f: ldfld int32 EqualsOnUnions01/U/B::item - IL_0074: stloc.s V_8 - IL_0076: ldloc.s V_6 - IL_0078: ldfld int32 EqualsOnUnions01/U/B::item - IL_007d: stloc.s V_9 - IL_007f: ldloc.s V_8 - IL_0081: ldloc.s V_9 - IL_0083: bge.s IL_0087 - - IL_0085: br.s IL_0089 - - IL_0087: br.s IL_008b + IL_0047: ldarg.0 + IL_0048: castclass EqualsOnUnions01/U/B + IL_004d: stloc.s V_5 + IL_004f: ldloc.0 + IL_0050: castclass EqualsOnUnions01/U/B + IL_0055: stloc.s V_6 + IL_0057: ldarg.2 + IL_0058: stloc.s V_7 + IL_005a: ldloc.s V_5 + IL_005c: ldfld int32 EqualsOnUnions01/U/B::item + IL_0061: stloc.s V_8 + IL_0063: ldloc.s V_6 + IL_0065: ldfld int32 EqualsOnUnions01/U/B::item + IL_006a: stloc.s V_9 + IL_006c: ldloc.s V_8 + IL_006e: ldloc.s V_9 + IL_0070: bge.s IL_0074 .line 100001,100001 : 0,0 '' - IL_0089: ldc.i4.m1 - IL_008a: ret + IL_0072: ldc.i4.m1 + IL_0073: ret .line 100001,100001 : 0,0 '' - IL_008b: ldloc.s V_8 - IL_008d: ldloc.s V_9 - IL_008f: cgt - IL_0091: ret + IL_0074: ldloc.s V_8 + IL_0076: ldloc.s V_9 + IL_0078: cgt + IL_007a: ret .line 100001,100001 : 0,0 '' - IL_0092: ldc.i4.0 - IL_0093: ret + IL_007b: ldc.i4.0 + IL_007c: ret .line 100001,100001 : 0,0 '' - IL_0094: ldloc.1 - IL_0095: ldloc.3 - IL_0096: sub - IL_0097: ret + IL_007d: ldloc.1 + IL_007e: ldloc.3 + IL_007f: sub + IL_0080: ret .line 100001,100001 : 0,0 '' - IL_0098: ldc.i4.1 - IL_0099: ret + IL_0081: ldc.i4.1 + IL_0082: ret .line 100001,100001 : 0,0 '' - IL_009a: ldarg.1 - IL_009b: unbox.any EqualsOnUnions01/U - IL_00a0: ldnull - IL_00a1: cgt.un - IL_00a3: brfalse.s IL_00a7 - - IL_00a5: br.s IL_00a9 - - IL_00a7: br.s IL_00ab + IL_0083: ldarg.1 + IL_0084: unbox.any EqualsOnUnions01/U + IL_0089: ldnull + IL_008a: cgt.un + IL_008c: brfalse.s IL_0090 .line 100001,100001 : 0,0 '' - IL_00a9: ldc.i4.m1 - IL_00aa: ret + IL_008e: ldc.i4.m1 + IL_008f: ret .line 100001,100001 : 0,0 '' - IL_00ab: ldc.i4.0 - IL_00ac: ret + IL_0090: ldc.i4.0 + IL_0091: ret } // end of method U::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 75 (0x4b) + // Code size 67 (0x43) .maxstack 7 .locals init ([0] int32 V_0, [1] class EqualsOnUnions01/U/B V_1, @@ -653,63 +605,55 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0049 - - .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: isinst EqualsOnUnions01/U/B - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_003a - - .line 100001,100001 : 0,0 '' - IL_0018: ldarg.0 - IL_0019: castclass EqualsOnUnions01/U/B - IL_001e: stloc.1 - IL_001f: ldc.i4.1 - IL_0020: stloc.0 - IL_0021: ldc.i4 0x9e3779b9 - IL_0026: ldarg.1 - IL_0027: stloc.2 - IL_0028: ldloc.1 - IL_0029: ldfld int32 EqualsOnUnions01/U/B::item - IL_002e: ldloc.0 - IL_002f: ldc.i4.6 - IL_0030: shl - IL_0031: ldloc.0 - IL_0032: ldc.i4.2 - IL_0033: shr - IL_0034: add - IL_0035: add - IL_0036: add - IL_0037: stloc.0 - IL_0038: ldloc.0 - IL_0039: ret - - .line 100001,100001 : 0,0 '' - IL_003a: ldarg.0 - IL_003b: stloc.3 - IL_003c: ldloc.3 - IL_003d: isinst EqualsOnUnions01/U/B - IL_0042: brfalse.s IL_0047 - - IL_0044: ldc.i4.1 - IL_0045: br.s IL_0048 - - IL_0047: ldc.i4.0 - IL_0048: ret - - .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.0 - IL_004a: ret + IL_0004: brfalse.s IL_0041 + + .line 100001,100001 : 0,0 '' + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: isinst EqualsOnUnions01/U/B + IL_000e: brfalse.s IL_0032 + + .line 100001,100001 : 0,0 '' + IL_0010: ldarg.0 + IL_0011: castclass EqualsOnUnions01/U/B + IL_0016: stloc.1 + IL_0017: ldc.i4.1 + IL_0018: stloc.0 + IL_0019: ldc.i4 0x9e3779b9 + IL_001e: ldarg.1 + IL_001f: stloc.2 + IL_0020: ldloc.1 + IL_0021: ldfld int32 EqualsOnUnions01/U/B::item + IL_0026: ldloc.0 + IL_0027: ldc.i4.6 + IL_0028: shl + IL_0029: ldloc.0 + IL_002a: ldc.i4.2 + IL_002b: shr + IL_002c: add + IL_002d: add + IL_002e: add + IL_002f: stloc.0 + IL_0030: ldloc.0 + IL_0031: ret + + .line 100001,100001 : 0,0 '' + IL_0032: ldarg.0 + IL_0033: stloc.3 + IL_0034: ldloc.3 + IL_0035: isinst EqualsOnUnions01/U/B + IL_003a: brfalse.s IL_003f + + IL_003c: ldc.i4.1 + IL_003d: br.s IL_0040 + + IL_003f: ldc.i4.0 + IL_0040: ret + + .line 100001,100001 : 0,0 '' + IL_0041: ldc.i4.0 + IL_0042: ret } // end of method U::GetHashCode .method public hidebysig virtual final @@ -730,7 +674,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 133 (0x85) + // Code size 114 (0x72) .maxstack 4 .locals init ([0] class EqualsOnUnions01/U V_0, [1] class EqualsOnUnions01/U V_1, @@ -745,107 +689,91 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_007d + IL_0004: brfalse.s IL_006a .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: isinst EqualsOnUnions01/U - IL_0013: stloc.0 - IL_0014: ldloc.0 - IL_0015: brfalse.s IL_0019 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_007b + IL_0006: ldarg.1 + IL_0007: isinst EqualsOnUnions01/U + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0068 .line 100001,100001 : 0,0 '' - IL_001b: ldloc.0 - IL_001c: stloc.1 - IL_001d: ldarg.0 - IL_001e: stloc.3 - IL_001f: ldloc.3 - IL_0020: isinst EqualsOnUnions01/U/B - IL_0025: brfalse.s IL_002a - - IL_0027: ldc.i4.1 - IL_0028: br.s IL_002b - - IL_002a: ldc.i4.0 - IL_002b: stloc.2 - IL_002c: ldloc.1 - IL_002d: stloc.s V_5 - IL_002f: ldloc.s V_5 - IL_0031: isinst EqualsOnUnions01/U/B - IL_0036: brfalse.s IL_003b - - IL_0038: ldc.i4.1 - IL_0039: br.s IL_003c - - IL_003b: ldc.i4.0 - IL_003c: stloc.s V_4 - IL_003e: ldloc.2 - IL_003f: ldloc.s V_4 - IL_0041: bne.un.s IL_0045 + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: stloc.3 + IL_0014: ldloc.3 + IL_0015: isinst EqualsOnUnions01/U/B + IL_001a: brfalse.s IL_001f - IL_0043: br.s IL_0047 + IL_001c: ldc.i4.1 + IL_001d: br.s IL_0020 - IL_0045: br.s IL_0079 + IL_001f: ldc.i4.0 + IL_0020: stloc.2 + IL_0021: ldloc.1 + IL_0022: stloc.s V_5 + IL_0024: ldloc.s V_5 + IL_0026: isinst EqualsOnUnions01/U/B + IL_002b: brfalse.s IL_0030 - .line 100001,100001 : 0,0 '' - IL_0047: ldarg.0 - IL_0048: isinst EqualsOnUnions01/U/B - IL_004d: brfalse.s IL_0051 + IL_002d: ldc.i4.1 + IL_002e: br.s IL_0031 - IL_004f: br.s IL_0053 + IL_0030: ldc.i4.0 + IL_0031: stloc.s V_4 + IL_0033: ldloc.2 + IL_0034: ldloc.s V_4 + IL_0036: bne.un.s IL_0066 - IL_0051: br.s IL_0077 + .line 100001,100001 : 0,0 '' + IL_0038: ldarg.0 + IL_0039: isinst EqualsOnUnions01/U/B + IL_003e: brfalse.s IL_0064 .line 100001,100001 : 0,0 '' - IL_0053: ldarg.0 - IL_0054: castclass EqualsOnUnions01/U/B - IL_0059: stloc.s V_6 - IL_005b: ldloc.1 - IL_005c: castclass EqualsOnUnions01/U/B - IL_0061: stloc.s V_7 - IL_0063: ldarg.2 - IL_0064: stloc.s V_8 - IL_0066: ldloc.s V_6 - IL_0068: ldfld int32 EqualsOnUnions01/U/B::item - IL_006d: ldloc.s V_7 - IL_006f: ldfld int32 EqualsOnUnions01/U/B::item - IL_0074: ceq - IL_0076: ret + IL_0040: ldarg.0 + IL_0041: castclass EqualsOnUnions01/U/B + IL_0046: stloc.s V_6 + IL_0048: ldloc.1 + IL_0049: castclass EqualsOnUnions01/U/B + IL_004e: stloc.s V_7 + IL_0050: ldarg.2 + IL_0051: stloc.s V_8 + IL_0053: ldloc.s V_6 + IL_0055: ldfld int32 EqualsOnUnions01/U/B::item + IL_005a: ldloc.s V_7 + IL_005c: ldfld int32 EqualsOnUnions01/U/B::item + IL_0061: ceq + IL_0063: ret .line 100001,100001 : 0,0 '' - IL_0077: ldc.i4.1 - IL_0078: ret + IL_0064: ldc.i4.1 + IL_0065: ret .line 100001,100001 : 0,0 '' - IL_0079: ldc.i4.0 - IL_007a: ret + IL_0066: ldc.i4.0 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_007b: ldc.i4.0 - IL_007c: ret + IL_0068: ldc.i4.0 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_007d: ldarg.1 - IL_007e: ldnull - IL_007f: cgt.un - IL_0081: ldc.i4.0 - IL_0082: ceq - IL_0084: ret + IL_006a: ldarg.1 + IL_006b: ldnull + IL_006c: cgt.un + IL_006e: ldc.i4.0 + IL_006f: ceq + IL_0071: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(class EqualsOnUnions01/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 120 (0x78) + // Code size 101 (0x65) .maxstack 4 .locals init ([0] int32 V_0, [1] class EqualsOnUnions01/U V_1, @@ -857,102 +785,86 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_0070 + IL_0004: brfalse.s IL_005d .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_0017 - - IL_0015: br.s IL_006e + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_005b .line 100001,100001 : 0,0 '' - IL_0017: ldarg.0 - IL_0018: stloc.1 - IL_0019: ldloc.1 - IL_001a: isinst EqualsOnUnions01/U/B - IL_001f: brfalse.s IL_0024 - - IL_0021: ldc.i4.1 - IL_0022: br.s IL_0025 - - IL_0024: ldc.i4.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: stloc.3 - IL_0028: ldloc.3 - IL_0029: isinst EqualsOnUnions01/U/B - IL_002e: brfalse.s IL_0033 + IL_000c: ldarg.0 + IL_000d: stloc.1 + IL_000e: ldloc.1 + IL_000f: isinst EqualsOnUnions01/U/B + IL_0014: brfalse.s IL_0019 - IL_0030: ldc.i4.1 - IL_0031: br.s IL_0034 + IL_0016: ldc.i4.1 + IL_0017: br.s IL_001a - IL_0033: ldc.i4.0 - IL_0034: stloc.2 - IL_0035: ldloc.0 - IL_0036: ldloc.2 - IL_0037: bne.un.s IL_003b + IL_0019: ldc.i4.0 + IL_001a: stloc.0 + IL_001b: ldarg.1 + IL_001c: stloc.3 + IL_001d: ldloc.3 + IL_001e: isinst EqualsOnUnions01/U/B + IL_0023: brfalse.s IL_0028 - IL_0039: br.s IL_003d + IL_0025: ldc.i4.1 + IL_0026: br.s IL_0029 - IL_003b: br.s IL_006c + IL_0028: ldc.i4.0 + IL_0029: stloc.2 + IL_002a: ldloc.0 + IL_002b: ldloc.2 + IL_002c: bne.un.s IL_0059 .line 100001,100001 : 0,0 '' - IL_003d: ldarg.0 - IL_003e: isinst EqualsOnUnions01/U/B - IL_0043: brfalse.s IL_0047 - - IL_0045: br.s IL_0049 - - IL_0047: br.s IL_006a + IL_002e: ldarg.0 + IL_002f: isinst EqualsOnUnions01/U/B + IL_0034: brfalse.s IL_0057 .line 100001,100001 : 0,0 '' - IL_0049: ldarg.0 - IL_004a: castclass EqualsOnUnions01/U/B - IL_004f: stloc.s V_4 - IL_0051: ldarg.1 - IL_0052: castclass EqualsOnUnions01/U/B - IL_0057: stloc.s V_5 - IL_0059: ldloc.s V_4 - IL_005b: ldfld int32 EqualsOnUnions01/U/B::item - IL_0060: ldloc.s V_5 - IL_0062: ldfld int32 EqualsOnUnions01/U/B::item - IL_0067: ceq - IL_0069: ret + IL_0036: ldarg.0 + IL_0037: castclass EqualsOnUnions01/U/B + IL_003c: stloc.s V_4 + IL_003e: ldarg.1 + IL_003f: castclass EqualsOnUnions01/U/B + IL_0044: stloc.s V_5 + IL_0046: ldloc.s V_4 + IL_0048: ldfld int32 EqualsOnUnions01/U/B::item + IL_004d: ldloc.s V_5 + IL_004f: ldfld int32 EqualsOnUnions01/U/B::item + IL_0054: ceq + IL_0056: ret .line 100001,100001 : 0,0 '' - IL_006a: ldc.i4.1 - IL_006b: ret + IL_0057: ldc.i4.1 + IL_0058: ret .line 100001,100001 : 0,0 '' - IL_006c: ldc.i4.0 - IL_006d: ret + IL_0059: ldc.i4.0 + IL_005a: ret .line 100001,100001 : 0,0 '' - IL_006e: ldc.i4.0 - IL_006f: ret + IL_005b: ldc.i4.0 + IL_005c: ret .line 100001,100001 : 0,0 '' - IL_0070: ldarg.1 - IL_0071: ldnull - IL_0072: cgt.un - IL_0074: ldc.i4.0 - IL_0075: ceq - IL_0077: ret + IL_005d: ldarg.1 + IL_005e: ldnull + IL_005f: cgt.un + IL_0061: ldc.i4.0 + IL_0062: ceq + IL_0064: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class EqualsOnUnions01/U V_0) .line 6,6 : 6,7 '' @@ -960,21 +872,17 @@ IL_0001: isinst EqualsOnUnions01/U IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool EqualsOnUnions01/U::Equals(class EqualsOnUnions01/U) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool EqualsOnUnions01/U::Equals(class EqualsOnUnions01/U) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method U::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop01.il.bsl index 0f5a2183244..1cbb7d93ca5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ForLoop01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ForLoop01 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.ForLoop01 { - // Offset: 0x00000148 Length: 0x00000050 + // Offset: 0x00000140 Length: 0x00000050 } .module ForLoop01.exe -// MVID: {59B19213-1795-791C-A745-03831392B159} +// MVID: {60B68B7F-1795-791C-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002E0000 +// Image base: 0x05340000 // =============== CLASS MEMBERS DECLARATION =================== @@ -71,7 +71,7 @@ [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_3, [4] int32 V_4) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 1,24 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\ForLoop01.fs' + .line 5,5 : 1,24 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\ForLoop01.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.1 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop02.il.bsl index f54c8480177..d40f24fed45 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ForLoop02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ForLoop02 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.ForLoop02 { - // Offset: 0x00000148 Length: 0x00000050 + // Offset: 0x00000140 Length: 0x00000050 } .module ForLoop02.exe -// MVID: {59B19213-1736-791C-A745-03831392B159} +// MVID: {60B68B7F-1736-791C-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x03030000 +// Image base: 0x05980000 // =============== CLASS MEMBERS DECLARATION =================== @@ -69,7 +69,7 @@ [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_1, [2] int32 V_2) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 1,19 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\ForLoop02.fs' + .line 5,5 : 1,19 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\ForLoop02.fs' IL_0000: ldc.i4.1 IL_0001: stloc.0 IL_0002: br.s IL_0022 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop03.il.bsl index e6fda0879b7..61f328b715c 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ForLoop03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ForLoop03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ForLoop03 { - // Offset: 0x00000000 Length: 0x000001FA + // Offset: 0x00000000 Length: 0x000001F6 } .mresource public FSharpOptimizationData.ForLoop03 { // Offset: 0x00000200 Length: 0x0000007B } .module ForLoop03.exe -// MVID: {59B19213-1757-791C-A745-03831392B159} +// MVID: {60B68B7F-1757-791C-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00680000 +// Image base: 0x07280000 // =============== CLASS MEMBERS DECLARATION =================== @@ -73,7 +73,7 @@ [6] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_6, [7] int32 V_7) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 10,10 : 4,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\ForLoop03.fs' + .line 10,10 : 4,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\ForLoop03.fs' IL_0000: ldc.i4.0 IL_0001: stloc.0 .line 11,11 : 4,28 '' diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GeneralizationOnUnions01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GeneralizationOnUnions01.il.bsl index eca246c526b..70bbfca2a6f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GeneralizationOnUnions01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GeneralizationOnUnions01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly GeneralizationOnUnions01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.GeneralizationOnUnions01 { - // Offset: 0x00000000 Length: 0x00000699 + // Offset: 0x00000000 Length: 0x00000689 } .mresource public FSharpOptimizationData.GeneralizationOnUnions01 { - // Offset: 0x000006A0 Length: 0x000001F4 + // Offset: 0x00000690 Length: 0x000001F4 } .module GeneralizationOnUnions01.exe -// MVID: {59B19213-4CA2-8CD1-A745-03831392B159} +// MVID: {60B68B7F-4CA2-8CD1-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x014C0000 +// Image base: 0x06C00000 // =============== CLASS MEMBERS DECLARATION =================== @@ -145,54 +145,42 @@ instance int32 CompareTo(class GeneralizationOnUnions01/Weirdo obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 38 (0x26) + // Code size 26 (0x1a) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\GeneralizationOnUnions01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\GeneralizationOnUnions01.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0018 + IL_0004: brfalse.s IL_0010 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0016 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_000e .line 100001,100001 : 0,0 '' - IL_0014: ldc.i4.0 - IL_0015: ret + IL_000c: ldc.i4.0 + IL_000d: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.1 - IL_0017: ret + IL_000e: ldc.i4.1 + IL_000f: ret .line 100001,100001 : 0,0 '' - IL_0018: ldarg.1 - IL_0019: ldnull - IL_001a: cgt.un - IL_001c: brfalse.s IL_0020 - - IL_001e: br.s IL_0022 - - IL_0020: br.s IL_0024 + IL_0010: ldarg.1 + IL_0011: ldnull + IL_0012: cgt.un + IL_0014: brfalse.s IL_0018 .line 100001,100001 : 0,0 '' - IL_0022: ldc.i4.m1 - IL_0023: ret + IL_0016: ldc.i4.m1 + IL_0017: ret .line 100001,100001 : 0,0 '' - IL_0024: ldc.i4.0 - IL_0025: ret + IL_0018: ldc.i4.0 + IL_0019: ret } // end of method Weirdo::CompareTo .method public hidebysig virtual final @@ -214,7 +202,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 55 (0x37) + // Code size 43 (0x2b) .maxstack 3 .locals init ([0] class GeneralizationOnUnions01/Weirdo V_0) .line 4,4 : 6,12 '' @@ -224,79 +212,63 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0011 - - IL_000f: br.s IL_0024 + IL_000b: brfalse.s IL_001c .line 100001,100001 : 0,0 '' - IL_0011: ldarg.1 - IL_0012: unbox.any GeneralizationOnUnions01/Weirdo - IL_0017: ldnull - IL_0018: cgt.un - IL_001a: brfalse.s IL_001e - - IL_001c: br.s IL_0020 - - IL_001e: br.s IL_0022 + IL_000d: ldarg.1 + IL_000e: unbox.any GeneralizationOnUnions01/Weirdo + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_001a .line 100001,100001 : 0,0 '' - IL_0020: ldc.i4.0 - IL_0021: ret + IL_0018: ldc.i4.0 + IL_0019: ret .line 100001,100001 : 0,0 '' - IL_0022: ldc.i4.1 - IL_0023: ret + IL_001a: ldc.i4.1 + IL_001b: ret .line 100001,100001 : 0,0 '' - IL_0024: ldarg.1 - IL_0025: unbox.any GeneralizationOnUnions01/Weirdo - IL_002a: ldnull - IL_002b: cgt.un - IL_002d: brfalse.s IL_0031 - - IL_002f: br.s IL_0033 - - IL_0031: br.s IL_0035 + IL_001c: ldarg.1 + IL_001d: unbox.any GeneralizationOnUnions01/Weirdo + IL_0022: ldnull + IL_0023: cgt.un + IL_0025: brfalse.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0033: ldc.i4.m1 - IL_0034: ret + IL_0027: ldc.i4.m1 + IL_0028: ret .line 100001,100001 : 0,0 '' - IL_0035: ldc.i4.0 - IL_0036: ret + IL_0029: ldc.i4.0 + IL_002a: ret } // end of method Weirdo::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 18 (0x12) + // Code size 14 (0xe) .maxstack 3 .locals init ([0] int32 V_0) .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0010 + IL_0004: brfalse.s IL_000c .line 100001,100001 : 0,0 '' + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: pop IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: pop - IL_000e: ldc.i4.0 - IL_000f: ret + IL_000b: ret .line 100001,100001 : 0,0 '' - IL_0010: ldc.i4.0 - IL_0011: ret + IL_000c: ldc.i4.0 + IL_000d: ret } // end of method Weirdo::GetHashCode .method public hidebysig virtual final @@ -317,7 +289,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 38 (0x26) + // Code size 30 (0x1e) .maxstack 4 .locals init ([0] class GeneralizationOnUnions01/Weirdo V_0, [1] class GeneralizationOnUnions01/Weirdo V_1) @@ -325,78 +297,66 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_001e + IL_0004: brfalse.s IL_0016 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst GeneralizationOnUnions01/Weirdo - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_001c + IL_0006: ldarg.1 + IL_0007: isinst GeneralizationOnUnions01/Weirdo + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0014 .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldc.i4.1 - IL_001b: ret + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldc.i4.1 + IL_0013: ret .line 100001,100001 : 0,0 '' - IL_001c: ldc.i4.0 - IL_001d: ret + IL_0014: ldc.i4.0 + IL_0015: ret .line 100001,100001 : 0,0 '' - IL_001e: ldarg.1 - IL_001f: ldnull - IL_0020: cgt.un - IL_0022: ldc.i4.0 - IL_0023: ceq - IL_0025: ret + IL_0016: ldarg.1 + IL_0017: ldnull + IL_0018: cgt.un + IL_001a: ldc.i4.0 + IL_001b: ceq + IL_001d: ret } // end of method Weirdo::Equals .method public hidebysig virtual final instance bool Equals(class GeneralizationOnUnions01/Weirdo obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 23 (0x17) + // Code size 19 (0x13) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_000f + IL_0004: brfalse.s IL_000b .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: ret + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: ret .line 100001,100001 : 0,0 '' - IL_000f: ldarg.1 - IL_0010: ldnull - IL_0011: cgt.un - IL_0013: ldc.i4.0 - IL_0014: ceq - IL_0016: ret + IL_000b: ldarg.1 + IL_000c: ldnull + IL_000d: cgt.un + IL_000f: ldc.i4.0 + IL_0010: ceq + IL_0012: ret } // end of method Weirdo::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class GeneralizationOnUnions01/Weirdo V_0) .line 4,4 : 6,12 '' @@ -404,21 +364,17 @@ IL_0001: isinst GeneralizationOnUnions01/Weirdo IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool GeneralizationOnUnions01/Weirdo::Equals(class GeneralizationOnUnions01/Weirdo) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool GeneralizationOnUnions01/Weirdo::Equals(class GeneralizationOnUnions01/Weirdo) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method Weirdo::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GenericTypeStaticField01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GenericTypeStaticField01.il.bsl index 8e3f9aced4a..928e00e3cfd 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GenericTypeStaticField01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/GenericTypeStaticField01.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x00000608 Length: 0x000001E1 } .module GenericTypeStaticField01.exe -// MVID: {5FCFFD09-1E75-7E6B-A745-038309FDCF5F} +// MVID: {60B68B7F-1E75-7E6B-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00EB0000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/IfThenElse01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/IfThenElse01.il.bsl index e8edb3c0b9a..3d0ba7cb01f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/IfThenElse01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/IfThenElse01.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x00000208 Length: 0x00000092 } .module IfThenElse01.dll -// MVID: {5FCFFD09-2D6C-0B5D-A745-038309FDCF5F} +// MVID: {60B68B7F-2D6C-0B5D-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x067C0000 +// Image base: 0x06DD0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -128,7 +128,7 @@ !a z, !a w) cil managed { - // Code size 20 (0x14) + // Code size 16 (0x10) .maxstack 7 .locals init ([0] class IfThenElse01/M/f5@5 V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' @@ -140,17 +140,13 @@ IL_0008: ldarg.2 IL_0009: ble.s IL_000d - IL_000b: br.s IL_000f - - IL_000d: br.s IL_0011 - .line 5,5 : 64,65 '' - IL_000f: ldarg.3 - IL_0010: ret + IL_000b: ldarg.3 + IL_000c: ret .line 5,5 : 71,72 '' - IL_0011: ldarg.s w - IL_0013: ret + IL_000d: ldarg.s w + IL_000f: ret } // end of method f5@5T::Invoke } // end of class f5@5T diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/LetIfThenElse01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/LetIfThenElse01.il.bsl index 8c6ee74160d..4fd045b7168 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/LetIfThenElse01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/LetIfThenElse01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly LetIfThenElse01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.LetIfThenElse01 { - // Offset: 0x00000000 Length: 0x000001E5 + // Offset: 0x00000000 Length: 0x000001D9 } .mresource public FSharpOptimizationData.LetIfThenElse01 { - // Offset: 0x000001F0 Length: 0x00000076 + // Offset: 0x000001E0 Length: 0x00000076 } .module LetIfThenElse01.exe -// MVID: {59B19213-BE5A-D8FD-A745-03831392B159} +// MVID: {60B68B7F-BE5A-D8FD-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02940000 +// Image base: 0x06AF0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -54,7 +54,7 @@ .method public static class [mscorlib]System.Tuple`4 F(!!a y) cil managed { - // Code size 140 (0x8c) + // Code size 124 (0x7c) .maxstack 6 .locals init ([0] int32 x1, [1] valuetype [mscorlib]System.DateTime V_1, @@ -65,112 +65,96 @@ [6] int32 y2, [7] valuetype [mscorlib]System.DateTime V_7) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 6,6 : 12,51 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\LetIfThenElse01.fs' + .line 6,6 : 12,51 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\LetIfThenElse01.fs' IL_0000: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() IL_0005: stloc.1 IL_0006: ldloca.s V_1 IL_0008: call instance int32 [mscorlib]System.DateTime::get_Year() IL_000d: ldc.i4 0x7d0 - IL_0012: ble.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_001c + IL_0012: ble.s IL_0018 .line 6,6 : 52,53 '' - IL_0018: ldc.i4.1 + IL_0014: ldc.i4.1 .line 100001,100001 : 0,0 '' - IL_0019: nop - IL_001a: br.s IL_001e + IL_0015: nop + IL_0016: br.s IL_001a .line 6,6 : 59,60 '' - IL_001c: ldc.i4.2 + IL_0018: ldc.i4.2 .line 100001,100001 : 0,0 '' - IL_001d: nop + IL_0019: nop .line 100001,100001 : 0,0 '' - IL_001e: stloc.0 + IL_001a: stloc.0 .line 7,7 : 12,51 '' - IL_001f: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() - IL_0024: stloc.3 - IL_0025: ldloca.s V_3 - IL_0027: call instance int32 [mscorlib]System.DateTime::get_Year() - IL_002c: ldc.i4 0x7d0 - IL_0031: ble.s IL_0035 - - IL_0033: br.s IL_0037 - - IL_0035: br.s IL_003b + IL_001b: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() + IL_0020: stloc.3 + IL_0021: ldloca.s V_3 + IL_0023: call instance int32 [mscorlib]System.DateTime::get_Year() + IL_0028: ldc.i4 0x7d0 + IL_002d: ble.s IL_0033 .line 7,7 : 52,53 '' - IL_0037: ldc.i4.1 + IL_002f: ldc.i4.1 .line 100001,100001 : 0,0 '' - IL_0038: nop - IL_0039: br.s IL_003d + IL_0030: nop + IL_0031: br.s IL_0035 .line 7,7 : 59,60 '' - IL_003b: ldc.i4.2 + IL_0033: ldc.i4.2 .line 100001,100001 : 0,0 '' - IL_003c: nop + IL_0034: nop .line 100001,100001 : 0,0 '' - IL_003d: stloc.2 + IL_0035: stloc.2 .line 8,8 : 12,51 '' - IL_003e: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() - IL_0043: stloc.s V_5 - IL_0045: ldloca.s V_5 - IL_0047: call instance int32 [mscorlib]System.DateTime::get_Year() - IL_004c: ldc.i4 0x7d0 - IL_0051: bge.s IL_0055 - - IL_0053: br.s IL_0057 - - IL_0055: br.s IL_005b + IL_0036: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() + IL_003b: stloc.s V_5 + IL_003d: ldloca.s V_5 + IL_003f: call instance int32 [mscorlib]System.DateTime::get_Year() + IL_0044: ldc.i4 0x7d0 + IL_0049: bge.s IL_004f .line 8,8 : 52,53 '' - IL_0057: ldc.i4.1 + IL_004b: ldc.i4.1 .line 100001,100001 : 0,0 '' - IL_0058: nop - IL_0059: br.s IL_005d + IL_004c: nop + IL_004d: br.s IL_0051 .line 8,8 : 59,60 '' - IL_005b: ldc.i4.2 + IL_004f: ldc.i4.2 .line 100001,100001 : 0,0 '' - IL_005c: nop + IL_0050: nop .line 100001,100001 : 0,0 '' - IL_005d: stloc.s x2 + IL_0051: stloc.s x2 .line 9,9 : 12,51 '' - IL_005f: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() - IL_0064: stloc.s V_7 - IL_0066: ldloca.s V_7 - IL_0068: call instance int32 [mscorlib]System.DateTime::get_Year() - IL_006d: ldc.i4 0x7d0 - IL_0072: bge.s IL_0076 - - IL_0074: br.s IL_0078 - - IL_0076: br.s IL_007c + IL_0053: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now() + IL_0058: stloc.s V_7 + IL_005a: ldloca.s V_7 + IL_005c: call instance int32 [mscorlib]System.DateTime::get_Year() + IL_0061: ldc.i4 0x7d0 + IL_0066: bge.s IL_006c .line 9,9 : 52,53 '' - IL_0078: ldc.i4.1 + IL_0068: ldc.i4.1 .line 100001,100001 : 0,0 '' - IL_0079: nop - IL_007a: br.s IL_007e + IL_0069: nop + IL_006a: br.s IL_006e .line 9,9 : 59,60 '' - IL_007c: ldc.i4.2 + IL_006c: ldc.i4.2 .line 100001,100001 : 0,0 '' - IL_007d: nop + IL_006d: nop .line 100001,100001 : 0,0 '' - IL_007e: stloc.s y2 + IL_006e: stloc.s y2 .line 10,10 : 3,14 '' - IL_0080: ldloc.0 - IL_0081: ldloc.2 - IL_0082: ldloc.s x2 - IL_0084: ldloc.s y2 - IL_0086: newobj instance void class [mscorlib]System.Tuple`4::.ctor(!0, + IL_0070: ldloc.0 + IL_0071: ldloc.2 + IL_0072: ldloc.s x2 + IL_0074: ldloc.s y2 + IL_0076: newobj instance void class [mscorlib]System.Tuple`4::.ctor(!0, !1, !2, !3) - IL_008b: ret + IL_007b: ret } // end of method LetIfThenElse01::F } // end of class LetIfThenElse01 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Lock01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Lock01.il.bsl index 37d6c43ab3d..2e01e08825f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Lock01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Lock01.il.bsl @@ -41,13 +41,13 @@ // Offset: 0x00000188 Length: 0x00000064 } .module Lock01.exe -// MVID: {5FCFFD09-2BCA-B308-A745-038309FDCF5F} +// MVID: {60B68B7F-2BCA-B308-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06B00000 +// Image base: 0x06BF0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -123,7 +123,7 @@ .method public static void main@() cil managed { .entrypoint - // Code size 68 (0x44) + // Code size 64 (0x40) .maxstack 4 .locals init ([0] object o, [1] object V_1, @@ -152,33 +152,29 @@ IL_0023: ldnull IL_0024: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0029: stloc.s V_4 - IL_002b: leave.s IL_0040 + IL_002b: leave.s IL_003c } // end .try finally { IL_002d: ldloc.3 - IL_002e: brfalse.s IL_0032 - - IL_0030: br.s IL_0034 - - IL_0032: br.s IL_003d + IL_002e: brfalse.s IL_0039 .line 100001,100001 : 0,0 '' - IL_0034: ldloc.1 - IL_0035: call void [netstandard]System.Threading.Monitor::Exit(object) - IL_003a: ldnull - IL_003b: pop - IL_003c: endfinally + IL_0030: ldloc.1 + IL_0031: call void [netstandard]System.Threading.Monitor::Exit(object) + IL_0036: ldnull + IL_0037: pop + IL_0038: endfinally .line 100001,100001 : 0,0 '' - IL_003d: ldnull - IL_003e: pop - IL_003f: endfinally + IL_0039: ldnull + IL_003a: pop + IL_003b: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_0040: ldloc.s V_4 - IL_0042: pop - IL_0043: ret + IL_003c: ldloc.s V_4 + IL_003e: pop + IL_003f: ret } // end of method $Lock01::main@ } // end of class ''.$Lock01 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Marshal.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Marshal.il.bsl index a4ee5c51231..a72c99aedd5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Marshal.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Marshal.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Marshal { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Marshal { - // Offset: 0x00000000 Length: 0x0000050B + // Offset: 0x00000000 Length: 0x00000507 } .mresource public FSharpOptimizationData.Marshal { // Offset: 0x00000510 Length: 0x0000004E } .module Marshal.exe -// MVID: {59B19213-7500-369C-A745-03831392B159} +// MVID: {60B68B7F-7500-369C-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01080000 +// Image base: 0x068F0000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline.il.bsl index aae557b86ca..ebeebd6525a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline.il.bsl @@ -30,20 +30,20 @@ } .mresource public FSharpSignatureData.MethodImplNoInline { - // Offset: 0x00000000 Length: 0x000002F9 + // Offset: 0x00000000 Length: 0x000002FB } .mresource public FSharpOptimizationData.MethodImplNoInline { // Offset: 0x00000300 Length: 0x000000F5 } .module MethodImplNoInline.exe -// MVID: {5F1F9A50-4480-09E2-A745-0383509A1F5F} +// MVID: {60B68B7F-4480-09E2-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x054F0000 +// Image base: 0x06DC0000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline02.il.bsl index 6f291d69311..607b8bf6f14 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/MethodImplNoInline02.il.bsl @@ -30,20 +30,20 @@ } .mresource public FSharpSignatureData.MethodImplNoInline02 { - // Offset: 0x00000000 Length: 0x000002FF + // Offset: 0x00000000 Length: 0x00000301 } .mresource public FSharpOptimizationData.MethodImplNoInline02 { // Offset: 0x00000308 Length: 0x000000F9 } .module MethodImplNoInline02.exe -// MVID: {5F1F9A50-084F-1A8E-A745-0383509A1F5F} +// MVID: {60B68B7F-084F-1A8E-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x04E70000 +// Image base: 0x05140000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ModuleWithExpression01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ModuleWithExpression01.il.bsl index 479fa38706d..4dbdb7783fe 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ModuleWithExpression01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/ModuleWithExpression01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly ModuleWithExpression01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.ModuleWithExpression01 { - // Offset: 0x00000000 Length: 0x0000020E + // Offset: 0x00000000 Length: 0x0000020A } .mresource public FSharpOptimizationData.ModuleWithExpression01 { - // Offset: 0x00000218 Length: 0x000000A6 + // Offset: 0x00000210 Length: 0x000000A6 } .module ModuleWithExpression01.exe -// MVID: {59B19213-CD1E-A8B4-A745-03831392B159} +// MVID: {60B68B7F-CD1E-A8B4-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x030A0000 +// Image base: 0x07550000 // =============== CLASS MEMBERS DECLARATION =================== @@ -88,7 +88,7 @@ .maxstack 3 .locals init ([0] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 8,8 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\ModuleWithExpression01.fs' + .line 8,8 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\ModuleWithExpression01.fs' IL_0000: ldstr "hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NoBoxingOnDispose01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NoBoxingOnDispose01.il.bsl index 2e111b971f8..1c571a25e0b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NoBoxingOnDispose01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NoBoxingOnDispose01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly NoBoxingOnDispose01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.NoBoxingOnDispose01 { - // Offset: 0x00000000 Length: 0x0000021A + // Offset: 0x00000000 Length: 0x00000216 } .mresource public FSharpOptimizationData.NoBoxingOnDispose01 { // Offset: 0x00000220 Length: 0x0000007F } .module NoBoxingOnDispose01.exe -// MVID: {59B19213-4EA9-C934-A745-03831392B159} +// MVID: {60B68B7F-4EA9-C934-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00590000 +// Image base: 0x06C40000 // =============== CLASS MEMBERS DECLARATION =================== @@ -60,7 +60,7 @@ [2] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_2, [3] !!T a) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 6,6 : 3,16 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\NoBoxingOnDispose01.fs' + .line 6,6 : 3,16 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\NoBoxingOnDispose01.fs' IL_0000: ldarg.0 IL_0001: stloc.0 .line 6,6 : 3,16 '' diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NonEscapingArguments02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NonEscapingArguments02.il.bsl index 5209960dc5f..a20d0205daa 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NonEscapingArguments02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/NonEscapingArguments02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly NonEscapingArguments02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.NonEscapingArguments02 { - // Offset: 0x00000000 Length: 0x00000359 + // Offset: 0x00000000 Length: 0x00000355 } .mresource public FSharpOptimizationData.NonEscapingArguments02 { - // Offset: 0x00000360 Length: 0x000001A4 + // Offset: 0x00000360 Length: 0x0000019E } .module NonEscapingArguments02.dll -// MVID: {59B19213-BB56-6582-A745-03831392B159} +// MVID: {60B68B7F-BB56-6582-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01730000 +// Image base: 0x06B40000 // =============== CLASS MEMBERS DECLARATION =================== @@ -62,7 +62,7 @@ // Code size 21 (0x15) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\NonEscapingArguments02.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\NonEscapingArguments02.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/PreserveSig.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/PreserveSig.il.bsl index 5a8b4ef3b76..bbd2fc4fee7 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/PreserveSig.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/PreserveSig.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly PreserveSig { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.PreserveSig { - // Offset: 0x00000000 Length: 0x000002F5 + // Offset: 0x00000000 Length: 0x000002F1 } .mresource public FSharpOptimizationData.PreserveSig { - // Offset: 0x00000300 Length: 0x0000004A + // Offset: 0x000002F8 Length: 0x0000004A } .module PreserveSig.dll -// MVID: {59B19213-E8CC-64FE-A745-03831392B159} +// MVID: {60B68B7F-E8CC-64FE-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01660000 +// Image base: 0x05120000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Seq_for_all01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Seq_for_all01.il.bsl index 0249c7e112a..cbcdbfefab9 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Seq_for_all01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Seq_for_all01.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x000001B0 Length: 0x00000072 } .module Seq_for_all01.exe -// MVID: {5FCFFD09-D30D-BA80-A745-038309FDCF5F} +// MVID: {60B68B7F-D30D-BA80-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00F60000 +// Image base: 0x05500000 // =============== CLASS MEMBERS DECLARATION =================== @@ -70,7 +70,7 @@ .method public strict virtual instance bool Invoke(int32 s) cil managed { - // Code size 18 (0x12) + // Code size 14 (0xe) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' .line 5,5 : 31,47 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\Seq_for_all01.fs' @@ -80,23 +80,19 @@ .line 100001,100001 : 0,0 '' IL_0004: nop .line 100001,100001 : 0,0 '' - IL_0005: brfalse.s IL_0009 - - IL_0007: br.s IL_000b - - IL_0009: br.s IL_000f + IL_0005: brfalse.s IL_000b .line 5,5 : 48,50 '' - IL_000b: nop + IL_0007: nop .line 100001,100001 : 0,0 '' - IL_000c: nop - IL_000d: br.s IL_0010 + IL_0008: nop + IL_0009: br.s IL_000c .line 100001,100001 : 0,0 '' - IL_000f: nop + IL_000b: nop .line 6,6 : 31,35 '' - IL_0010: ldc.i4.1 - IL_0011: ret + IL_000c: ldc.i4.1 + IL_000d: ret } // end of method q@4::Invoke .method private specialname rtspecialname static diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs01.il.bsl index b3476b282f7..1d930ea81ac 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Structs01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Structs01 { - // Offset: 0x00000000 Length: 0x0000074D + // Offset: 0x00000000 Length: 0x0000073D } .mresource public FSharpOptimizationData.Structs01 { - // Offset: 0x00000758 Length: 0x00000231 + // Offset: 0x00000748 Length: 0x00000231 } .module Structs01.exe -// MVID: {59B19213-701F-5E27-A745-03831392B159} +// MVID: {60B68B7F-701F-5E27-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01470000 +// Image base: 0x07280000 // =============== CLASS MEMBERS DECLARATION =================== @@ -65,14 +65,14 @@ instance int32 CompareTo(valuetype Experiment.Test/Test obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 38 (0x26) + // Code size 34 (0x22) .maxstack 4 .locals init ([0] valuetype Experiment.Test/Test& V_0, [1] class [mscorlib]System.Collections.IComparer V_1, [2] int32 V_2, [3] int32 V_3) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 7,7 : 6,10 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\Structs01.fs' + .line 7,7 : 6,10 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\Structs01.fs' IL_0000: ldarga.s obj IL_0002: stloc.0 IL_0003: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() @@ -87,19 +87,15 @@ IL_0018: ldloc.3 IL_0019: bge.s IL_001d - IL_001b: br.s IL_001f - - IL_001d: br.s IL_0021 - .line 100001,100001 : 0,0 '' - IL_001f: ldc.i4.m1 - IL_0020: ret + IL_001b: ldc.i4.m1 + IL_001c: ret .line 100001,100001 : 0,0 '' - IL_0021: ldloc.2 - IL_0022: ldloc.3 - IL_0023: cgt - IL_0025: ret + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: cgt + IL_0021: ret } // end of method Test::CompareTo .method public hidebysig virtual final @@ -121,7 +117,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 44 (0x2c) + // Code size 40 (0x28) .maxstack 4 .locals init ([0] valuetype Experiment.Test/Test V_0, [1] valuetype Experiment.Test/Test& V_1, @@ -146,19 +142,15 @@ IL_001c: ldloc.s V_4 IL_001e: bge.s IL_0022 - IL_0020: br.s IL_0024 - - IL_0022: br.s IL_0026 - .line 100001,100001 : 0,0 '' - IL_0024: ldc.i4.m1 - IL_0025: ret + IL_0020: ldc.i4.m1 + IL_0021: ret .line 100001,100001 : 0,0 '' - IL_0026: ldloc.3 - IL_0027: ldloc.s V_4 - IL_0029: cgt - IL_002b: ret + IL_0022: ldloc.3 + IL_0023: ldloc.s V_4 + IL_0025: cgt + IL_0027: ret } // end of method Test::CompareTo .method public hidebysig virtual final diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs02.il.bsl index dc002382e1d..d22541e0303 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/Structs02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Structs02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Structs02 { - // Offset: 0x00000000 Length: 0x00000787 + // Offset: 0x00000000 Length: 0x00000777 } .mresource public FSharpOptimizationData.Structs02 { - // Offset: 0x00000790 Length: 0x00000237 + // Offset: 0x00000780 Length: 0x00000237 } .module Structs02.exe -// MVID: {59B19213-7040-5E27-A745-03831392B159} +// MVID: {60B68B7F-7040-5E27-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002F0000 +// Image base: 0x05320000 // =============== CLASS MEMBERS DECLARATION =================== @@ -76,14 +76,14 @@ instance int32 CompareTo(valuetype Experiment.Test/Repro obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 38 (0x26) + // Code size 34 (0x22) .maxstack 4 .locals init ([0] valuetype Experiment.Test/Repro& V_0, [1] class [mscorlib]System.Collections.IComparer V_1, [2] int32 V_2, [3] int32 V_3) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 6,6 : 6,11 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\Structs02.fs' + .line 6,6 : 6,11 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\Structs02.fs' IL_0000: ldarga.s obj IL_0002: stloc.0 IL_0003: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() @@ -98,19 +98,15 @@ IL_0018: ldloc.3 IL_0019: bge.s IL_001d - IL_001b: br.s IL_001f - - IL_001d: br.s IL_0021 - .line 100001,100001 : 0,0 '' - IL_001f: ldc.i4.m1 - IL_0020: ret + IL_001b: ldc.i4.m1 + IL_001c: ret .line 100001,100001 : 0,0 '' - IL_0021: ldloc.2 - IL_0022: ldloc.3 - IL_0023: cgt - IL_0025: ret + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: cgt + IL_0021: ret } // end of method Repro::CompareTo .method public hidebysig virtual final @@ -132,7 +128,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 44 (0x2c) + // Code size 40 (0x28) .maxstack 4 .locals init ([0] valuetype Experiment.Test/Repro V_0, [1] valuetype Experiment.Test/Repro& V_1, @@ -157,19 +153,15 @@ IL_001c: ldloc.s V_4 IL_001e: bge.s IL_0022 - IL_0020: br.s IL_0024 - - IL_0022: br.s IL_0026 - .line 100001,100001 : 0,0 '' - IL_0024: ldc.i4.m1 - IL_0025: ret + IL_0020: ldc.i4.m1 + IL_0021: ret .line 100001,100001 : 0,0 '' - IL_0026: ldloc.3 - IL_0027: ldloc.s V_4 - IL_0029: cgt - IL_002b: ret + IL_0022: ldloc.3 + IL_0023: ldloc.s V_4 + IL_0025: cgt + IL_0027: ret } // end of method Repro::CompareTo .method public hidebysig virtual final diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/StructsAsArrayElements01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/StructsAsArrayElements01.il.bsl index e3e7795ebd4..7beca501cef 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/StructsAsArrayElements01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/StructsAsArrayElements01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:3:0 + .ver 5:0:0:0 } .assembly StructsAsArrayElements01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.StructsAsArrayElements01 { - // Offset: 0x00000000 Length: 0x00000758 + // Offset: 0x00000000 Length: 0x00000754 } .mresource public FSharpOptimizationData.StructsAsArrayElements01 { - // Offset: 0x00000760 Length: 0x0000022C + // Offset: 0x00000758 Length: 0x0000022C } .module StructsAsArrayElements01.dll -// MVID: {5B17FC4F-29F3-6E68-A745-03834FFC175B} +// MVID: {60B68B7F-29F3-6E68-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00E30000 +// Image base: 0x06A80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,14 +66,14 @@ instance int32 CompareTo(valuetype StructsAsArrayElements01/T obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 38 (0x26) + // Code size 34 (0x22) .maxstack 4 .locals init ([0] valuetype StructsAsArrayElements01/T& V_0, [1] class [mscorlib]System.Collections.IComparer V_1, [2] int32 V_2, [3] int32 V_3) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 7,7 : 6,7 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\StructsAsArrayElements01.fs' + .line 7,7 : 6,7 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\StructsAsArrayElements01.fs' IL_0000: ldarga.s obj IL_0002: stloc.0 IL_0003: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() @@ -88,19 +88,15 @@ IL_0018: ldloc.3 IL_0019: bge.s IL_001d - IL_001b: br.s IL_001f - - IL_001d: br.s IL_0021 - .line 100001,100001 : 0,0 '' - IL_001f: ldc.i4.m1 - IL_0020: ret + IL_001b: ldc.i4.m1 + IL_001c: ret .line 100001,100001 : 0,0 '' - IL_0021: ldloc.2 - IL_0022: ldloc.3 - IL_0023: cgt - IL_0025: ret + IL_001d: ldloc.2 + IL_001e: ldloc.3 + IL_001f: cgt + IL_0021: ret } // end of method T::CompareTo .method public hidebysig virtual final @@ -122,7 +118,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 44 (0x2c) + // Code size 40 (0x28) .maxstack 4 .locals init ([0] valuetype StructsAsArrayElements01/T V_0, [1] valuetype StructsAsArrayElements01/T& V_1, @@ -147,19 +143,15 @@ IL_001c: ldloc.s V_4 IL_001e: bge.s IL_0022 - IL_0020: br.s IL_0024 - - IL_0022: br.s IL_0026 - .line 100001,100001 : 0,0 '' - IL_0024: ldc.i4.m1 - IL_0025: ret + IL_0020: ldc.i4.m1 + IL_0021: ret .line 100001,100001 : 0,0 '' - IL_0026: ldloc.3 - IL_0027: ldloc.s V_4 - IL_0029: cgt - IL_002b: ret + IL_0022: ldloc.3 + IL_0023: ldloc.s V_4 + IL_0025: cgt + IL_0027: ret } // end of method T::CompareTo .method public hidebysig virtual final diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/TryWith_NoFilterBlocks01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/TryWith_NoFilterBlocks01.il.bsl index 63da7e6e404..d053449a8d5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/TryWith_NoFilterBlocks01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/TryWith_NoFilterBlocks01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TryWith_NoFilterBlocks01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TryWith_NoFilterBlocks01 { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.TryWith_NoFilterBlocks01 { - // Offset: 0x00000168 Length: 0x0000005F + // Offset: 0x00000160 Length: 0x0000005F } .module TryWith_NoFilterBlocks01.exe -// MVID: {59B19213-3DEF-9A40-A745-03831392B159} +// MVID: {60B68B7F-3DEF-9A40-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x017A0000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== @@ -63,19 +63,19 @@ .method public static void main@() cil managed { .entrypoint - // Code size 40 (0x28) + // Code size 36 (0x24) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_0, [1] class [mscorlib]System.Exception V_1, [2] class [mscorlib]System.Exception e, [3] class [mscorlib]System.Exception V_3) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 3,5 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\TryWith_NoFilterBlocks01.fs' + .line 4,4 : 3,5 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\TryWith_NoFilterBlocks01.fs' .try { IL_0000: ldnull IL_0001: stloc.0 - IL_0002: leave.s IL_0025 + IL_0002: leave.s IL_0021 .line 5,5 : 2,6 '' } // end .try @@ -89,29 +89,25 @@ IL_000d: callvirt instance int32 [mscorlib]System.Object::GetHashCode() IL_0012: ldc.i4.0 IL_0013: ceq - IL_0015: brfalse.s IL_0019 + IL_0015: brfalse.s IL_001d - IL_0017: br.s IL_001b - - IL_0019: br.s IL_0021 - - IL_001b: ldloc.1 - IL_001c: stloc.3 + IL_0017: ldloc.1 + IL_0018: stloc.3 .line 6,6 : 35,37 '' - IL_001d: ldnull - IL_001e: stloc.0 - IL_001f: leave.s IL_0025 + IL_0019: ldnull + IL_001a: stloc.0 + IL_001b: leave.s IL_0021 .line 7,7 : 10,12 '' - IL_0021: ldnull - IL_0022: stloc.0 - IL_0023: leave.s IL_0025 + IL_001d: ldnull + IL_001e: stloc.0 + IL_001f: leave.s IL_0021 .line 100001,100001 : 0,0 '' } // end handler - IL_0025: ldloc.0 - IL_0026: pop - IL_0027: ret + IL_0021: ldloc.0 + IL_0022: pop + IL_0023: ret } // end of method $TryWith_NoFilterBlocks01::main@ } // end of class ''.$TryWith_NoFilterBlocks01 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/cas.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/cas.il.bsl index 5f937b00b51..301f28d9b64 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/cas.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Misc/cas.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly extern cas { @@ -36,20 +36,20 @@ } .mresource public FSharpSignatureData.cas { - // Offset: 0x00000000 Length: 0x000005DF + // Offset: 0x00000000 Length: 0x00000619 } .mresource public FSharpOptimizationData.cas { - // Offset: 0x000005E8 Length: 0x000000F3 + // Offset: 0x00000620 Length: 0x000000F3 } .module cas.exe -// MVID: {59B19213-35EA-18E3-A745-03831392B159} +// MVID: {60B68B7F-35EA-18E3-A745-03837F8BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x006A0000 +// Image base: 0x05250000 // =============== CLASS MEMBERS DECLARATION =================== @@ -76,7 +76,7 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Misc\\cas.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Misc\\cas.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.il.bsl index 18f8641994e..9387fcf5320 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.il.bsl @@ -50,13 +50,13 @@ // Offset: 0x000005F0 Length: 0x00000211 } .module Linq101Aggregates01.exe -// MVID: {5FCFFD0D-D281-4783-A745-03830DFDCF5F} +// MVID: {60B68B80-D281-4783-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00F40000 +// Image base: 0x06B70000 // =============== CLASS MEMBERS DECLARATION =================== @@ -105,7 +105,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -117,90 +117,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 12,12 : 9,33 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_factorsOf300() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_factorsOf300() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc .line 12,12 : 9,33 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 12,12 : 9,33 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc .line 13,13 : 9,17 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Aggregates01/uniqueFactors@12::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Aggregates01/uniqueFactors@12::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc .line 12,12 : 9,33 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Aggregates01/uniqueFactors@12::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Aggregates01/uniqueFactors@12::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method uniqueFactors@12::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -212,158 +206,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/uniqueFactors@12::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/uniqueFactors@12::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Aggregates01/uniqueFactors@12::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/uniqueFactors@12::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Aggregates01/uniqueFactors@12::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 12,12 : 9,33 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method uniqueFactors@12::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/uniqueFactors@12::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method uniqueFactors@12::get_CheckClose .method public strict virtual instance int32 @@ -436,7 +410,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -447,90 +421,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 21,21 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/numSum@21::pc .line 21,21 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 21,21 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/numSum@21::pc .line 22,22 : 9,16 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Aggregates01/numSum@21::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Aggregates01/numSum@21::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/numSum@21::pc .line 21,21 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/numSum@21::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Aggregates01/numSum@21::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Aggregates01/numSum@21::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method numSum@21::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -542,158 +510,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/numSum@21::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/numSum@21::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/numSum@21::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/numSum@21::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/numSum@21::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Aggregates01/numSum@21::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/numSum@21::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Aggregates01/numSum@21::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 21,21 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method numSum@21::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/numSum@21::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method numSum@21::get_CheckClose .method public strict virtual instance int32 @@ -804,7 +752,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -815,90 +763,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 30,30 : 9,26 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/totalChars@30::pc .line 30,30 : 9,26 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 30,30 : 9,26 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/totalChars@30::pc .line 31,31 : 9,25 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Aggregates01/totalChars@30::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Aggregates01/totalChars@30::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/totalChars@30::pc .line 30,30 : 9,26 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/totalChars@30::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Aggregates01/totalChars@30::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Aggregates01/totalChars@30::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method totalChars@30::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -910,158 +852,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/totalChars@30::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/totalChars@30::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/totalChars@30::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/totalChars@30::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/totalChars@30::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Aggregates01/totalChars@30::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/totalChars@30::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Aggregates01/totalChars@30::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 30,30 : 9,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method totalChars@30::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/totalChars@30::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method totalChars@30::get_CheckClose .method public strict virtual instance string @@ -1298,7 +1220,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -1309,91 +1231,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 42,42 : 13,26 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/sum@42::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/sum@42::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/sum@42::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/sum@42::pc .line 42,42 : 13,26 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 42,42 : 13,26 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/sum@42::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/sum@42::pc .line 43,43 : 13,33 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/sum@42::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/sum@42::pc .line 42,42 : 13,26 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/sum@42::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/sum@42::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method sum@42::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1405,158 +1321,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/sum@42::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/sum@42::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/sum@42::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/sum@42::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/sum@42::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/sum@42::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/sum@42::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/sum@42::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 42,42 : 13,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method sum@42::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/sum@42::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method sum@42::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -1657,7 +1553,7 @@ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,int32>,object> Invoke(class [System.Core]System.Linq.IGrouping`2 _arg2) cil managed { - // Code size 145 (0x91) + // Code size 141 (0x8d) .maxstack 8 .locals init ([0] class [System.Core]System.Linq.IGrouping`2 g, [1] int32 sum, @@ -1717,7 +1613,7 @@ IL_0055: ldloc.s V_9 IL_0057: stloc.s V_8 - IL_0059: leave.s IL_0079 + IL_0059: leave.s IL_0075 } // end .try finally @@ -1726,36 +1622,32 @@ IL_005d: isinst [mscorlib]System.IDisposable IL_0062: stloc.s V_10 IL_0064: ldloc.s V_10 - IL_0066: brfalse.s IL_006a - - IL_0068: br.s IL_006c - - IL_006a: br.s IL_0076 + IL_0066: brfalse.s IL_0072 .line 100001,100001 : 0,0 '' - IL_006c: ldloc.s V_10 - IL_006e: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_0073: ldnull - IL_0074: pop - IL_0075: endfinally + IL_0068: ldloc.s V_10 + IL_006a: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_006f: ldnull + IL_0070: pop + IL_0071: endfinally .line 100001,100001 : 0,0 '' - IL_0076: ldnull - IL_0077: pop - IL_0078: endfinally + IL_0072: ldnull + IL_0073: pop + IL_0074: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_0079: ldloc.s V_8 - IL_007b: stloc.1 + IL_0075: ldloc.s V_8 + IL_0077: stloc.1 .line 45,45 : 9,28 '' - IL_007c: ldarg.0 - IL_007d: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Aggregates01/'categories@40-3'::builder@ - IL_0082: ldloc.0 - IL_0083: ldloc.1 - IL_0084: newobj instance void class [mscorlib]System.Tuple`2,int32>::.ctor(!0, + IL_0078: ldarg.0 + IL_0079: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Aggregates01/'categories@40-3'::builder@ + IL_007e: ldloc.0 + IL_007f: ldloc.1 + IL_0080: newobj instance void class [mscorlib]System.Tuple`2,int32>::.ctor(!0, !1) - IL_0089: tail. - IL_008b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,int32>,object>(!!0) - IL_0090: ret + IL_0085: tail. + IL_0087: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,int32>,object>(!!0) + IL_008c: ret } // end of method 'categories@40-3'::Invoke } // end of class 'categories@40-3' @@ -1851,7 +1743,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -1862,90 +1754,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 49,49 : 22,41 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/minNum@49::pc .line 49,49 : 22,41 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 49,49 : 22,41 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/minNum@49::pc .line 49,49 : 42,49 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Aggregates01/minNum@49::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Aggregates01/minNum@49::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/minNum@49::pc .line 49,49 : 22,41 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/minNum@49::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Aggregates01/minNum@49::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Aggregates01/minNum@49::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method minNum@49::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1957,158 +1843,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/minNum@49::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/minNum@49::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/minNum@49::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/minNum@49::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/minNum@49::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Aggregates01/minNum@49::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/minNum@49::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Aggregates01/minNum@49::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 49,49 : 22,41 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method minNum@49::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/minNum@49::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method minNum@49::get_CheckClose .method public strict virtual instance int32 @@ -2219,7 +2085,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -2230,90 +2096,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 52,52 : 28,45 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/shortestWord@52::pc .line 52,52 : 28,45 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 52,52 : 28,45 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/shortestWord@52::pc .line 52,52 : 46,60 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Aggregates01/shortestWord@52::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Aggregates01/shortestWord@52::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/shortestWord@52::pc .line 52,52 : 28,45 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/shortestWord@52::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Aggregates01/shortestWord@52::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Aggregates01/shortestWord@52::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method shortestWord@52::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -2325,158 +2185,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try - { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/shortestWord@52::pc - IL_0020: switch ( - IL_0037, - IL_0039, - IL_003b, - IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + { + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_001d: switch ( + IL_0034, + IL_0037, + IL_003a, + IL_003d) + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/shortestWord@52::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/shortestWord@52::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/shortestWord@52::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Aggregates01/shortestWord@52::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/shortestWord@52::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Aggregates01/shortestWord@52::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 52,52 : 28,45 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method shortestWord@52::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/shortestWord@52::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method shortestWord@52::get_CheckClose .method public strict virtual instance string @@ -2713,7 +2553,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -2724,91 +2564,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 59,59 : 27,40 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/min@59::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/min@59::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/min@59::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/min@59::pc .line 59,59 : 27,40 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 59,59 : 27,40 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/min@59::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/min@59::pc .line 59,59 : 41,58 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/min@59::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/min@59::pc .line 59,59 : 27,40 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/min@59::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/min@59::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method min@59::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -2820,158 +2654,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/min@59::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/min@59::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/min@59::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/min@59::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/min@59::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/min@59::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/min@59::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/min@59::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 59,59 : 27,40 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method min@59::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/min@59::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method min@59::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -3341,7 +3155,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -3352,91 +3166,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 69,69 : 40,53 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/cheapestProducts@69::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/cheapestProducts@69::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc .line 69,69 : 40,53 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 69,69 : 40,53 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc .line 69,69 : 54,79 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc .line 69,69 : 40,53 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method cheapestProducts@69::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -3448,158 +3256,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/cheapestProducts@69::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/cheapestProducts@69::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/cheapestProducts@69::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/cheapestProducts@69::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 69,69 : 40,53 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method cheapestProducts@69::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/cheapestProducts@69::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method cheapestProducts@69::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -3844,7 +3632,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -3855,90 +3643,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 74,74 : 22,41 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/maxNum@74::pc .line 74,74 : 22,41 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 74,74 : 22,41 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/maxNum@74::pc .line 74,74 : 42,49 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Aggregates01/maxNum@74::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Aggregates01/maxNum@74::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/maxNum@74::pc .line 74,74 : 22,41 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/maxNum@74::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Aggregates01/maxNum@74::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Aggregates01/maxNum@74::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method maxNum@74::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -3950,158 +3732,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/maxNum@74::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/maxNum@74::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/maxNum@74::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxNum@74::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/maxNum@74::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Aggregates01/maxNum@74::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/maxNum@74::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Aggregates01/maxNum@74::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 74,74 : 22,41 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method maxNum@74::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/maxNum@74::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method maxNum@74::get_CheckClose .method public strict virtual instance int32 @@ -4212,7 +3974,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -4223,90 +3985,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 77,77 : 29,46 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/longestLength@77::pc .line 77,77 : 29,46 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 77,77 : 29,46 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/longestLength@77::pc .line 77,77 : 47,61 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Aggregates01/longestLength@77::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Aggregates01/longestLength@77::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/longestLength@77::pc .line 77,77 : 29,46 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/longestLength@77::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Aggregates01/longestLength@77::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Aggregates01/longestLength@77::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method longestLength@77::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -4318,158 +4074,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/longestLength@77::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/longestLength@77::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/longestLength@77::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/longestLength@77::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/longestLength@77::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Aggregates01/longestLength@77::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/longestLength@77::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Aggregates01/longestLength@77::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 77,77 : 29,46 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method longestLength@77::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/longestLength@77::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method longestLength@77::get_CheckClose .method public strict virtual instance string @@ -4706,7 +4442,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -4717,91 +4453,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 84,84 : 42,55 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/mostExpensivePrice@84::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/mostExpensivePrice@84::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc .line 84,84 : 42,55 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 84,84 : 42,55 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc .line 84,84 : 56,73 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc .line 84,84 : 42,55 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method mostExpensivePrice@84::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -4813,158 +4543,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensivePrice@84::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensivePrice@84::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 84,84 : 42,55 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method mostExpensivePrice@84::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/mostExpensivePrice@84::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method mostExpensivePrice@84::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -5316,7 +5026,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -5327,91 +5037,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 93,93 : 32,45 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/maxPrice@93::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/maxPrice@93::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/maxPrice@93::pc .line 93,93 : 32,45 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 93,93 : 32,45 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/maxPrice@93::pc .line 93,93 : 46,63 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/maxPrice@93::pc .line 93,93 : 32,45 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/maxPrice@93::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method maxPrice@93::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -5423,158 +5127,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/maxPrice@93::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/maxPrice@93::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/maxPrice@93::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/maxPrice@93::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/maxPrice@93::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/maxPrice@93::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 93,93 : 32,45 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method maxPrice@93::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/maxPrice@93::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method maxPrice@93::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -5695,7 +5379,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -5706,91 +5390,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 94,94 : 45,58 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/mostExpensiveProducts@94::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/mostExpensiveProducts@94::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc .line 94,94 : 45,58 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 94,94 : 45,58 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc .line 94,94 : 59,89 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc .line 94,94 : 45,58 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method mostExpensiveProducts@94::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -5802,158 +5480,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/mostExpensiveProducts@94::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/mostExpensiveProducts@94::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 94,94 : 45,58 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method mostExpensiveProducts@94::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/mostExpensiveProducts@94::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method mostExpensiveProducts@94::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -6203,7 +5861,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 162 (0xa2) + // Code size 156 (0x9c) .maxstack 6 .locals init ([0] float64 V_0, [1] float64 n) @@ -6214,90 +5872,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 100,100 : 26,46 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers2() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_numbers2() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Aggregates01/averageNum@100::pc .line 100,100 : 26,46 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 100,100 : 26,46 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Aggregates01/averageNum@100::pc .line 100,100 : 47,58 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld float64 Linq101Aggregates01/averageNum@100::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld float64 Linq101Aggregates01/averageNum@100::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Aggregates01/averageNum@100::pc .line 100,100 : 26,46 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Aggregates01/averageNum@100::pc - IL_0091: ldarg.0 - IL_0092: ldc.r8 0.0 - IL_009b: stfld float64 Linq101Aggregates01/averageNum@100::current - IL_00a0: ldc.i4.0 - IL_00a1: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_008b: ldarg.0 + IL_008c: ldc.r8 0.0 + IL_0095: stfld float64 Linq101Aggregates01/averageNum@100::current + IL_009a: ldc.i4.0 + IL_009b: ret } // end of method averageNum@100::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 156 (0x9c) + // Code size 144 (0x90) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -6313,7 +5965,7 @@ .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_008f + IL_0014: br IL_0087 .line 100001,100001 : 0,0 '' IL_0019: nop @@ -6323,144 +5975,124 @@ IL_001b: ldfld int32 Linq101Aggregates01/averageNum@100::pc IL_0020: switch ( IL_0037, - IL_0039, - IL_003b, - IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_003a, + IL_003d, + IL_0040) + IL_0035: br.s IL_0043 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0037: nop + IL_0038: br.s IL_0059 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_003a: nop + IL_003b: br.s IL_0045 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003d: nop + IL_003e: br.s IL_0044 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_0040: nop + IL_0041: br.s IL_0059 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0043: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/averageNum@100::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0044: nop + IL_0045: ldarg.0 + IL_0046: ldc.i4.3 + IL_0047: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_004c: ldarg.0 + IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averageNum@100::'enum' + IL_0052: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0057: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/averageNum@100::pc - IL_0068: ldarg.0 - IL_0069: ldc.r8 0.0 - IL_0072: stfld float64 Linq101Aggregates01/averageNum@100::current - IL_0077: ldnull - IL_0078: stloc.1 - IL_0079: leave.s IL_0087 + IL_0058: nop + IL_0059: ldarg.0 + IL_005a: ldc.i4.3 + IL_005b: stfld int32 Linq101Aggregates01/averageNum@100::pc + IL_0060: ldarg.0 + IL_0061: ldc.r8 0.0 + IL_006a: stfld float64 Linq101Aggregates01/averageNum@100::current + IL_006f: ldnull + IL_0070: stloc.1 + IL_0071: leave.s IL_007f } // end .try catch [mscorlib]System.Object { - IL_007b: castclass [mscorlib]System.Exception - IL_0080: stloc.2 + IL_0073: castclass [mscorlib]System.Exception + IL_0078: stloc.2 .line 100,100 : 26,46 '' - IL_0081: ldloc.2 - IL_0082: stloc.0 - IL_0083: ldnull - IL_0084: stloc.1 - IL_0085: leave.s IL_0087 + IL_0079: ldloc.2 + IL_007a: stloc.0 + IL_007b: ldnull + IL_007c: stloc.1 + IL_007d: leave.s IL_007f .line 100001,100001 : 0,0 '' } // end handler - IL_0087: ldloc.1 - IL_0088: pop + IL_007f: ldloc.1 + IL_0080: pop .line 100001,100001 : 0,0 '' - IL_0089: nop - IL_008a: br IL_0000 - - IL_008f: ldloc.0 - IL_0090: ldnull - IL_0091: cgt.un - IL_0093: brfalse.s IL_0097 - - IL_0095: br.s IL_0099 + IL_0081: nop + IL_0082: br IL_0000 - IL_0097: br.s IL_009b + IL_0087: ldloc.0 + IL_0088: ldnull + IL_0089: cgt.un + IL_008b: brfalse.s IL_008f .line 100001,100001 : 0,0 '' - IL_0099: ldloc.0 - IL_009a: throw + IL_008d: ldloc.0 + IL_008e: throw .line 100001,100001 : 0,0 '' - IL_009b: ret + IL_008f: ret } // end of method averageNum@100::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/averageNum@100::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method averageNum@100::get_CheckClose .method public strict virtual instance float64 @@ -6794,7 +6426,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 155 (0x9b) + // Code size 149 (0x95) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product x) @@ -6805,91 +6437,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0071 + IL_001b: nop + IL_001c: br.s IL_006b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006e + IL_001e: nop + IL_001f: br.s IL_0068 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0092 + IL_0021: nop + IL_0022: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 115,115 : 36,49 '' - IL_002b: ldarg.0 - IL_002c: ldarg.0 - IL_002d: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/averagePrice@115::g - IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0037: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_003c: ldarg.0 - IL_003d: ldc.i4.1 - IL_003e: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld class [System.Core]System.Linq.IGrouping`2 Linq101Aggregates01/averagePrice@115::g + IL_002c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0031: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld int32 Linq101Aggregates01/averagePrice@115::pc .line 115,115 : 36,49 '' - IL_0043: ldarg.0 - IL_0044: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_0049: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004e: brfalse.s IL_0071 - - IL_0050: ldarg.0 - IL_0051: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_0056: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005b: stloc.0 + IL_003d: ldarg.0 + IL_003e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_0043: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0048: brfalse.s IL_006b + + IL_004a: ldarg.0 + IL_004b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_0050: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0055: stloc.0 .line 115,115 : 36,49 '' - IL_005c: ldloc.0 - IL_005d: stloc.1 - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_0056: ldloc.0 + IL_0057: stloc.1 + IL_0058: ldarg.0 + IL_0059: ldc.i4.2 + IL_005a: stfld int32 Linq101Aggregates01/averagePrice@115::pc .line 115,115 : 50,71 '' - IL_0065: ldarg.0 - IL_0066: ldloc.1 - IL_0067: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current - IL_006c: ldc.i4.1 - IL_006d: ret + IL_005f: ldarg.0 + IL_0060: ldloc.1 + IL_0061: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current + IL_0066: ldc.i4.1 + IL_0067: ret .line 100001,100001 : 0,0 '' - IL_006e: nop - IL_006f: br.s IL_0043 + IL_0068: nop + IL_0069: br.s IL_003d - IL_0071: ldarg.0 - IL_0072: ldc.i4.3 - IL_0073: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_006b: ldarg.0 + IL_006c: ldc.i4.3 + IL_006d: stfld int32 Linq101Aggregates01/averagePrice@115::pc .line 115,115 : 36,49 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_007e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0083: nop - IL_0084: ldarg.0 - IL_0085: ldnull - IL_0086: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Aggregates01/averagePrice@115::pc - IL_0092: ldarg.0 - IL_0093: ldnull - IL_0094: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current - IL_0099: ldc.i4.0 - IL_009a: ret + IL_0072: ldarg.0 + IL_0073: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_0078: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldnull + IL_0080: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_008c: ldarg.0 + IL_008d: ldnull + IL_008e: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current + IL_0093: ldc.i4.0 + IL_0094: ret } // end of method averagePrice@115::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -6901,158 +6527,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Aggregates01/averagePrice@115::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Aggregates01/averagePrice@115::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Aggregates01/averagePrice@115::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Aggregates01/averagePrice@115::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Aggregates01/averagePrice@115::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Aggregates01/averagePrice@115::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 115,115 : 36,49 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method averagePrice@115::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Aggregates01/averagePrice@115::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method averagePrice@115::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -7153,7 +6759,7 @@ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,valuetype [mscorlib]System.Decimal>,object> Invoke(class [System.Core]System.Linq.IGrouping`2 _arg2) cil managed { - // Code size 230 (0xe6) + // Code size 222 (0xde) .maxstack 9 .locals init ([0] class [System.Core]System.Linq.IGrouping`2 g, [1] valuetype [mscorlib]System.Decimal averagePrice, @@ -7244,68 +6850,60 @@ IL_0080: br.s IL_0059 IL_0082: ldloc.s V_10 - IL_0084: brtrue.s IL_0088 - - IL_0086: br.s IL_008a - - IL_0088: br.s IL_0095 + IL_0084: brtrue.s IL_0091 .line 100001,100001 : 0,0 '' - IL_008a: ldstr "source" - IL_008f: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) - IL_0094: throw + IL_0086: ldstr "source" + IL_008b: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) + IL_0090: throw .line 100001,100001 : 0,0 '' - IL_0095: nop - IL_0096: ldloc.s V_9 - IL_0098: stloc.s V_11 - IL_009a: ldloc.s V_10 - IL_009c: stloc.s V_12 - IL_009e: ldloc.s V_11 - IL_00a0: ldloc.s V_12 - IL_00a2: call valuetype [netstandard]System.Decimal [netstandard]System.Convert::ToDecimal(int32) - IL_00a7: call valuetype [netstandard]System.Decimal [netstandard]System.Decimal::Divide(valuetype [netstandard]System.Decimal, + IL_0091: nop + IL_0092: ldloc.s V_9 + IL_0094: stloc.s V_11 + IL_0096: ldloc.s V_10 + IL_0098: stloc.s V_12 + IL_009a: ldloc.s V_11 + IL_009c: ldloc.s V_12 + IL_009e: call valuetype [netstandard]System.Decimal [netstandard]System.Convert::ToDecimal(int32) + IL_00a3: call valuetype [netstandard]System.Decimal [netstandard]System.Decimal::Divide(valuetype [netstandard]System.Decimal, valuetype [netstandard]System.Decimal) - IL_00ac: stloc.s V_8 - IL_00ae: leave.s IL_00ce + IL_00a8: stloc.s V_8 + IL_00aa: leave.s IL_00c6 } // end .try finally { - IL_00b0: ldloc.s V_7 - IL_00b2: isinst [mscorlib]System.IDisposable - IL_00b7: stloc.s V_13 - IL_00b9: ldloc.s V_13 - IL_00bb: brfalse.s IL_00bf - - IL_00bd: br.s IL_00c1 - - IL_00bf: br.s IL_00cb + IL_00ac: ldloc.s V_7 + IL_00ae: isinst [mscorlib]System.IDisposable + IL_00b3: stloc.s V_13 + IL_00b5: ldloc.s V_13 + IL_00b7: brfalse.s IL_00c3 .line 100001,100001 : 0,0 '' - IL_00c1: ldloc.s V_13 - IL_00c3: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_00c8: ldnull - IL_00c9: pop - IL_00ca: endfinally + IL_00b9: ldloc.s V_13 + IL_00bb: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_00c0: ldnull + IL_00c1: pop + IL_00c2: endfinally .line 100001,100001 : 0,0 '' - IL_00cb: ldnull - IL_00cc: pop - IL_00cd: endfinally + IL_00c3: ldnull + IL_00c4: pop + IL_00c5: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_00ce: ldloc.s V_8 - IL_00d0: stloc.1 + IL_00c6: ldloc.s V_8 + IL_00c8: stloc.1 .line 116,116 : 9,37 '' - IL_00d1: ldarg.0 - IL_00d2: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Aggregates01/'categories6@114-3'::builder@ - IL_00d7: ldloc.0 - IL_00d8: ldloc.1 - IL_00d9: newobj instance void class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>::.ctor(!0, + IL_00c9: ldarg.0 + IL_00ca: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Aggregates01/'categories6@114-3'::builder@ + IL_00cf: ldloc.0 + IL_00d0: ldloc.1 + IL_00d1: newobj instance void class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>::.ctor(!0, !1) - IL_00de: tail. - IL_00e0: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,valuetype [mscorlib]System.Decimal>,object>(!!0) - IL_00e5: ret + IL_00d6: tail. + IL_00d8: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,valuetype [mscorlib]System.Decimal>,object>(!!0) + IL_00dd: ret } // end of method 'categories6@114-3'::Invoke } // end of class 'categories6@114-3' @@ -7704,7 +7302,7 @@ .method public static void main@() cil managed { .entrypoint - // Code size 1765 (0x6e5) + // Code size 1741 (0x6cd) .maxstack 13 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 factorsOf300, [1] int32 uniqueFactors, @@ -7889,7 +7487,7 @@ IL_00f4: ldloc.s V_28 IL_00f6: stloc.s V_27 - IL_00f8: leave.s IL_0118 + IL_00f8: leave.s IL_0114 } // end .try finally @@ -7898,625 +7496,601 @@ IL_00fc: isinst [mscorlib]System.IDisposable IL_0101: stloc.s V_29 IL_0103: ldloc.s V_29 - IL_0105: brfalse.s IL_0109 - - IL_0107: br.s IL_010b - - IL_0109: br.s IL_0115 + IL_0105: brfalse.s IL_0111 .line 100001,100001 : 0,0 '' - IL_010b: ldloc.s V_29 - IL_010d: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_0112: ldnull - IL_0113: pop - IL_0114: endfinally + IL_0107: ldloc.s V_29 + IL_0109: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_010e: ldnull + IL_010f: pop + IL_0110: endfinally .line 100001,100001 : 0,0 '' - IL_0115: ldnull - IL_0116: pop - IL_0117: endfinally + IL_0111: ldnull + IL_0112: pop + IL_0113: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_0118: ldloc.s V_27 - IL_011a: dup - IL_011b: stsfld int32 ''.$Linq101Aggregates01::numSum@19 - IL_0120: stloc.3 + IL_0114: ldloc.s V_27 + IL_0116: dup + IL_0117: stsfld int32 ''.$Linq101Aggregates01::numSum@19 + IL_011c: stloc.3 .line 26,26 : 1,45 '' - IL_0121: ldstr "cherry" - IL_0126: ldstr "apple" - IL_012b: ldstr "blueberry" - IL_0130: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_0135: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_011d: ldstr "cherry" + IL_0122: ldstr "apple" + IL_0127: ldstr "blueberry" + IL_012c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_0131: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_013a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0136: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_013f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_013b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0144: dup - IL_0145: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::words@26 - IL_014a: stloc.s words - IL_014c: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0151: stloc.s V_30 - IL_0153: ldloc.s V_30 - IL_0155: stloc.s V_31 - IL_0157: ldnull - IL_0158: ldc.i4.0 - IL_0159: ldnull - IL_015a: newobj instance void Linq101Aggregates01/totalChars@30::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_0140: dup + IL_0141: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::words@26 + IL_0146: stloc.s words + IL_0148: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_014d: stloc.s V_30 + IL_014f: ldloc.s V_30 + IL_0151: stloc.s V_31 + IL_0153: ldnull + IL_0154: ldc.i4.0 + IL_0155: ldnull + IL_0156: newobj instance void Linq101Aggregates01/totalChars@30::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, string) - IL_015f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0164: stloc.s V_32 - IL_0166: ldsfld class Linq101Aggregates01/'totalChars@31-1' Linq101Aggregates01/'totalChars@31-1'::@_instance - IL_016b: stloc.s V_33 - IL_016d: ldloc.s V_32 - IL_016f: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::get_Source() - IL_0174: stloc.s V_34 - IL_0176: ldloc.s V_34 - IL_0178: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_017d: stloc.s V_35 + IL_015b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0160: stloc.s V_32 + IL_0162: ldsfld class Linq101Aggregates01/'totalChars@31-1' Linq101Aggregates01/'totalChars@31-1'::@_instance + IL_0167: stloc.s V_33 + IL_0169: ldloc.s V_32 + IL_016b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::get_Source() + IL_0170: stloc.s V_34 + IL_0172: ldloc.s V_34 + IL_0174: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0179: stloc.s V_35 .try { - IL_017f: ldc.i4.0 - IL_0180: stloc.s V_37 - IL_0182: ldloc.s V_35 - IL_0184: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() - IL_0189: brfalse.s IL_01a1 + IL_017b: ldc.i4.0 + IL_017c: stloc.s V_37 + IL_017e: ldloc.s V_35 + IL_0180: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() + IL_0185: brfalse.s IL_019d .line 31,31 : 9,25 '' - IL_018b: ldloc.s V_37 - IL_018d: ldloc.s V_33 - IL_018f: ldloc.s V_35 - IL_0191: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0196: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_019b: add.ovf - IL_019c: stloc.s V_37 + IL_0187: ldloc.s V_37 + IL_0189: ldloc.s V_33 + IL_018b: ldloc.s V_35 + IL_018d: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0192: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0197: add.ovf + IL_0198: stloc.s V_37 .line 100001,100001 : 0,0 '' - IL_019e: nop - IL_019f: br.s IL_0182 + IL_019a: nop + IL_019b: br.s IL_017e - IL_01a1: ldloc.s V_37 - IL_01a3: stloc.s V_36 - IL_01a5: leave.s IL_01c5 + IL_019d: ldloc.s V_37 + IL_019f: stloc.s V_36 + IL_01a1: leave.s IL_01bd } // end .try finally { - IL_01a7: ldloc.s V_35 - IL_01a9: isinst [mscorlib]System.IDisposable - IL_01ae: stloc.s V_38 - IL_01b0: ldloc.s V_38 - IL_01b2: brfalse.s IL_01b6 - - IL_01b4: br.s IL_01b8 - - IL_01b6: br.s IL_01c2 + IL_01a3: ldloc.s V_35 + IL_01a5: isinst [mscorlib]System.IDisposable + IL_01aa: stloc.s V_38 + IL_01ac: ldloc.s V_38 + IL_01ae: brfalse.s IL_01ba .line 100001,100001 : 0,0 '' - IL_01b8: ldloc.s V_38 - IL_01ba: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_01bf: ldnull - IL_01c0: pop - IL_01c1: endfinally + IL_01b0: ldloc.s V_38 + IL_01b2: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_01b7: ldnull + IL_01b8: pop + IL_01b9: endfinally .line 100001,100001 : 0,0 '' - IL_01c2: ldnull - IL_01c3: pop - IL_01c4: endfinally + IL_01ba: ldnull + IL_01bb: pop + IL_01bc: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_01c5: ldloc.s V_36 - IL_01c7: dup - IL_01c8: stsfld int32 ''.$Linq101Aggregates01::totalChars@28 - IL_01cd: stloc.s totalChars + IL_01bd: ldloc.s V_36 + IL_01bf: dup + IL_01c0: stsfld int32 ''.$Linq101Aggregates01::totalChars@28 + IL_01c5: stloc.s totalChars .line 35,35 : 1,32 '' - IL_01cf: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 [Utils]Utils::getProductList() - IL_01d4: dup - IL_01d5: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::products@35 - IL_01da: stloc.s products + IL_01c7: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 [Utils]Utils::getProductList() + IL_01cc: dup + IL_01cd: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::products@35 + IL_01d2: stloc.s products .line 37,46 : 1,21 '' - IL_01dc: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_01e1: stloc.s V_39 + IL_01d4: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_01d9: stloc.s V_39 + IL_01db: ldloc.s V_39 + IL_01dd: ldloc.s V_39 + IL_01df: ldloc.s V_39 + IL_01e1: ldloc.s V_39 IL_01e3: ldloc.s V_39 - IL_01e5: ldloc.s V_39 - IL_01e7: ldloc.s V_39 - IL_01e9: ldloc.s V_39 - IL_01eb: ldloc.s V_39 - IL_01ed: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_01f2: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_01f7: ldloc.s V_39 - IL_01f9: newobj instance void Linq101Aggregates01/categories@39::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_01fe: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_01e5: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_01ea: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_01ef: ldloc.s V_39 + IL_01f1: newobj instance void Linq101Aggregates01/categories@39::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_01f6: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0203: ldsfld class Linq101Aggregates01/'categories@40-1' Linq101Aggregates01/'categories@40-1'::@_instance - IL_0208: ldsfld class Linq101Aggregates01/'categories@40-2' Linq101Aggregates01/'categories@40-2'::@_instance - IL_020d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_01fb: ldsfld class Linq101Aggregates01/'categories@40-1' Linq101Aggregates01/'categories@40-1'::@_instance + IL_0200: ldsfld class Linq101Aggregates01/'categories@40-2' Linq101Aggregates01/'categories@40-2'::@_instance + IL_0205: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0212: ldloc.s V_39 - IL_0214: newobj instance void Linq101Aggregates01/'categories@40-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0219: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,int32>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_020a: ldloc.s V_39 + IL_020c: newobj instance void Linq101Aggregates01/'categories@40-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0211: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,int32>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_021e: ldsfld class Linq101Aggregates01/'categories@45-4' Linq101Aggregates01/'categories@45-4'::@_instance - IL_0223: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,int32>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0216: ldsfld class Linq101Aggregates01/'categories@45-4' Linq101Aggregates01/'categories@45-4'::@_instance + IL_021b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,int32>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0228: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_022d: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0232: dup - IL_0233: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories@37 - IL_0238: stloc.s categories - IL_023a: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_023f: ldnull - IL_0240: ldc.i4.0 - IL_0241: ldc.i4.0 - IL_0242: newobj instance void Linq101Aggregates01/minNum@49::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_0220: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_0225: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_022a: dup + IL_022b: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories@37 + IL_0230: stloc.s categories + IL_0232: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0237: ldnull + IL_0238: ldc.i4.0 + IL_0239: ldc.i4.0 + IL_023a: newobj instance void Linq101Aggregates01/minNum@49::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, int32) - IL_0247: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_024c: ldsfld class Linq101Aggregates01/'minNum@49-1' Linq101Aggregates01/'minNum@49-1'::@_instance - IL_0251: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MinBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_023f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0244: ldsfld class Linq101Aggregates01/'minNum@49-1' Linq101Aggregates01/'minNum@49-1'::@_instance + IL_0249: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MinBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0256: dup - IL_0257: stsfld int32 ''.$Linq101Aggregates01::minNum@49 - IL_025c: stloc.s minNum - IL_025e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0263: ldnull - IL_0264: ldc.i4.0 - IL_0265: ldnull - IL_0266: newobj instance void Linq101Aggregates01/shortestWord@52::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_024e: dup + IL_024f: stsfld int32 ''.$Linq101Aggregates01::minNum@49 + IL_0254: stloc.s minNum + IL_0256: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_025b: ldnull + IL_025c: ldc.i4.0 + IL_025d: ldnull + IL_025e: newobj instance void Linq101Aggregates01/shortestWord@52::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, string) - IL_026b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0270: ldsfld class Linq101Aggregates01/'shortestWord@52-1' Linq101Aggregates01/'shortestWord@52-1'::@_instance - IL_0275: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MinBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0263: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0268: ldsfld class Linq101Aggregates01/'shortestWord@52-1' Linq101Aggregates01/'shortestWord@52-1'::@_instance + IL_026d: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MinBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_027a: dup - IL_027b: stsfld int32 ''.$Linq101Aggregates01::shortestWord@52 - IL_0280: stloc.s shortestWord + IL_0272: dup + IL_0273: stsfld int32 ''.$Linq101Aggregates01::shortestWord@52 + IL_0278: stloc.s shortestWord .line 55,61 : 1,21 '' - IL_0282: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0287: stloc.s V_40 + IL_027a: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_027f: stloc.s V_40 + IL_0281: ldloc.s V_40 + IL_0283: ldloc.s V_40 + IL_0285: ldloc.s V_40 + IL_0287: ldloc.s V_40 IL_0289: ldloc.s V_40 - IL_028b: ldloc.s V_40 - IL_028d: ldloc.s V_40 - IL_028f: ldloc.s V_40 - IL_0291: ldloc.s V_40 - IL_0293: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_0298: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_029d: ldloc.s V_40 - IL_029f: newobj instance void Linq101Aggregates01/categories2@57::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_02a4: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_028b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_0290: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0295: ldloc.s V_40 + IL_0297: newobj instance void Linq101Aggregates01/categories2@57::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_029c: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_02a9: ldsfld class Linq101Aggregates01/'categories2@58-1' Linq101Aggregates01/'categories2@58-1'::@_instance - IL_02ae: ldsfld class Linq101Aggregates01/'categories2@58-2' Linq101Aggregates01/'categories2@58-2'::@_instance - IL_02b3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02a1: ldsfld class Linq101Aggregates01/'categories2@58-1' Linq101Aggregates01/'categories2@58-1'::@_instance + IL_02a6: ldsfld class Linq101Aggregates01/'categories2@58-2' Linq101Aggregates01/'categories2@58-2'::@_instance + IL_02ab: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_02b8: ldloc.s V_40 - IL_02ba: newobj instance void Linq101Aggregates01/'categories2@58-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_02bf: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02b0: ldloc.s V_40 + IL_02b2: newobj instance void Linq101Aggregates01/'categories2@58-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_02b7: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_02c4: ldsfld class Linq101Aggregates01/'categories2@60-4' Linq101Aggregates01/'categories2@60-4'::@_instance - IL_02c9: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02bc: ldsfld class Linq101Aggregates01/'categories2@60-4' Linq101Aggregates01/'categories2@60-4'::@_instance + IL_02c1: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_02ce: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_02d3: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_02d8: dup - IL_02d9: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories2@55 - IL_02de: stloc.s categories2 + IL_02c6: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_02cb: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_02d0: dup + IL_02d1: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories2@55 + IL_02d6: stloc.s categories2 .line 64,71 : 1,21 '' - IL_02e0: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_02e5: stloc.s V_41 + IL_02d8: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_02dd: stloc.s V_41 + IL_02df: ldloc.s V_41 + IL_02e1: ldloc.s V_41 + IL_02e3: ldloc.s V_41 + IL_02e5: ldloc.s V_41 IL_02e7: ldloc.s V_41 - IL_02e9: ldloc.s V_41 - IL_02eb: ldloc.s V_41 - IL_02ed: ldloc.s V_41 - IL_02ef: ldloc.s V_41 - IL_02f1: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_02f6: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_02fb: ldloc.s V_41 - IL_02fd: newobj instance void Linq101Aggregates01/categories3@66::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0302: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02e9: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_02ee: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_02f3: ldloc.s V_41 + IL_02f5: newobj instance void Linq101Aggregates01/categories3@66::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_02fa: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0307: ldsfld class Linq101Aggregates01/'categories3@67-1' Linq101Aggregates01/'categories3@67-1'::@_instance - IL_030c: ldsfld class Linq101Aggregates01/'categories3@67-2' Linq101Aggregates01/'categories3@67-2'::@_instance - IL_0311: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02ff: ldsfld class Linq101Aggregates01/'categories3@67-1' Linq101Aggregates01/'categories3@67-1'::@_instance + IL_0304: ldsfld class Linq101Aggregates01/'categories3@67-2' Linq101Aggregates01/'categories3@67-2'::@_instance + IL_0309: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0316: ldloc.s V_41 - IL_0318: newobj instance void Linq101Aggregates01/'categories3@67-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_031d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_030e: ldloc.s V_41 + IL_0310: newobj instance void Linq101Aggregates01/'categories3@67-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0315: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0322: ldsfld class Linq101Aggregates01/'categories3@70-4' Linq101Aggregates01/'categories3@70-4'::@_instance - IL_0327: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_031a: ldsfld class Linq101Aggregates01/'categories3@70-4' Linq101Aggregates01/'categories3@70-4'::@_instance + IL_031f: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_032c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2>,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_0331: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0336: dup - IL_0337: stsfld class [mscorlib]System.Tuple`2>[] ''.$Linq101Aggregates01::categories3@64 - IL_033c: stloc.s categories3 - IL_033e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0343: ldnull - IL_0344: ldc.i4.0 - IL_0345: ldc.i4.0 - IL_0346: newobj instance void Linq101Aggregates01/maxNum@74::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_0324: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2>,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_0329: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_032e: dup + IL_032f: stsfld class [mscorlib]System.Tuple`2>[] ''.$Linq101Aggregates01::categories3@64 + IL_0334: stloc.s categories3 + IL_0336: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_033b: ldnull + IL_033c: ldc.i4.0 + IL_033d: ldc.i4.0 + IL_033e: newobj instance void Linq101Aggregates01/maxNum@74::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, int32) - IL_034b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0350: ldsfld class Linq101Aggregates01/'maxNum@74-1' Linq101Aggregates01/'maxNum@74-1'::@_instance - IL_0355: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MaxBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0343: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0348: ldsfld class Linq101Aggregates01/'maxNum@74-1' Linq101Aggregates01/'maxNum@74-1'::@_instance + IL_034d: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MaxBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_035a: dup - IL_035b: stsfld int32 ''.$Linq101Aggregates01::maxNum@74 - IL_0360: stloc.s maxNum - IL_0362: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0367: ldnull - IL_0368: ldc.i4.0 - IL_0369: ldnull - IL_036a: newobj instance void Linq101Aggregates01/longestLength@77::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_0352: dup + IL_0353: stsfld int32 ''.$Linq101Aggregates01::maxNum@74 + IL_0358: stloc.s maxNum + IL_035a: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_035f: ldnull + IL_0360: ldc.i4.0 + IL_0361: ldnull + IL_0362: newobj instance void Linq101Aggregates01/longestLength@77::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, string) - IL_036f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0374: ldsfld class Linq101Aggregates01/'longestLength@77-1' Linq101Aggregates01/'longestLength@77-1'::@_instance - IL_0379: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MaxBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0367: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_036c: ldsfld class Linq101Aggregates01/'longestLength@77-1' Linq101Aggregates01/'longestLength@77-1'::@_instance + IL_0371: callvirt instance !!2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::MaxBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_037e: dup - IL_037f: stsfld int32 ''.$Linq101Aggregates01::longestLength@77 - IL_0384: stloc.s longestLength + IL_0376: dup + IL_0377: stsfld int32 ''.$Linq101Aggregates01::longestLength@77 + IL_037c: stloc.s longestLength .line 80,86 : 1,21 '' - IL_0386: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_038b: stloc.s V_42 + IL_037e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0383: stloc.s V_42 + IL_0385: ldloc.s V_42 + IL_0387: ldloc.s V_42 + IL_0389: ldloc.s V_42 + IL_038b: ldloc.s V_42 IL_038d: ldloc.s V_42 - IL_038f: ldloc.s V_42 - IL_0391: ldloc.s V_42 - IL_0393: ldloc.s V_42 - IL_0395: ldloc.s V_42 - IL_0397: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_039c: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_03a1: ldloc.s V_42 - IL_03a3: newobj instance void Linq101Aggregates01/categories4@82::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_03a8: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_038f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_0394: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0399: ldloc.s V_42 + IL_039b: newobj instance void Linq101Aggregates01/categories4@82::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_03a0: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_03ad: ldsfld class Linq101Aggregates01/'categories4@83-1' Linq101Aggregates01/'categories4@83-1'::@_instance - IL_03b2: ldsfld class Linq101Aggregates01/'categories4@83-2' Linq101Aggregates01/'categories4@83-2'::@_instance - IL_03b7: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03a5: ldsfld class Linq101Aggregates01/'categories4@83-1' Linq101Aggregates01/'categories4@83-1'::@_instance + IL_03aa: ldsfld class Linq101Aggregates01/'categories4@83-2' Linq101Aggregates01/'categories4@83-2'::@_instance + IL_03af: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_03bc: ldloc.s V_42 - IL_03be: newobj instance void Linq101Aggregates01/'categories4@83-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_03c3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03b4: ldloc.s V_42 + IL_03b6: newobj instance void Linq101Aggregates01/'categories4@83-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_03bb: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_03c8: ldsfld class Linq101Aggregates01/'categories4@85-4' Linq101Aggregates01/'categories4@85-4'::@_instance - IL_03cd: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03c0: ldsfld class Linq101Aggregates01/'categories4@85-4' Linq101Aggregates01/'categories4@85-4'::@_instance + IL_03c5: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_03d2: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_03d7: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_03dc: dup - IL_03dd: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories4@80 - IL_03e2: stloc.s categories4 + IL_03ca: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_03cf: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_03d4: dup + IL_03d5: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories4@80 + IL_03da: stloc.s categories4 .line 89,96 : 1,21 '' - IL_03e4: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_03e9: stloc.s V_43 + IL_03dc: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_03e1: stloc.s V_43 + IL_03e3: ldloc.s V_43 + IL_03e5: ldloc.s V_43 + IL_03e7: ldloc.s V_43 + IL_03e9: ldloc.s V_43 IL_03eb: ldloc.s V_43 - IL_03ed: ldloc.s V_43 - IL_03ef: ldloc.s V_43 - IL_03f1: ldloc.s V_43 - IL_03f3: ldloc.s V_43 - IL_03f5: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_03fa: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_03ff: ldloc.s V_43 - IL_0401: newobj instance void Linq101Aggregates01/categories5@91::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0406: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03ed: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_03f2: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_03f7: ldloc.s V_43 + IL_03f9: newobj instance void Linq101Aggregates01/categories5@91::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_03fe: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_040b: ldsfld class Linq101Aggregates01/'categories5@92-1' Linq101Aggregates01/'categories5@92-1'::@_instance - IL_0410: ldsfld class Linq101Aggregates01/'categories5@92-2' Linq101Aggregates01/'categories5@92-2'::@_instance - IL_0415: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0403: ldsfld class Linq101Aggregates01/'categories5@92-1' Linq101Aggregates01/'categories5@92-1'::@_instance + IL_0408: ldsfld class Linq101Aggregates01/'categories5@92-2' Linq101Aggregates01/'categories5@92-2'::@_instance + IL_040d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_041a: ldloc.s V_43 - IL_041c: newobj instance void Linq101Aggregates01/'categories5@92-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0421: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0412: ldloc.s V_43 + IL_0414: newobj instance void Linq101Aggregates01/'categories5@92-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0419: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0426: ldsfld class Linq101Aggregates01/'categories5@95-4' Linq101Aggregates01/'categories5@95-4'::@_instance - IL_042b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_041e: ldsfld class Linq101Aggregates01/'categories5@95-4' Linq101Aggregates01/'categories5@95-4'::@_instance + IL_0423: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal,class [mscorlib]System.Collections.Generic.IEnumerable`1>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0430: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2>,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_0435: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_043a: dup - IL_043b: stsfld class [mscorlib]System.Tuple`2>[] ''.$Linq101Aggregates01::categories5@89 - IL_0440: stloc.s categories5 + IL_0428: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2>,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_042d: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0432: dup + IL_0433: stsfld class [mscorlib]System.Tuple`2>[] ''.$Linq101Aggregates01::categories5@89 + IL_0438: stloc.s categories5 .line 99,99 : 1,66 '' - IL_0442: ldc.r8 5. - IL_044b: ldc.r8 4. - IL_0454: ldc.r8 1. - IL_045d: ldc.r8 3. - IL_0466: ldc.r8 9. - IL_046f: ldc.r8 8. - IL_0478: ldc.r8 6. - IL_0481: ldc.r8 7. - IL_048a: ldc.r8 2. - IL_0493: ldc.r8 0.0 - IL_049c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_04a1: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_043a: ldc.r8 5. + IL_0443: ldc.r8 4. + IL_044c: ldc.r8 1. + IL_0455: ldc.r8 3. + IL_045e: ldc.r8 9. + IL_0467: ldc.r8 8. + IL_0470: ldc.r8 6. + IL_0479: ldc.r8 7. + IL_0482: ldc.r8 2. + IL_048b: ldc.r8 0.0 + IL_0494: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_0499: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04a6: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_049e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04ab: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04a3: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04b0: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04a8: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04b5: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04ad: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04ba: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04b2: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04bf: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04b7: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04c4: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04bc: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04c9: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04c1: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04ce: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_04c6: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_04d3: dup - IL_04d4: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::numbers2@99 - IL_04d9: stloc.s numbers2 - IL_04db: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_04e0: stloc.s V_44 - IL_04e2: ldloc.s V_44 - IL_04e4: stloc.s V_45 - IL_04e6: ldnull - IL_04e7: ldc.i4.0 - IL_04e8: ldc.r8 0.0 - IL_04f1: newobj instance void Linq101Aggregates01/averageNum@100::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, + IL_04cb: dup + IL_04cc: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Aggregates01::numbers2@99 + IL_04d1: stloc.s numbers2 + IL_04d3: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_04d8: stloc.s V_44 + IL_04da: ldloc.s V_44 + IL_04dc: stloc.s V_45 + IL_04de: ldnull + IL_04df: ldc.i4.0 + IL_04e0: ldc.r8 0.0 + IL_04e9: newobj instance void Linq101Aggregates01/averageNum@100::.ctor(class [mscorlib]System.Collections.Generic.IEnumerator`1, int32, float64) - IL_04f6: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_04fb: stloc.s V_46 - IL_04fd: ldsfld class Linq101Aggregates01/'averageNum@100-1' Linq101Aggregates01/'averageNum@100-1'::@_instance - IL_0502: stloc.s V_47 - IL_0504: ldloc.s V_46 - IL_0506: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::get_Source() - IL_050b: stloc.s V_48 - IL_050d: ldloc.s V_48 - IL_050f: box class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_0514: brfalse.s IL_0518 - - IL_0516: br.s IL_0523 + IL_04ee: newobj instance void class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::.ctor(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_04f3: stloc.s V_46 + IL_04f5: ldsfld class Linq101Aggregates01/'averageNum@100-1' Linq101Aggregates01/'averageNum@100-1'::@_instance + IL_04fa: stloc.s V_47 + IL_04fc: ldloc.s V_46 + IL_04fe: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2::get_Source() + IL_0503: stloc.s V_48 + IL_0505: ldloc.s V_48 + IL_0507: box class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_050c: brfalse.s IL_0510 + + IL_050e: br.s IL_051b .line 100001,100001 : 0,0 '' - IL_0518: ldstr "source" - IL_051d: newobj instance void [netstandard]System.ArgumentNullException::.ctor(string) - IL_0522: throw + IL_0510: ldstr "source" + IL_0515: newobj instance void [netstandard]System.ArgumentNullException::.ctor(string) + IL_051a: throw .line 100001,100001 : 0,0 '' - IL_0523: nop - IL_0524: ldloc.s V_48 - IL_0526: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_052b: stloc.s V_49 + IL_051b: nop + IL_051c: ldloc.s V_48 + IL_051e: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0523: stloc.s V_49 .try { - IL_052d: ldc.r8 0.0 - IL_0536: stloc.s V_51 - IL_0538: ldc.i4.0 - IL_0539: stloc.s V_52 - IL_053b: ldloc.s V_49 - IL_053d: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() - IL_0542: brfalse.s IL_0560 - - IL_0544: ldloc.s V_51 - IL_0546: ldloc.s V_47 - IL_0548: ldloc.s V_49 - IL_054a: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1::get_Current() - IL_054f: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0554: add - IL_0555: stloc.s V_51 + IL_0525: ldc.r8 0.0 + IL_052e: stloc.s V_51 + IL_0530: ldc.i4.0 + IL_0531: stloc.s V_52 + IL_0533: ldloc.s V_49 + IL_0535: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() + IL_053a: brfalse.s IL_0558 + + IL_053c: ldloc.s V_51 + IL_053e: ldloc.s V_47 + IL_0540: ldloc.s V_49 + IL_0542: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0547: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_054c: add + IL_054d: stloc.s V_51 .line 100,100 : 47,58 '' - IL_0557: ldloc.s V_52 - IL_0559: ldc.i4.1 - IL_055a: add - IL_055b: stloc.s V_52 + IL_054f: ldloc.s V_52 + IL_0551: ldc.i4.1 + IL_0552: add + IL_0553: stloc.s V_52 .line 100001,100001 : 0,0 '' - IL_055d: nop - IL_055e: br.s IL_053b + IL_0555: nop + IL_0556: br.s IL_0533 - IL_0560: ldloc.s V_52 - IL_0562: brtrue.s IL_0566 - - IL_0564: br.s IL_0568 - - IL_0566: br.s IL_0573 + IL_0558: ldloc.s V_52 + IL_055a: brtrue.s IL_0567 .line 100001,100001 : 0,0 '' - IL_0568: ldstr "source" - IL_056d: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) - IL_0572: throw + IL_055c: ldstr "source" + IL_0561: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) + IL_0566: throw .line 100001,100001 : 0,0 '' - IL_0573: nop - IL_0574: ldloc.s V_51 - IL_0576: stloc.s V_53 - IL_0578: ldloc.s V_52 - IL_057a: stloc.s V_54 - IL_057c: ldloc.s V_53 - IL_057e: ldloc.s V_54 - IL_0580: conv.r8 - IL_0581: div - IL_0582: stloc.s V_50 - IL_0584: leave.s IL_05a4 + IL_0567: nop + IL_0568: ldloc.s V_51 + IL_056a: stloc.s V_53 + IL_056c: ldloc.s V_52 + IL_056e: stloc.s V_54 + IL_0570: ldloc.s V_53 + IL_0572: ldloc.s V_54 + IL_0574: conv.r8 + IL_0575: div + IL_0576: stloc.s V_50 + IL_0578: leave.s IL_0594 } // end .try finally { - IL_0586: ldloc.s V_49 - IL_0588: isinst [mscorlib]System.IDisposable - IL_058d: stloc.s V_55 - IL_058f: ldloc.s V_55 - IL_0591: brfalse.s IL_0595 - - IL_0593: br.s IL_0597 - - IL_0595: br.s IL_05a1 + IL_057a: ldloc.s V_49 + IL_057c: isinst [mscorlib]System.IDisposable + IL_0581: stloc.s V_55 + IL_0583: ldloc.s V_55 + IL_0585: brfalse.s IL_0591 .line 100001,100001 : 0,0 '' - IL_0597: ldloc.s V_55 - IL_0599: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_059e: ldnull - IL_059f: pop - IL_05a0: endfinally + IL_0587: ldloc.s V_55 + IL_0589: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_058e: ldnull + IL_058f: pop + IL_0590: endfinally .line 100001,100001 : 0,0 '' - IL_05a1: ldnull - IL_05a2: pop - IL_05a3: endfinally + IL_0591: ldnull + IL_0592: pop + IL_0593: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_05a4: ldloc.s V_50 - IL_05a6: dup - IL_05a7: stsfld float64 ''.$Linq101Aggregates01::averageNum@100 - IL_05ac: stloc.s averageNum - IL_05ae: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_05b3: stloc.s V_56 - IL_05b5: ldloc.s V_56 - IL_05b7: stloc.s V_57 - IL_05b9: ldloc.s V_56 - IL_05bb: ldloc.s V_56 - IL_05bd: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() - IL_05c2: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_05c7: ldloc.s V_56 - IL_05c9: newobj instance void Linq101Aggregates01/averageLength@105::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_05ce: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0594: ldloc.s V_50 + IL_0596: dup + IL_0597: stsfld float64 ''.$Linq101Aggregates01::averageNum@100 + IL_059c: stloc.s averageNum + IL_059e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_05a3: stloc.s V_56 + IL_05a5: ldloc.s V_56 + IL_05a7: stloc.s V_57 + IL_05a9: ldloc.s V_56 + IL_05ab: ldloc.s V_56 + IL_05ad: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_words() + IL_05b2: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_05b7: ldloc.s V_56 + IL_05b9: newobj instance void Linq101Aggregates01/averageLength@105::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_05be: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_05d3: stloc.s V_58 - IL_05d5: ldsfld class Linq101Aggregates01/'averageLength@107-1' Linq101Aggregates01/'averageLength@107-1'::@_instance - IL_05da: stloc.s V_59 - IL_05dc: ldloc.s V_58 - IL_05de: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_05e3: stloc.s V_60 - IL_05e5: ldloc.s V_60 - IL_05e7: box class [mscorlib]System.Collections.Generic.IEnumerable`1> - IL_05ec: brfalse.s IL_05f0 - - IL_05ee: br.s IL_05fb + IL_05c3: stloc.s V_58 + IL_05c5: ldsfld class Linq101Aggregates01/'averageLength@107-1' Linq101Aggregates01/'averageLength@107-1'::@_instance + IL_05ca: stloc.s V_59 + IL_05cc: ldloc.s V_58 + IL_05ce: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_05d3: stloc.s V_60 + IL_05d5: ldloc.s V_60 + IL_05d7: box class [mscorlib]System.Collections.Generic.IEnumerable`1> + IL_05dc: brfalse.s IL_05e0 + + IL_05de: br.s IL_05eb .line 100001,100001 : 0,0 '' - IL_05f0: ldstr "source" - IL_05f5: newobj instance void [netstandard]System.ArgumentNullException::.ctor(string) - IL_05fa: throw + IL_05e0: ldstr "source" + IL_05e5: newobj instance void [netstandard]System.ArgumentNullException::.ctor(string) + IL_05ea: throw .line 100001,100001 : 0,0 '' - IL_05fb: nop - IL_05fc: ldloc.s V_60 - IL_05fe: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1>::GetEnumerator() - IL_0603: stloc.s V_61 + IL_05eb: nop + IL_05ec: ldloc.s V_60 + IL_05ee: callvirt instance class [netstandard]System.Collections.Generic.IEnumerator`1 class [netstandard]System.Collections.Generic.IEnumerable`1>::GetEnumerator() + IL_05f3: stloc.s V_61 .try { - IL_0605: ldc.r8 0.0 - IL_060e: stloc.s V_63 - IL_0610: ldc.i4.0 - IL_0611: stloc.s V_64 - IL_0613: ldloc.s V_61 - IL_0615: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() - IL_061a: brfalse.s IL_0638 - - IL_061c: ldloc.s V_63 - IL_061e: ldloc.s V_59 - IL_0620: ldloc.s V_61 - IL_0622: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1>::get_Current() - IL_0627: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,float64>::Invoke(!0) - IL_062c: add - IL_062d: stloc.s V_63 + IL_05f5: ldc.r8 0.0 + IL_05fe: stloc.s V_63 + IL_0600: ldc.i4.0 + IL_0601: stloc.s V_64 + IL_0603: ldloc.s V_61 + IL_0605: callvirt instance bool [netstandard]System.Collections.IEnumerator::MoveNext() + IL_060a: brfalse.s IL_0628 + + IL_060c: ldloc.s V_63 + IL_060e: ldloc.s V_59 + IL_0610: ldloc.s V_61 + IL_0612: callvirt instance !0 class [netstandard]System.Collections.Generic.IEnumerator`1>::get_Current() + IL_0617: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,float64>::Invoke(!0) + IL_061c: add + IL_061d: stloc.s V_63 .line 107,107 : 9,21 '' - IL_062f: ldloc.s V_64 - IL_0631: ldc.i4.1 - IL_0632: add - IL_0633: stloc.s V_64 + IL_061f: ldloc.s V_64 + IL_0621: ldc.i4.1 + IL_0622: add + IL_0623: stloc.s V_64 .line 100001,100001 : 0,0 '' - IL_0635: nop - IL_0636: br.s IL_0613 + IL_0625: nop + IL_0626: br.s IL_0603 - IL_0638: ldloc.s V_64 - IL_063a: brtrue.s IL_063e - - IL_063c: br.s IL_0640 - - IL_063e: br.s IL_064b + IL_0628: ldloc.s V_64 + IL_062a: brtrue.s IL_0637 .line 100001,100001 : 0,0 '' - IL_0640: ldstr "source" - IL_0645: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) - IL_064a: throw + IL_062c: ldstr "source" + IL_0631: newobj instance void [netstandard]System.InvalidOperationException::.ctor(string) + IL_0636: throw .line 100001,100001 : 0,0 '' - IL_064b: nop - IL_064c: ldloc.s V_63 - IL_064e: stloc.s V_65 - IL_0650: ldloc.s V_64 - IL_0652: stloc.s V_66 - IL_0654: ldloc.s V_65 - IL_0656: ldloc.s V_66 - IL_0658: conv.r8 - IL_0659: div - IL_065a: stloc.s V_62 - IL_065c: leave.s IL_067c + IL_0637: nop + IL_0638: ldloc.s V_63 + IL_063a: stloc.s V_65 + IL_063c: ldloc.s V_64 + IL_063e: stloc.s V_66 + IL_0640: ldloc.s V_65 + IL_0642: ldloc.s V_66 + IL_0644: conv.r8 + IL_0645: div + IL_0646: stloc.s V_62 + IL_0648: leave.s IL_0664 } // end .try finally { - IL_065e: ldloc.s V_61 - IL_0660: isinst [mscorlib]System.IDisposable - IL_0665: stloc.s V_67 - IL_0667: ldloc.s V_67 - IL_0669: brfalse.s IL_066d - - IL_066b: br.s IL_066f - - IL_066d: br.s IL_0679 + IL_064a: ldloc.s V_61 + IL_064c: isinst [mscorlib]System.IDisposable + IL_0651: stloc.s V_67 + IL_0653: ldloc.s V_67 + IL_0655: brfalse.s IL_0661 .line 100001,100001 : 0,0 '' - IL_066f: ldloc.s V_67 - IL_0671: callvirt instance void [netstandard]System.IDisposable::Dispose() - IL_0676: ldnull - IL_0677: pop - IL_0678: endfinally + IL_0657: ldloc.s V_67 + IL_0659: callvirt instance void [netstandard]System.IDisposable::Dispose() + IL_065e: ldnull + IL_065f: pop + IL_0660: endfinally .line 100001,100001 : 0,0 '' - IL_0679: ldnull - IL_067a: pop - IL_067b: endfinally + IL_0661: ldnull + IL_0662: pop + IL_0663: endfinally .line 100001,100001 : 0,0 '' } // end handler - IL_067c: ldloc.s V_62 - IL_067e: dup - IL_067f: stsfld float64 ''.$Linq101Aggregates01::averageLength@103 - IL_0684: stloc.s averageLength + IL_0664: ldloc.s V_62 + IL_0666: dup + IL_0667: stsfld float64 ''.$Linq101Aggregates01::averageLength@103 + IL_066c: stloc.s averageLength .line 111,117 : 1,21 '' - IL_0686: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_068b: stloc.s V_68 - IL_068d: ldloc.s V_68 - IL_068f: ldloc.s V_68 - IL_0691: ldloc.s V_68 - IL_0693: ldloc.s V_68 - IL_0695: ldloc.s V_68 - IL_0697: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() - IL_069c: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_06a1: ldloc.s V_68 - IL_06a3: newobj instance void Linq101Aggregates01/categories6@113::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_06a8: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_066e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0673: stloc.s V_68 + IL_0675: ldloc.s V_68 + IL_0677: ldloc.s V_68 + IL_0679: ldloc.s V_68 + IL_067b: ldloc.s V_68 + IL_067d: ldloc.s V_68 + IL_067f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Aggregates01::get_products() + IL_0684: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0689: ldloc.s V_68 + IL_068b: newobj instance void Linq101Aggregates01/categories6@113::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0690: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_06ad: ldsfld class Linq101Aggregates01/'categories6@114-1' Linq101Aggregates01/'categories6@114-1'::@_instance - IL_06b2: ldsfld class Linq101Aggregates01/'categories6@114-2' Linq101Aggregates01/'categories6@114-2'::@_instance - IL_06b7: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0695: ldsfld class Linq101Aggregates01/'categories6@114-1' Linq101Aggregates01/'categories6@114-1'::@_instance + IL_069a: ldsfld class Linq101Aggregates01/'categories6@114-2' Linq101Aggregates01/'categories6@114-2'::@_instance + IL_069f: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,!!3> [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::GroupValBy(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_06bc: ldloc.s V_68 - IL_06be: newobj instance void Linq101Aggregates01/'categories6@114-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_06c3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_06a4: ldloc.s V_68 + IL_06a6: newobj instance void Linq101Aggregates01/'categories6@114-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_06ab: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2,valuetype [mscorlib]System.Decimal>,object>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_06c8: ldsfld class Linq101Aggregates01/'categories6@116-4' Linq101Aggregates01/'categories6@116-4'::@_instance - IL_06cd: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_06b0: ldsfld class Linq101Aggregates01/'categories6@116-4' Linq101Aggregates01/'categories6@116-4'::@_instance + IL_06b5: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,valuetype [mscorlib]System.Decimal>,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_06d2: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_06d7: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_06dc: dup - IL_06dd: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories6@111 - IL_06e2: stloc.s categories6 - IL_06e4: ret + IL_06ba: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_06bf: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_06c4: dup + IL_06c5: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Aggregates01::categories6@111 + IL_06ca: stloc.s categories6 + IL_06cc: ret } // end of method $Linq101Aggregates01::main@ } // end of class ''.$Linq101Aggregates01 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101ElementOperators01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101ElementOperators01.il.bsl index d39512533d5..d397b922df8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101ElementOperators01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101ElementOperators01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x00000388 Length: 0x00000127 } .module Linq101ElementOperators01.exe -// MVID: {5FCFFD0D-19D7-C20D-A745-03830DFDCF5F} +// MVID: {60B68B80-19D7-C20D-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05A30000 +// Image base: 0x054C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -100,7 +100,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product p) @@ -112,90 +112,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 12,12 : 9,29 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_products() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_products() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101ElementOperators01/products12@12::pc .line 12,12 : 9,29 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 12,12 : 9,29 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101ElementOperators01/products12@12::pc .line 13,13 : 9,33 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101ElementOperators01/products12@12::pc .line 12,12 : 9,29 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101ElementOperators01/products12@12::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method products12@12::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -207,158 +201,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101ElementOperators01/products12@12::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101ElementOperators01/products12@12::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101ElementOperators01/products12@12::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/products12@12::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101ElementOperators01/products12@12::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101ElementOperators01/products12@12::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101ElementOperators01/products12@12::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 12,12 : 9,29 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method products12@12::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101ElementOperators01/products12@12::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method products12@12::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -472,7 +446,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string s) @@ -483,90 +457,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 22,22 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_strings() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_strings() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101ElementOperators01/startsWithO@22::pc .line 22,22 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 22,22 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101ElementOperators01/startsWithO@22::pc .line 23,23 : 9,28 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101ElementOperators01/startsWithO@22::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101ElementOperators01/startsWithO@22::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101ElementOperators01/startsWithO@22::pc .line 22,22 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101ElementOperators01/startsWithO@22::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101ElementOperators01/startsWithO@22::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101ElementOperators01/startsWithO@22::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method startsWithO@22::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -578,158 +546,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101ElementOperators01/startsWithO@22::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101ElementOperators01/startsWithO@22::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/startsWithO@22::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101ElementOperators01/startsWithO@22::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101ElementOperators01/startsWithO@22::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101ElementOperators01/startsWithO@22::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101ElementOperators01/startsWithO@22::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 22,22 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method startsWithO@22::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101ElementOperators01/startsWithO@22::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method startsWithO@22::get_CheckClose .method public strict virtual instance string @@ -844,7 +792,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -855,90 +803,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 31,31 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc .line 31,31 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 31,31 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc .line 32,32 : 9,22 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc .line 31,31 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method firstNumOrDefault@31::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -950,158 +892,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/firstNumOrDefault@31::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101ElementOperators01/firstNumOrDefault@31::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 31,31 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method firstNumOrDefault@31::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101ElementOperators01/firstNumOrDefault@31::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method firstNumOrDefault@31::get_CheckClose .method public strict virtual instance int32 @@ -1174,7 +1096,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -1185,90 +1107,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 52,52 : 9,29 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_numbers2() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101ElementOperators01::get_numbers2() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc .line 52,52 : 9,29 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 52,52 : 9,29 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc .line 53,53 : 9,22 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc .line 52,52 : 9,29 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method fourthLowNum@52::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1280,158 +1196,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101ElementOperators01/fourthLowNum@52::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101ElementOperators01/fourthLowNum@52::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101ElementOperators01/fourthLowNum@52::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101ElementOperators01/fourthLowNum@52::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 52,52 : 9,29 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method fourthLowNum@52::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101ElementOperators01/fourthLowNum@52::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method fourthLowNum@52::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Grouping01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Grouping01.il.bsl index 6ef60480015..63f83c53c6a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Grouping01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Grouping01.il.bsl @@ -50,13 +50,13 @@ // Offset: 0x00000408 Length: 0x00000129 } .module Linq101Grouping01.exe -// MVID: {5FCFFD0D-FB79-E5BF-A745-03830DFDCF5F} +// MVID: {60B68B80-FB79-E5BF-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07010000 +// Image base: 0x07280000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Joins01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Joins01.il.bsl index a0065a9e340..04f6df47478 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Joins01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Joins01.il.bsl @@ -45,7 +45,7 @@ // Offset: 0x00000310 Length: 0x000000C3 } .module Linq101Joins01.exe -// MVID: {5FCFFD0D-151B-685E-A745-03830DFDCF5F} +// MVID: {60B68B80-151B-685E-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 @@ -955,7 +955,7 @@ .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [Utils]Utils/Product,string>,object> Invoke(class [Utils]Utils/Product _arg2) cil managed { - // Code size 69 (0x45) + // Code size 65 (0x41) .maxstack 9 .locals init ([0] class [Utils]Utils/Product p, [1] string t) @@ -968,41 +968,37 @@ IL_0008: ldnull IL_0009: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityIntrinsic(!!0, !!0) - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_001c + IL_000e: brfalse.s IL_0018 .line 41,41 : 40,55 '' - IL_0014: ldstr "(No products)" + IL_0010: ldstr "(No products)" .line 100001,100001 : 0,0 '' - IL_0019: nop - IL_001a: br.s IL_0023 + IL_0015: nop + IL_0016: br.s IL_001f .line 41,41 : 61,74 '' - IL_001c: ldloc.0 - IL_001d: callvirt instance string [Utils]Utils/Product::get_ProductName() + IL_0018: ldloc.0 + IL_0019: callvirt instance string [Utils]Utils/Product::get_ProductName() .line 100001,100001 : 0,0 '' - IL_0022: nop + IL_001e: nop .line 100001,100001 : 0,0 '' - IL_0023: stloc.1 + IL_001f: stloc.1 .line 42,42 : 9,22 '' - IL_0024: ldarg.0 - IL_0025: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Joins01/'q4@40-4'::builder@ - IL_002a: ldarg.0 - IL_002b: ldfld string Linq101Joins01/'q4@40-4'::c - IL_0030: ldarg.0 - IL_0031: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 Linq101Joins01/'q4@40-4'::ps - IL_0036: ldloc.0 - IL_0037: ldloc.1 - IL_0038: newobj instance void class [mscorlib]System.Tuple`4,class [Utils]Utils/Product,string>::.ctor(!0, + IL_0020: ldarg.0 + IL_0021: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Joins01/'q4@40-4'::builder@ + IL_0026: ldarg.0 + IL_0027: ldfld string Linq101Joins01/'q4@40-4'::c + IL_002c: ldarg.0 + IL_002d: ldfld class [mscorlib]System.Collections.Generic.IEnumerable`1 Linq101Joins01/'q4@40-4'::ps + IL_0032: ldloc.0 + IL_0033: ldloc.1 + IL_0034: newobj instance void class [mscorlib]System.Tuple`4,class [Utils]Utils/Product,string>::.ctor(!0, !1, !2, !3) - IL_003d: tail. - IL_003f: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,class [Utils]Utils/Product,string>,object>(!!0) - IL_0044: ret + IL_0039: tail. + IL_003b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,class [Utils]Utils/Product,string>,object>(!!0) + IL_0040: ret } // end of method 'q4@40-4'::Invoke } // end of class 'q4@40-4' diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Ordering01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Ordering01.il.bsl index d4afecd4237..e411a6d66e4 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Ordering01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Ordering01.il.bsl @@ -40,13 +40,13 @@ // Offset: 0x000003B8 Length: 0x00000134 } .module Linq101Ordering01.exe -// MVID: {5FCFFD0D-649A-6956-A745-03830DFDCF5F} +// MVID: {60B68B80-649A-6956-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06F50000 +// Image base: 0x06590000 // =============== CLASS MEMBERS DECLARATION =================== @@ -95,7 +95,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -107,90 +107,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 11,11 : 9,26 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Ordering01/sortedWords@11::pc .line 11,11 : 9,26 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 11,11 : 9,26 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Ordering01/sortedWords@11::pc .line 12,12 : 9,17 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Ordering01/sortedWords@11::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Ordering01/sortedWords@11::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Ordering01/sortedWords@11::pc .line 11,11 : 9,26 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Ordering01/sortedWords@11::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Ordering01/sortedWords@11::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Ordering01/sortedWords@11::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method sortedWords@11::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -202,158 +196,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Ordering01/sortedWords@11::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Ordering01/sortedWords@11::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Ordering01/sortedWords@11::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords@11::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Ordering01/sortedWords@11::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Ordering01/sortedWords@11::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Ordering01/sortedWords@11::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Ordering01/sortedWords@11::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 11,11 : 9,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method sortedWords@11::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Ordering01/sortedWords@11::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method sortedWords@11::get_CheckClose .method public strict virtual instance string @@ -464,7 +438,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -475,90 +449,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 18,18 : 9,26 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Ordering01/sortedWords2@18::pc .line 18,18 : 9,26 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 18,18 : 9,26 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Ordering01/sortedWords2@18::pc .line 19,19 : 9,26 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Ordering01/sortedWords2@18::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Ordering01/sortedWords2@18::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Ordering01/sortedWords2@18::pc .line 18,18 : 9,26 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Ordering01/sortedWords2@18::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Ordering01/sortedWords2@18::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Ordering01/sortedWords2@18::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method sortedWords2@18::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -570,158 +538,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Ordering01/sortedWords2@18::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Ordering01/sortedWords2@18::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedWords2@18::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Ordering01/sortedWords2@18::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Ordering01/sortedWords2@18::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Ordering01/sortedWords2@18::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Ordering01/sortedWords2@18::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 18,18 : 9,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method sortedWords2@18::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Ordering01/sortedWords2@18::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method sortedWords2@18::get_CheckClose .method public strict virtual instance string @@ -953,7 +901,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] class [Utils]Utils/Product V_0, [1] class [Utils]Utils/Product p) @@ -964,90 +912,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 44,44 : 9,29 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_products() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_products() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Ordering01/sortedProducts2@44::pc .line 44,44 : 9,29 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 44,44 : 9,29 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Ordering01/sortedProducts2@44::pc .line 45,45 : 9,40 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Ordering01/sortedProducts2@44::pc .line 44,44 : 9,29 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Ordering01/sortedProducts2@44::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method sortedProducts2@44::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1059,158 +1001,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Ordering01/sortedProducts2@44::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Ordering01/sortedProducts2@44::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedProducts2@44::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Ordering01/sortedProducts2@44::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Ordering01/sortedProducts2@44::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [Utils]Utils/Product Linq101Ordering01/sortedProducts2@44::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 44,44 : 9,29 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method sortedProducts2@44::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Ordering01/sortedProducts2@44::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method sortedProducts2@44::get_CheckClose .method public strict virtual instance class [Utils]Utils/Product @@ -1323,7 +1245,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string d) @@ -1334,90 +1256,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 52,52 : 9,27 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_digits() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Ordering01::get_digits() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Ordering01/sortedDigits@52::pc .line 52,52 : 9,27 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 52,52 : 9,27 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Ordering01/sortedDigits@52::pc .line 53,53 : 9,24 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Ordering01/sortedDigits@52::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Ordering01/sortedDigits@52::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Ordering01/sortedDigits@52::pc .line 52,52 : 9,27 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Ordering01/sortedDigits@52::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Ordering01/sortedDigits@52::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Ordering01/sortedDigits@52::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method sortedDigits@52::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1429,158 +1345,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Ordering01/sortedDigits@52::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Ordering01/sortedDigits@52::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Ordering01/sortedDigits@52::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Ordering01/sortedDigits@52::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Ordering01/sortedDigits@52::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Ordering01/sortedDigits@52::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Ordering01/sortedDigits@52::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 52,52 : 9,27 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method sortedDigits@52::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Ordering01/sortedDigits@52::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method sortedDigits@52::get_CheckClose .method public strict virtual instance string diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Partitioning01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Partitioning01.il.bsl index 584e444b9be..106eb0ebb8a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Partitioning01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Partitioning01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x000003D8 Length: 0x00000138 } .module Linq101Partitioning01.exe -// MVID: {5FCFFD0D-B280-A6A2-A745-03830DFDCF5F} +// MVID: {60B68B80-B280-A6A2-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x057C0000 +// Image base: 0x051F0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -100,7 +100,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -112,90 +112,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 12,12 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Partitioning01/first3Numbers@12::pc .line 12,12 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 12,12 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Partitioning01/first3Numbers@12::pc .line 13,13 : 9,15 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Partitioning01/first3Numbers@12::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Partitioning01/first3Numbers@12::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Partitioning01/first3Numbers@12::pc .line 12,12 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Partitioning01/first3Numbers@12::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Partitioning01/first3Numbers@12::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Partitioning01/first3Numbers@12::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method first3Numbers@12::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -207,158 +201,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Partitioning01/first3Numbers@12::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Partitioning01/first3Numbers@12::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/first3Numbers@12::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Partitioning01/first3Numbers@12::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Partitioning01/first3Numbers@12::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Partitioning01/first3Numbers@12::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Partitioning01/first3Numbers@12::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 12,12 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method first3Numbers@12::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Partitioning01/first3Numbers@12::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method first3Numbers@12::get_CheckClose .method public strict virtual instance int32 @@ -640,7 +614,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -651,90 +625,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 29,29 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc .line 29,29 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 29,29 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc .line 30,30 : 9,15 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc .line 29,29 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method allButFirst4Numbers@29::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -746,158 +714,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst4Numbers@29::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Partitioning01/allButFirst4Numbers@29::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 29,29 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method allButFirst4Numbers@29::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Partitioning01/allButFirst4Numbers@29::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method allButFirst4Numbers@29::get_CheckClose .method public strict virtual instance int32 @@ -1179,7 +1127,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -1190,90 +1138,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 45,45 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc .line 45,45 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 45,45 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc .line 46,46 : 9,26 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc .line 45,45 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method firstNumbersLessThan6@45::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1285,158 +1227,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/firstNumbersLessThan6@45::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 45,45 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method firstNumbersLessThan6@45::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Partitioning01/firstNumbersLessThan6@45::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method firstNumbersLessThan6@45::get_CheckClose .method public strict virtual instance int32 @@ -1549,7 +1471,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -1560,90 +1482,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 52,52 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Partitioning01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc .line 52,52 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 52,52 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc .line 53,53 : 9,31 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc .line 52,52 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method allButFirst3Numbers@52::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1655,158 +1571,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Partitioning01/allButFirst3Numbers@52::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Partitioning01/allButFirst3Numbers@52::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 52,52 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method allButFirst3Numbers@52::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Partitioning01/allButFirst3Numbers@52::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method allButFirst3Numbers@52::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.il.bsl index 865dfef3e73..d9062b1ca6b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x00000398 Length: 0x000000FF } .module Linq101Quantifiers01.exe -// MVID: {5FCFFD0D-76DD-E373-A745-03830DFDCF5F} +// MVID: {60B68B80-76DD-E373-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07250000 +// Image base: 0x06B80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -100,7 +100,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] string V_0, [1] string w) @@ -112,90 +112,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 12,12 : 9,26 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Quantifiers01::get_words() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Quantifiers01::get_words() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Quantifiers01/iAfterE@12::pc .line 12,12 : 9,26 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 12,12 : 9,26 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Quantifiers01/iAfterE@12::pc .line 13,13 : 9,34 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld string Linq101Quantifiers01/iAfterE@12::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld string Linq101Quantifiers01/iAfterE@12::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Quantifiers01/iAfterE@12::pc .line 12,12 : 9,26 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Quantifiers01/iAfterE@12::pc - IL_0091: ldarg.0 - IL_0092: ldnull - IL_0093: stfld string Linq101Quantifiers01/iAfterE@12::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld string Linq101Quantifiers01/iAfterE@12::current + IL_0092: ldc.i4.0 + IL_0093: ret } // end of method iAfterE@12::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -207,158 +201,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Quantifiers01/iAfterE@12::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Quantifiers01/iAfterE@12::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/iAfterE@12::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Quantifiers01/iAfterE@12::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Quantifiers01/iAfterE@12::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Quantifiers01/iAfterE@12::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Quantifiers01/iAfterE@12::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 12,12 : 9,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method iAfterE@12::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Quantifiers01/iAfterE@12::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method iAfterE@12::get_CheckClose .method public strict virtual instance string @@ -736,7 +710,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -747,90 +721,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 32,32 : 9,28 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Quantifiers01::get_numbers() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Quantifiers01::get_numbers() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc .line 32,32 : 9,28 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 32,32 : 9,28 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc .line 33,33 : 9,24 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101Quantifiers01/onlyOdd@32::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101Quantifiers01/onlyOdd@32::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc .line 32,32 : 9,28 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101Quantifiers01/onlyOdd@32::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101Quantifiers01/onlyOdd@32::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method onlyOdd@32::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -842,158 +810,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Quantifiers01/onlyOdd@32::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Quantifiers01/onlyOdd@32::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Quantifiers01/onlyOdd@32::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Quantifiers01/onlyOdd@32::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Quantifiers01/onlyOdd@32::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 32,32 : 9,28 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method onlyOdd@32::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Quantifiers01/onlyOdd@32::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method onlyOdd@32::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl index 8c78fe1a38c..597683f6987 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x00000648 Length: 0x00000204 } .module Linq101Select01.exe -// MVID: {5FCFFD0D-6057-8F80-A745-03830DFDCF5F} +// MVID: {60B68B80-6057-8F80-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x053E0000 +// Image base: 0x070F0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -145,7 +145,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 164 (0xa4) + // Code size 158 (0x9e) .maxstack 7 .locals init ([0] int32 n) .line 100001,100001 : 0,0 '' @@ -155,92 +155,86 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_007a + IL_001b: nop + IL_001c: br.s IL_0074 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0077 + IL_001e: nop + IL_001f: br.s IL_0071 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_009b + IL_0021: nop + IL_0022: br.s IL_0095 .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 13,13 : 9,23 '' - IL_002b: ldarg.0 - IL_002c: ldsfld class Linq101Select01/'numsPlusOne@12-1' Linq101Select01/'numsPlusOne@12-1'::@_instance - IL_0031: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() - IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0025: ldarg.0 + IL_0026: ldsfld class Linq101Select01/'numsPlusOne@12-1' Linq101Select01/'numsPlusOne@12-1'::@_instance + IL_002b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0040: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_0045: ldarg.0 - IL_0046: ldc.i4.1 - IL_0047: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_003f: ldarg.0 + IL_0040: ldc.i4.1 + IL_0041: stfld int32 Linq101Select01/numsPlusOne@13::pc .line 13,13 : 9,23 '' - IL_004c: ldarg.0 - IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_0052: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0057: brfalse.s IL_007a - - IL_0059: ldarg.0 - IL_005a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_005f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.0 - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_0046: ldarg.0 + IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0051: brfalse.s IL_0074 + + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005e: stloc.0 + IL_005f: ldarg.0 + IL_0060: ldc.i4.2 + IL_0061: stfld int32 Linq101Select01/numsPlusOne@13::pc .line 13,13 : 17,22 '' - IL_006c: ldarg.0 - IL_006d: ldloc.0 - IL_006e: ldc.i4.1 - IL_006f: add - IL_0070: stfld int32 Linq101Select01/numsPlusOne@13::current - IL_0075: ldc.i4.1 - IL_0076: ret + IL_0066: ldarg.0 + IL_0067: ldloc.0 + IL_0068: ldc.i4.1 + IL_0069: add + IL_006a: stfld int32 Linq101Select01/numsPlusOne@13::current + IL_006f: ldc.i4.1 + IL_0070: ret .line 100001,100001 : 0,0 '' - IL_0077: nop - IL_0078: br.s IL_004c + IL_0071: nop + IL_0072: br.s IL_0046 - IL_007a: ldarg.0 - IL_007b: ldc.i4.3 - IL_007c: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_0074: ldarg.0 + IL_0075: ldc.i4.3 + IL_0076: stfld int32 Linq101Select01/numsPlusOne@13::pc .line 13,13 : 9,23 '' - IL_0081: ldarg.0 - IL_0082: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_0087: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_008c: nop - IL_008d: ldarg.0 - IL_008e: ldnull - IL_008f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_0094: ldarg.0 - IL_0095: ldc.i4.3 - IL_0096: stfld int32 Linq101Select01/numsPlusOne@13::pc - IL_009b: ldarg.0 + IL_007b: ldarg.0 + IL_007c: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_0081: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0086: nop + IL_0087: ldarg.0 + IL_0088: ldnull + IL_0089: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_008e: ldarg.0 + IL_008f: ldc.i4.3 + IL_0090: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_0095: ldarg.0 + IL_0096: ldc.i4.0 + IL_0097: stfld int32 Linq101Select01/numsPlusOne@13::current IL_009c: ldc.i4.0 - IL_009d: stfld int32 Linq101Select01/numsPlusOne@13::current - IL_00a2: ldc.i4.0 - IL_00a3: ret + IL_009d: ret } // end of method numsPlusOne@13::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -252,158 +246,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/numsPlusOne@13::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/numsPlusOne@13::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/numsPlusOne@13::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/numsPlusOne@13::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/numsPlusOne@13::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101Select01/numsPlusOne@13::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/numsPlusOne@13::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101Select01/numsPlusOne@13::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 13,13 : 9,23 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method numsPlusOne@13::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/numsPlusOne@13::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method numsPlusOne@13::get_CheckClose .method public strict virtual instance int32 @@ -520,7 +494,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 167 (0xa7) + // Code size 161 (0xa1) .maxstack 7 .locals init ([0] class [Utils]Utils/Product p) .line 100001,100001 : 0,0 '' @@ -530,91 +504,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_007d + IL_001b: nop + IL_001c: br.s IL_0077 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_007a + IL_001e: nop + IL_001f: br.s IL_0074 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_009e + IL_0021: nop + IL_0022: br.s IL_0098 .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 22,22 : 9,31 '' - IL_002b: ldarg.0 - IL_002c: ldsfld class Linq101Select01/'productNames@21-1' Linq101Select01/'productNames@21-1'::@_instance - IL_0031: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_products() - IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0025: ldarg.0 + IL_0026: ldsfld class Linq101Select01/'productNames@21-1' Linq101Select01/'productNames@21-1'::@_instance + IL_002b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_products() + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0040: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_0045: ldarg.0 - IL_0046: ldc.i4.1 - IL_0047: stfld int32 Linq101Select01/productNames@22::pc + IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_003f: ldarg.0 + IL_0040: ldc.i4.1 + IL_0041: stfld int32 Linq101Select01/productNames@22::pc .line 22,22 : 9,31 '' - IL_004c: ldarg.0 - IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_0052: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0057: brfalse.s IL_007d - - IL_0059: ldarg.0 - IL_005a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_005f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.0 - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 Linq101Select01/productNames@22::pc + IL_0046: ldarg.0 + IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0051: brfalse.s IL_0077 + + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005e: stloc.0 + IL_005f: ldarg.0 + IL_0060: ldc.i4.2 + IL_0061: stfld int32 Linq101Select01/productNames@22::pc .line 22,22 : 17,30 '' - IL_006c: ldarg.0 - IL_006d: ldloc.0 - IL_006e: callvirt instance string [Utils]Utils/Product::get_ProductName() - IL_0073: stfld string Linq101Select01/productNames@22::current - IL_0078: ldc.i4.1 - IL_0079: ret + IL_0066: ldarg.0 + IL_0067: ldloc.0 + IL_0068: callvirt instance string [Utils]Utils/Product::get_ProductName() + IL_006d: stfld string Linq101Select01/productNames@22::current + IL_0072: ldc.i4.1 + IL_0073: ret .line 100001,100001 : 0,0 '' - IL_007a: nop - IL_007b: br.s IL_004c + IL_0074: nop + IL_0075: br.s IL_0046 - IL_007d: ldarg.0 - IL_007e: ldc.i4.3 - IL_007f: stfld int32 Linq101Select01/productNames@22::pc + IL_0077: ldarg.0 + IL_0078: ldc.i4.3 + IL_0079: stfld int32 Linq101Select01/productNames@22::pc .line 22,22 : 9,31 '' - IL_0084: ldarg.0 - IL_0085: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_008a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_008f: nop - IL_0090: ldarg.0 - IL_0091: ldnull - IL_0092: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_0097: ldarg.0 - IL_0098: ldc.i4.3 - IL_0099: stfld int32 Linq101Select01/productNames@22::pc - IL_009e: ldarg.0 - IL_009f: ldnull - IL_00a0: stfld string Linq101Select01/productNames@22::current - IL_00a5: ldc.i4.0 - IL_00a6: ret + IL_007e: ldarg.0 + IL_007f: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_0084: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0089: nop + IL_008a: ldarg.0 + IL_008b: ldnull + IL_008c: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_0091: ldarg.0 + IL_0092: ldc.i4.3 + IL_0093: stfld int32 Linq101Select01/productNames@22::pc + IL_0098: ldarg.0 + IL_0099: ldnull + IL_009a: stfld string Linq101Select01/productNames@22::current + IL_009f: ldc.i4.0 + IL_00a0: ret } // end of method productNames@22::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -626,158 +594,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/productNames@22::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/productNames@22::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/productNames@22::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/productNames@22::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productNames@22::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/productNames@22::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Select01/productNames@22::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/productNames@22::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Select01/productNames@22::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 22,22 : 9,31 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method productNames@22::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/productNames@22::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method productNames@22::get_CheckClose .method public strict virtual instance string @@ -894,7 +842,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 172 (0xac) + // Code size 166 (0xa6) .maxstack 7 .locals init ([0] int32 n) .line 100001,100001 : 0,0 '' @@ -904,92 +852,86 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0082 + IL_001b: nop + IL_001c: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_007f + IL_001e: nop + IL_001f: br.s IL_0079 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_00a3 + IL_0021: nop + IL_0022: br.s IL_009d .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 30,30 : 9,29 '' - IL_002b: ldarg.0 - IL_002c: ldsfld class Linq101Select01/'textNums@29-1' Linq101Select01/'textNums@29-1'::@_instance - IL_0031: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() - IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0025: ldarg.0 + IL_0026: ldsfld class Linq101Select01/'textNums@29-1' Linq101Select01/'textNums@29-1'::@_instance + IL_002b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0040: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_0045: ldarg.0 - IL_0046: ldc.i4.1 - IL_0047: stfld int32 Linq101Select01/textNums@30::pc + IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_003f: ldarg.0 + IL_0040: ldc.i4.1 + IL_0041: stfld int32 Linq101Select01/textNums@30::pc .line 30,30 : 9,29 '' - IL_004c: ldarg.0 - IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_0052: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0057: brfalse.s IL_0082 - - IL_0059: ldarg.0 - IL_005a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_005f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.0 - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 Linq101Select01/textNums@30::pc + IL_0046: ldarg.0 + IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0051: brfalse.s IL_007c + + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005e: stloc.0 + IL_005f: ldarg.0 + IL_0060: ldc.i4.2 + IL_0061: stfld int32 Linq101Select01/textNums@30::pc .line 30,30 : 17,28 '' - IL_006c: ldarg.0 - IL_006d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_strings() - IL_0072: ldloc.0 - IL_0073: callvirt instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Item(int32) - IL_0078: stfld string Linq101Select01/textNums@30::current - IL_007d: ldc.i4.1 - IL_007e: ret + IL_0066: ldarg.0 + IL_0067: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_strings() + IL_006c: ldloc.0 + IL_006d: callvirt instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Item(int32) + IL_0072: stfld string Linq101Select01/textNums@30::current + IL_0077: ldc.i4.1 + IL_0078: ret .line 100001,100001 : 0,0 '' - IL_007f: nop - IL_0080: br.s IL_004c + IL_0079: nop + IL_007a: br.s IL_0046 - IL_0082: ldarg.0 - IL_0083: ldc.i4.3 - IL_0084: stfld int32 Linq101Select01/textNums@30::pc + IL_007c: ldarg.0 + IL_007d: ldc.i4.3 + IL_007e: stfld int32 Linq101Select01/textNums@30::pc .line 30,30 : 9,29 '' - IL_0089: ldarg.0 - IL_008a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_008f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0094: nop - IL_0095: ldarg.0 - IL_0096: ldnull - IL_0097: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_009c: ldarg.0 - IL_009d: ldc.i4.3 - IL_009e: stfld int32 Linq101Select01/textNums@30::pc - IL_00a3: ldarg.0 - IL_00a4: ldnull - IL_00a5: stfld string Linq101Select01/textNums@30::current - IL_00aa: ldc.i4.0 - IL_00ab: ret + IL_0083: ldarg.0 + IL_0084: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_0089: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_008e: nop + IL_008f: ldarg.0 + IL_0090: ldnull + IL_0091: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_0096: ldarg.0 + IL_0097: ldc.i4.3 + IL_0098: stfld int32 Linq101Select01/textNums@30::pc + IL_009d: ldarg.0 + IL_009e: ldnull + IL_009f: stfld string Linq101Select01/textNums@30::current + IL_00a4: ldc.i4.0 + IL_00a5: ret } // end of method textNums@30::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1001,158 +943,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/textNums@30::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/textNums@30::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/textNums@30::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/textNums@30::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/textNums@30::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/textNums@30::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Select01/textNums@30::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/textNums@30::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Select01/textNums@30::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 30,30 : 9,29 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method textNums@30::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/textNums@30::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method textNums@30::get_CheckClose .method public strict virtual instance string @@ -1269,7 +1191,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 181 (0xb5) + // Code size 175 (0xaf) .maxstack 7 .locals init ([0] string w) .line 100001,100001 : 0,0 '' @@ -1279,95 +1201,89 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_008b + IL_001b: nop + IL_001c: br.s IL_0085 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0088 + IL_001e: nop + IL_001f: br.s IL_0082 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00ac + IL_0021: nop + IL_0022: br IL_00a6 .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 39,39 : 8,41 '' - IL_002e: ldarg.0 - IL_002f: ldsfld class Linq101Select01/'upperLowerWords@38-1' Linq101Select01/'upperLowerWords@38-1'::@_instance - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_words() - IL_0039: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,string>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0028: ldarg.0 + IL_0029: ldsfld class Linq101Select01/'upperLowerWords@38-1' Linq101Select01/'upperLowerWords@38-1'::@_instance + IL_002e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_words() + IL_0033: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,string>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0043: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_0048: ldarg.0 - IL_0049: ldc.i4.1 - IL_004a: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: stfld int32 Linq101Select01/upperLowerWords@39::pc .line 39,39 : 8,41 '' - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_005a: brfalse.s IL_008b - - IL_005c: ldarg.0 - IL_005d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_0062: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0067: stloc.0 - IL_0068: ldarg.0 - IL_0069: ldc.i4.2 - IL_006a: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_004f: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0054: brfalse.s IL_0085 + + IL_0056: ldarg.0 + IL_0057: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_005c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0061: stloc.0 + IL_0062: ldarg.0 + IL_0063: ldc.i4.2 + IL_0064: stfld int32 Linq101Select01/upperLowerWords@39::pc .line 39,39 : 16,40 '' - IL_006f: ldarg.0 + IL_0069: ldarg.0 + IL_006a: ldloc.0 + IL_006b: callvirt instance string [mscorlib]System.String::ToUpper() IL_0070: ldloc.0 - IL_0071: callvirt instance string [mscorlib]System.String::ToUpper() - IL_0076: ldloc.0 - IL_0077: callvirt instance string [mscorlib]System.String::ToLower() - IL_007c: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + IL_0071: callvirt instance string [mscorlib]System.String::ToLower() + IL_0076: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, !1) - IL_0081: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current - IL_0086: ldc.i4.1 - IL_0087: ret + IL_007b: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current + IL_0080: ldc.i4.1 + IL_0081: ret .line 100001,100001 : 0,0 '' - IL_0088: nop - IL_0089: br.s IL_004f + IL_0082: nop + IL_0083: br.s IL_0049 - IL_008b: ldarg.0 - IL_008c: ldc.i4.3 - IL_008d: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_0085: ldarg.0 + IL_0086: ldc.i4.3 + IL_0087: stfld int32 Linq101Select01/upperLowerWords@39::pc .line 39,39 : 8,41 '' - IL_0092: ldarg.0 - IL_0093: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_0098: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_009d: nop - IL_009e: ldarg.0 - IL_009f: ldnull - IL_00a0: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_00a5: ldarg.0 - IL_00a6: ldc.i4.3 - IL_00a7: stfld int32 Linq101Select01/upperLowerWords@39::pc - IL_00ac: ldarg.0 - IL_00ad: ldnull - IL_00ae: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current - IL_00b3: ldc.i4.0 - IL_00b4: ret + IL_008c: ldarg.0 + IL_008d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_0092: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0097: nop + IL_0098: ldarg.0 + IL_0099: ldnull + IL_009a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_009f: ldarg.0 + IL_00a0: ldc.i4.3 + IL_00a1: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_00a6: ldarg.0 + IL_00a7: ldnull + IL_00a8: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current + IL_00ad: ldc.i4.0 + IL_00ae: ret } // end of method upperLowerWords@39::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1379,158 +1295,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/upperLowerWords@39::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/upperLowerWords@39::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/upperLowerWords@39::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/upperLowerWords@39::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/upperLowerWords@39::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/upperLowerWords@39::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [mscorlib]System.Tuple`2 Linq101Select01/upperLowerWords@39::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 39,39 : 8,41 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method upperLowerWords@39::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/upperLowerWords@39::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method upperLowerWords@39::get_CheckClose .method public strict virtual instance class [mscorlib]System.Tuple`2 @@ -1647,7 +1543,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 186 (0xba) + // Code size 180 (0xb4) .maxstack 8 .locals init ([0] int32 n) .line 100001,100001 : 0,0 '' @@ -1657,99 +1553,93 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0090 + IL_001b: nop + IL_001c: br.s IL_008a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_008d + IL_001e: nop + IL_001f: br.s IL_0087 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00b1 + IL_0021: nop + IL_0022: br IL_00ab .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 46,46 : 9,42 '' - IL_002e: ldarg.0 - IL_002f: ldsfld class Linq101Select01/'digitOddEvens@45-1' Linq101Select01/'digitOddEvens@45-1'::@_instance - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() - IL_0039: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0028: ldarg.0 + IL_0029: ldsfld class Linq101Select01/'digitOddEvens@45-1' Linq101Select01/'digitOddEvens@45-1'::@_instance + IL_002e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbers() + IL_0033: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,int32>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0043: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_0048: ldarg.0 - IL_0049: ldc.i4.1 - IL_004a: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: stfld int32 Linq101Select01/digitOddEvens@46::pc .line 46,46 : 9,42 '' - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_005a: brfalse.s IL_0090 - - IL_005c: ldarg.0 - IL_005d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_0062: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0067: stloc.0 - IL_0068: ldarg.0 - IL_0069: ldc.i4.2 - IL_006a: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_004f: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0054: brfalse.s IL_008a + + IL_0056: ldarg.0 + IL_0057: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_005c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0061: stloc.0 + IL_0062: ldarg.0 + IL_0063: ldc.i4.2 + IL_0064: stfld int32 Linq101Select01/digitOddEvens@46::pc .line 46,46 : 17,41 '' - IL_006f: ldarg.0 - IL_0070: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_strings() + IL_0069: ldarg.0 + IL_006a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_strings() + IL_006f: ldloc.0 + IL_0070: callvirt instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Item(int32) IL_0075: ldloc.0 - IL_0076: callvirt instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Item(int32) - IL_007b: ldloc.0 - IL_007c: ldc.i4.2 - IL_007d: rem - IL_007e: ldc.i4.0 - IL_007f: ceq - IL_0081: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + IL_0076: ldc.i4.2 + IL_0077: rem + IL_0078: ldc.i4.0 + IL_0079: ceq + IL_007b: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, !1) - IL_0086: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current - IL_008b: ldc.i4.1 - IL_008c: ret + IL_0080: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current + IL_0085: ldc.i4.1 + IL_0086: ret .line 100001,100001 : 0,0 '' - IL_008d: nop - IL_008e: br.s IL_004f + IL_0087: nop + IL_0088: br.s IL_0049 - IL_0090: ldarg.0 - IL_0091: ldc.i4.3 - IL_0092: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_008a: ldarg.0 + IL_008b: ldc.i4.3 + IL_008c: stfld int32 Linq101Select01/digitOddEvens@46::pc .line 46,46 : 9,42 '' - IL_0097: ldarg.0 - IL_0098: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_009d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00a2: nop - IL_00a3: ldarg.0 - IL_00a4: ldnull - IL_00a5: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_00aa: ldarg.0 - IL_00ab: ldc.i4.3 - IL_00ac: stfld int32 Linq101Select01/digitOddEvens@46::pc - IL_00b1: ldarg.0 - IL_00b2: ldnull - IL_00b3: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current - IL_00b8: ldc.i4.0 - IL_00b9: ret + IL_0091: ldarg.0 + IL_0092: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_0097: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_009c: nop + IL_009d: ldarg.0 + IL_009e: ldnull + IL_009f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_00a4: ldarg.0 + IL_00a5: ldc.i4.3 + IL_00a6: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_00ab: ldarg.0 + IL_00ac: ldnull + IL_00ad: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current + IL_00b2: ldc.i4.0 + IL_00b3: ret } // end of method digitOddEvens@46::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1761,158 +1651,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/digitOddEvens@46::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/digitOddEvens@46::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/digitOddEvens@46::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/digitOddEvens@46::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/digitOddEvens@46::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/digitOddEvens@46::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [mscorlib]System.Tuple`2 Linq101Select01/digitOddEvens@46::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 46,46 : 9,42 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method digitOddEvens@46::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/digitOddEvens@46::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method digitOddEvens@46::get_CheckClose .method public strict virtual instance class [mscorlib]System.Tuple`2 @@ -2029,7 +1899,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 187 (0xbb) + // Code size 181 (0xb5) .maxstack 8 .locals init ([0] class [Utils]Utils/Product p) .line 100001,100001 : 0,0 '' @@ -2039,98 +1909,92 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0091 + IL_001b: nop + IL_001c: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_008e + IL_001e: nop + IL_001f: br.s IL_0088 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00b2 + IL_0021: nop + IL_0022: br IL_00ac .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 53,53 : 9,56 '' - IL_002e: ldarg.0 - IL_002f: ldsfld class Linq101Select01/'productInfos@52-1' Linq101Select01/'productInfos@52-1'::@_instance - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_products() - IL_0039: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0028: ldarg.0 + IL_0029: ldsfld class Linq101Select01/'productInfos@52-1' Linq101Select01/'productInfos@52-1'::@_instance + IL_002e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_products() + IL_0033: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0043: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_0048: ldarg.0 - IL_0049: ldc.i4.1 - IL_004a: stfld int32 Linq101Select01/productInfos@53::pc + IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: stfld int32 Linq101Select01/productInfos@53::pc .line 53,53 : 9,56 '' - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_005a: brfalse.s IL_0091 - - IL_005c: ldarg.0 - IL_005d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_0062: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0067: stloc.0 - IL_0068: ldarg.0 - IL_0069: ldc.i4.2 - IL_006a: stfld int32 Linq101Select01/productInfos@53::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_004f: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0054: brfalse.s IL_008b + + IL_0056: ldarg.0 + IL_0057: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_005c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0061: stloc.0 + IL_0062: ldarg.0 + IL_0063: ldc.i4.2 + IL_0064: stfld int32 Linq101Select01/productInfos@53::pc .line 53,53 : 17,55 '' - IL_006f: ldarg.0 + IL_0069: ldarg.0 + IL_006a: ldloc.0 + IL_006b: callvirt instance string [Utils]Utils/Product::get_ProductName() IL_0070: ldloc.0 - IL_0071: callvirt instance string [Utils]Utils/Product::get_ProductName() + IL_0071: callvirt instance string [Utils]Utils/Product::get_Category() IL_0076: ldloc.0 - IL_0077: callvirt instance string [Utils]Utils/Product::get_Category() - IL_007c: ldloc.0 - IL_007d: callvirt instance valuetype [mscorlib]System.Decimal [Utils]Utils/Product::get_UnitPrice() - IL_0082: newobj instance void class [mscorlib]System.Tuple`3::.ctor(!0, + IL_0077: callvirt instance valuetype [mscorlib]System.Decimal [Utils]Utils/Product::get_UnitPrice() + IL_007c: newobj instance void class [mscorlib]System.Tuple`3::.ctor(!0, !1, !2) - IL_0087: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current - IL_008c: ldc.i4.1 - IL_008d: ret + IL_0081: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current + IL_0086: ldc.i4.1 + IL_0087: ret .line 100001,100001 : 0,0 '' - IL_008e: nop - IL_008f: br.s IL_004f + IL_0088: nop + IL_0089: br.s IL_0049 - IL_0091: ldarg.0 - IL_0092: ldc.i4.3 - IL_0093: stfld int32 Linq101Select01/productInfos@53::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.3 + IL_008d: stfld int32 Linq101Select01/productInfos@53::pc .line 53,53 : 9,56 '' - IL_0098: ldarg.0 - IL_0099: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_009e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00a3: nop - IL_00a4: ldarg.0 - IL_00a5: ldnull - IL_00a6: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_00ab: ldarg.0 - IL_00ac: ldc.i4.3 - IL_00ad: stfld int32 Linq101Select01/productInfos@53::pc - IL_00b2: ldarg.0 - IL_00b3: ldnull - IL_00b4: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current - IL_00b9: ldc.i4.0 - IL_00ba: ret + IL_0092: ldarg.0 + IL_0093: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_0098: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_009d: nop + IL_009e: ldarg.0 + IL_009f: ldnull + IL_00a0: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_00a5: ldarg.0 + IL_00a6: ldc.i4.3 + IL_00a7: stfld int32 Linq101Select01/productInfos@53::pc + IL_00ac: ldarg.0 + IL_00ad: ldnull + IL_00ae: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current + IL_00b3: ldc.i4.0 + IL_00b4: ret } // end of method productInfos@53::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -2142,158 +2006,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Select01/productInfos@53::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Select01/productInfos@53::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Select01/productInfos@53::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Select01/productInfos@53::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Select01/productInfos@53::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Select01/productInfos@53::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Select01/productInfos@53::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld class [mscorlib]System.Tuple`3 Linq101Select01/productInfos@53::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 53,53 : 9,56 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method productInfos@53::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Select01/productInfos@53::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method productInfos@53::get_CheckClose .method public strict virtual instance class [mscorlib]System.Tuple`3 @@ -3978,7 +3822,7 @@ .method public static void main@() cil managed { .entrypoint - // Code size 1128 (0x468) + // Code size 1124 (0x464) .maxstack 13 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 numbers, [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 numsPlusOne, @@ -4236,214 +4080,210 @@ class [mscorlib]System.Collections.IEqualityComparer) IL_0238: ldc.i4.0 IL_0239: ceq - IL_023b: brfalse.s IL_023f - - IL_023d: br.s IL_0241 - - IL_023f: br.s IL_025b + IL_023b: brfalse.s IL_0257 .line 64,64 : 60,84 '' - IL_0241: ldstr "lowNums failed" - IL_0246: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_024b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0250: pop + IL_023d: ldstr "lowNums failed" + IL_0242: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0247: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_024c: pop .line 64,64 : 86,92 '' - IL_0251: ldc.i4.1 - IL_0252: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0257: pop + IL_024d: ldc.i4.1 + IL_024e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0253: pop .line 100001,100001 : 0,0 '' - IL_0258: nop - IL_0259: br.s IL_025c + IL_0254: nop + IL_0255: br.s IL_0258 .line 100001,100001 : 0,0 '' - IL_025b: nop + IL_0257: nop .line 67,67 : 1,37 '' - IL_025c: ldc.i4.0 - IL_025d: ldc.i4.2 - IL_025e: ldc.i4.4 - IL_025f: ldc.i4.5 - IL_0260: ldc.i4.6 - IL_0261: ldc.i4.8 - IL_0262: ldc.i4.s 9 - IL_0264: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_0269: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0258: ldc.i4.0 + IL_0259: ldc.i4.2 + IL_025a: ldc.i4.4 + IL_025b: ldc.i4.5 + IL_025c: ldc.i4.6 + IL_025d: ldc.i4.8 + IL_025e: ldc.i4.s 9 + IL_0260: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_0265: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_026e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_026a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0273: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_026f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0278: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0274: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_027d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0279: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0282: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_027e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0287: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0283: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_028c: dup - IL_028d: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbersA@67 - IL_0292: stloc.s numbersA + IL_0288: dup + IL_0289: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbersA@67 + IL_028e: stloc.s numbersA .line 68,68 : 1,31 '' - IL_0294: ldc.i4.1 - IL_0295: ldc.i4.3 - IL_0296: ldc.i4.5 - IL_0297: ldc.i4.7 - IL_0298: ldc.i4.8 - IL_0299: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_029e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0290: ldc.i4.1 + IL_0291: ldc.i4.3 + IL_0292: ldc.i4.5 + IL_0293: ldc.i4.7 + IL_0294: ldc.i4.8 + IL_0295: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_029a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_02a3: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_029f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_02a8: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_02a4: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_02ad: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_02a9: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_02b2: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_02ae: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_02b7: dup - IL_02b8: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbersB@68 - IL_02bd: stloc.s numbersB + IL_02b3: dup + IL_02b4: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbersB@68 + IL_02b9: stloc.s numbersB .line 70,76 : 1,21 '' - IL_02bf: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_02c4: stloc.s V_30 + IL_02bb: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_02c0: stloc.s V_30 + IL_02c2: ldloc.s V_30 + IL_02c4: ldloc.s V_30 IL_02c6: ldloc.s V_30 IL_02c8: ldloc.s V_30 - IL_02ca: ldloc.s V_30 - IL_02cc: ldloc.s V_30 - IL_02ce: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbersA() - IL_02d3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_02d8: ldloc.s V_30 - IL_02da: newobj instance void Linq101Select01/pairs@72::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_02df: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02ca: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_numbersA() + IL_02cf: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_02d4: ldloc.s V_30 + IL_02d6: newobj instance void Linq101Select01/pairs@72::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_02db: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_02e4: ldsfld class Linq101Select01/'pairs@74-2' Linq101Select01/'pairs@74-2'::@_instance - IL_02e9: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02e0: ldsfld class Linq101Select01/'pairs@74-2' Linq101Select01/'pairs@74-2'::@_instance + IL_02e5: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_02ee: ldsfld class Linq101Select01/'pairs@75-3' Linq101Select01/'pairs@75-3'::@_instance - IL_02f3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_02ea: ldsfld class Linq101Select01/'pairs@75-3' Linq101Select01/'pairs@75-3'::@_instance + IL_02ef: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_02f8: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_02fd: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0302: dup - IL_0303: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Select01::pairs@70 - IL_0308: stloc.s pairs + IL_02f4: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_02f9: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_02fe: dup + IL_02ff: stsfld class [mscorlib]System.Tuple`2[] ''.$Linq101Select01::pairs@70 + IL_0304: stloc.s pairs .line 79,79 : 1,34 '' - IL_030a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 [Utils]Utils::getCustomerList() - IL_030f: dup - IL_0310: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::customers@79 - IL_0315: stloc.s customers + IL_0306: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 [Utils]Utils::getCustomerList() + IL_030b: dup + IL_030c: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::customers@79 + IL_0311: stloc.s customers .line 80,86 : 1,21 '' - IL_0317: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_031c: stloc.s V_31 + IL_0313: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0318: stloc.s V_31 + IL_031a: ldloc.s V_31 + IL_031c: ldloc.s V_31 IL_031e: ldloc.s V_31 IL_0320: ldloc.s V_31 - IL_0322: ldloc.s V_31 - IL_0324: ldloc.s V_31 - IL_0326: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() - IL_032b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0330: ldloc.s V_31 - IL_0332: newobj instance void Linq101Select01/orders@82::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0337: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0322: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() + IL_0327: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_032c: ldloc.s V_31 + IL_032e: newobj instance void Linq101Select01/orders@82::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0333: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_033c: ldsfld class Linq101Select01/'orders@84-2' Linq101Select01/'orders@84-2'::@_instance - IL_0341: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0338: ldsfld class Linq101Select01/'orders@84-2' Linq101Select01/'orders@84-2'::@_instance + IL_033d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0346: ldsfld class Linq101Select01/'orders@85-3' Linq101Select01/'orders@85-3'::@_instance - IL_034b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0342: ldsfld class Linq101Select01/'orders@85-3' Linq101Select01/'orders@85-3'::@_instance + IL_0347: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0350: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_0355: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_035a: dup - IL_035b: stsfld class [mscorlib]System.Tuple`3[] ''.$Linq101Select01::orders@80 - IL_0360: stloc.s orders + IL_034c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_0351: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0356: dup + IL_0357: stsfld class [mscorlib]System.Tuple`3[] ''.$Linq101Select01::orders@80 + IL_035c: stloc.s orders .line 89,95 : 1,21 '' - IL_0362: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_0367: stloc.s V_32 + IL_035e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0363: stloc.s V_32 + IL_0365: ldloc.s V_32 + IL_0367: ldloc.s V_32 IL_0369: ldloc.s V_32 IL_036b: ldloc.s V_32 - IL_036d: ldloc.s V_32 - IL_036f: ldloc.s V_32 - IL_0371: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() - IL_0376: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_037b: ldloc.s V_32 - IL_037d: newobj instance void Linq101Select01/orders2@91::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0382: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_036d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() + IL_0372: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0377: ldloc.s V_32 + IL_0379: newobj instance void Linq101Select01/orders2@91::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_037e: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0387: ldsfld class Linq101Select01/'orders2@93-2' Linq101Select01/'orders2@93-2'::@_instance - IL_038c: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0383: ldsfld class Linq101Select01/'orders2@93-2' Linq101Select01/'orders2@93-2'::@_instance + IL_0388: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0391: ldsfld class Linq101Select01/'orders2@94-3' Linq101Select01/'orders2@94-3'::@_instance - IL_0396: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_038d: ldsfld class Linq101Select01/'orders2@94-3' Linq101Select01/'orders2@94-3'::@_instance + IL_0392: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_039b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_03a0: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_03a5: dup - IL_03a6: stsfld class [mscorlib]System.Tuple`3[] ''.$Linq101Select01::orders2@89 - IL_03ab: stloc.s orders2 - IL_03ad: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_03b2: stloc.s V_33 + IL_0397: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_039c: call !!0[] [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::ToArray>(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_03a1: dup + IL_03a2: stsfld class [mscorlib]System.Tuple`3[] ''.$Linq101Select01::orders2@89 + IL_03a7: stloc.s orders2 + IL_03a9: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_03ae: stloc.s V_33 + IL_03b0: ldloc.s V_33 + IL_03b2: ldloc.s V_33 IL_03b4: ldloc.s V_33 IL_03b6: ldloc.s V_33 - IL_03b8: ldloc.s V_33 - IL_03ba: ldloc.s V_33 - IL_03bc: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() - IL_03c1: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_03c6: ldloc.s V_33 - IL_03c8: newobj instance void Linq101Select01/orders3@100::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_03cd: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03b8: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() + IL_03bd: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_03c2: ldloc.s V_33 + IL_03c4: newobj instance void Linq101Select01/orders3@100::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_03c9: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_03d2: ldsfld class Linq101Select01/'orders3@102-2' Linq101Select01/'orders3@102-2'::@_instance - IL_03d7: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03ce: ldsfld class Linq101Select01/'orders3@102-2' Linq101Select01/'orders3@102-2'::@_instance + IL_03d3: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_03dc: ldsfld class Linq101Select01/'orders3@103-3' Linq101Select01/'orders3@103-3'::@_instance - IL_03e1: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_03d8: ldsfld class Linq101Select01/'orders3@103-3' Linq101Select01/'orders3@103-3'::@_instance + IL_03dd: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`3>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_03e6: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_03eb: dup - IL_03ec: stsfld class [mscorlib]System.Collections.Generic.IEnumerable`1> ''.$Linq101Select01::orders3@98 - IL_03f1: stloc.s orders3 + IL_03e2: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_03e7: dup + IL_03e8: stsfld class [mscorlib]System.Collections.Generic.IEnumerable`1> ''.$Linq101Select01::orders3@98 + IL_03ed: stloc.s orders3 .line 107,107 : 1,38 '' - IL_03f3: ldc.i4 0x7cd - IL_03f8: ldc.i4.1 - IL_03f9: ldc.i4.1 - IL_03fa: newobj instance void [mscorlib]System.DateTime::.ctor(int32, + IL_03ef: ldc.i4 0x7cd + IL_03f4: ldc.i4.1 + IL_03f5: ldc.i4.1 + IL_03f6: newobj instance void [mscorlib]System.DateTime::.ctor(int32, int32, int32) - IL_03ff: dup - IL_0400: stsfld valuetype [mscorlib]System.DateTime ''.$Linq101Select01::cutOffDate@107 - IL_0405: stloc.s cutOffDate - IL_0407: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() - IL_040c: stloc.s V_34 + IL_03fb: dup + IL_03fc: stsfld valuetype [mscorlib]System.DateTime ''.$Linq101Select01::cutOffDate@107 + IL_0401: stloc.s cutOffDate + IL_0403: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query() + IL_0408: stloc.s V_34 + IL_040a: ldloc.s V_34 + IL_040c: ldloc.s V_34 IL_040e: ldloc.s V_34 IL_0410: ldloc.s V_34 IL_0412: ldloc.s V_34 IL_0414: ldloc.s V_34 - IL_0416: ldloc.s V_34 - IL_0418: ldloc.s V_34 - IL_041a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() - IL_041f: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_0424: ldloc.s V_34 - IL_0426: newobj instance void Linq101Select01/orders4@111::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_042b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0416: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_customers() + IL_041b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Source(class [mscorlib]System.Collections.Generic.IEnumerable`1) + IL_0420: ldloc.s V_34 + IL_0422: newobj instance void Linq101Select01/orders4@111::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_0427: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0430: ldsfld class Linq101Select01/'orders4@112-1' Linq101Select01/'orders4@112-1'::@_instance - IL_0435: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_042c: ldsfld class Linq101Select01/'orders4@112-1' Linq101Select01/'orders4@112-1'::@_instance + IL_0431: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_043a: ldloc.s V_34 - IL_043c: newobj instance void Linq101Select01/'orders4@111-2'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) - IL_0441: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0436: ldloc.s V_34 + IL_0438: newobj instance void Linq101Select01/'orders4@111-2'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder) + IL_043d: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::For,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>) - IL_0446: ldsfld class Linq101Select01/'orders4@114-4' Linq101Select01/'orders4@114-4'::@_instance - IL_044b: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_0442: ldsfld class Linq101Select01/'orders4@114-4' Linq101Select01/'orders4@114-4'::@_instance + IL_0447: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Where,class [mscorlib]System.Collections.IEnumerable>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_0450: ldsfld class Linq101Select01/'orders4@115-5' Linq101Select01/'orders4@115-5'::@_instance - IL_0455: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, + IL_044c: ldsfld class Linq101Select01/'orders4@115-5' Linq101Select01/'orders4@115-5'::@_instance + IL_0451: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Select,class [mscorlib]System.Collections.IEnumerable,class [mscorlib]System.Tuple`2>(class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2) - IL_045a: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() - IL_045f: dup - IL_0460: stsfld class [mscorlib]System.Collections.Generic.IEnumerable`1> ''.$Linq101Select01::orders4@109 - IL_0465: stloc.s orders4 - IL_0467: ret + IL_0456: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1 class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>::get_Source() + IL_045b: dup + IL_045c: stsfld class [mscorlib]System.Collections.Generic.IEnumerable`1> ''.$Linq101Select01::orders4@109 + IL_0461: stloc.s orders4 + IL_0463: ret } // end of method $Linq101Select01::main@ } // end of class ''.$Linq101Select01 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101SetOperators01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101SetOperators01.il.bsl index 056e0bf87bd..d9aab9d1ed8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101SetOperators01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101SetOperators01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x00000390 Length: 0x0000011E } .module Linq101SetOperators01.exe -// MVID: {5FCFFD0D-4EE5-349F-A745-03830DFDCF5F} +// MVID: {60B68B80-4EE5-349F-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05230000 +// Image base: 0x07260000 // =============== CLASS MEMBERS DECLARATION =================== @@ -100,7 +100,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 154 (0x9a) + // Code size 148 (0x94) .maxstack 6 .locals init ([0] int32 V_0, [1] int32 n) @@ -112,90 +112,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0070 + IL_001b: nop + IL_001c: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006d + IL_001e: nop + IL_001f: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0091 + IL_0021: nop + IL_0022: br.s IL_008b .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 13,13 : 9,33 '' - IL_002b: ldarg.0 - IL_002c: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_factorsOf300() - IL_0031: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0036: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_0025: ldarg.0 + IL_0026: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_factorsOf300() + IL_002b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0030: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc .line 13,13 : 9,33 '' - IL_0042: ldarg.0 - IL_0043: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_0048: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_004d: brfalse.s IL_0070 - - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_0055: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_005a: stloc.0 + IL_003c: ldarg.0 + IL_003d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_0042: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0047: brfalse.s IL_006a + + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_004f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0054: stloc.0 .line 13,13 : 9,33 '' - IL_005b: ldloc.0 - IL_005c: stloc.1 - IL_005d: ldarg.0 - IL_005e: ldc.i4.2 - IL_005f: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_0055: ldloc.0 + IL_0056: stloc.1 + IL_0057: ldarg.0 + IL_0058: ldc.i4.2 + IL_0059: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc .line 14,14 : 9,17 '' - IL_0064: ldarg.0 - IL_0065: ldloc.1 - IL_0066: stfld int32 Linq101SetOperators01/uniqueFactors@13::current - IL_006b: ldc.i4.1 - IL_006c: ret + IL_005e: ldarg.0 + IL_005f: ldloc.1 + IL_0060: stfld int32 Linq101SetOperators01/uniqueFactors@13::current + IL_0065: ldc.i4.1 + IL_0066: ret .line 100001,100001 : 0,0 '' - IL_006d: nop - IL_006e: br.s IL_0042 + IL_0067: nop + IL_0068: br.s IL_003c - IL_0070: ldarg.0 - IL_0071: ldc.i4.3 - IL_0072: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc .line 13,13 : 9,33 '' - IL_0077: ldarg.0 - IL_0078: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_007d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0082: nop - IL_0083: ldarg.0 - IL_0084: ldnull - IL_0085: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_008a: ldarg.0 - IL_008b: ldc.i4.3 - IL_008c: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc - IL_0091: ldarg.0 + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld int32 Linq101SetOperators01/uniqueFactors@13::current IL_0092: ldc.i4.0 - IL_0093: stfld int32 Linq101SetOperators01/uniqueFactors@13::current - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0093: ret } // end of method uniqueFactors@13::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -207,158 +201,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101SetOperators01/uniqueFactors@13::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/uniqueFactors@13::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld int32 Linq101SetOperators01/uniqueFactors@13::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101SetOperators01/uniqueFactors@13::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 Linq101SetOperators01/uniqueFactors@13::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 13,13 : 9,33 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 + IL_0076: nop + IL_0077: br IL_0000 - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method uniqueFactors@13::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101SetOperators01/uniqueFactors@13::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method uniqueFactors@13::get_CheckClose .method public strict virtual instance int32 @@ -475,7 +449,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 167 (0xa7) + // Code size 161 (0xa1) .maxstack 7 .locals init ([0] class [Utils]Utils/Product p) .line 100001,100001 : 0,0 '' @@ -485,91 +459,85 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_007d + IL_001b: nop + IL_001c: br.s IL_0077 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_007a + IL_001e: nop + IL_001f: br.s IL_0074 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_009e + IL_0021: nop + IL_0022: br.s IL_0098 .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 23,23 : 9,26 '' - IL_002b: ldarg.0 - IL_002c: ldsfld class Linq101SetOperators01/'categoryNames@22-1' Linq101SetOperators01/'categoryNames@22-1'::@_instance - IL_0031: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_products() - IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0025: ldarg.0 + IL_0026: ldsfld class Linq101SetOperators01/'categoryNames@22-1' Linq101SetOperators01/'categoryNames@22-1'::@_instance + IL_002b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_products() + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0040: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_0045: ldarg.0 - IL_0046: ldc.i4.1 - IL_0047: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_003f: ldarg.0 + IL_0040: ldc.i4.1 + IL_0041: stfld int32 Linq101SetOperators01/categoryNames@23::pc .line 23,23 : 9,26 '' - IL_004c: ldarg.0 - IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_0052: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0057: brfalse.s IL_007d - - IL_0059: ldarg.0 - IL_005a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_005f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.0 - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_0046: ldarg.0 + IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0051: brfalse.s IL_0077 + + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005e: stloc.0 + IL_005f: ldarg.0 + IL_0060: ldc.i4.2 + IL_0061: stfld int32 Linq101SetOperators01/categoryNames@23::pc .line 23,23 : 16,26 '' - IL_006c: ldarg.0 - IL_006d: ldloc.0 - IL_006e: callvirt instance string [Utils]Utils/Product::get_Category() - IL_0073: stfld string Linq101SetOperators01/categoryNames@23::current - IL_0078: ldc.i4.1 - IL_0079: ret + IL_0066: ldarg.0 + IL_0067: ldloc.0 + IL_0068: callvirt instance string [Utils]Utils/Product::get_Category() + IL_006d: stfld string Linq101SetOperators01/categoryNames@23::current + IL_0072: ldc.i4.1 + IL_0073: ret .line 100001,100001 : 0,0 '' - IL_007a: nop - IL_007b: br.s IL_004c + IL_0074: nop + IL_0075: br.s IL_0046 - IL_007d: ldarg.0 - IL_007e: ldc.i4.3 - IL_007f: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_0077: ldarg.0 + IL_0078: ldc.i4.3 + IL_0079: stfld int32 Linq101SetOperators01/categoryNames@23::pc .line 23,23 : 9,26 '' - IL_0084: ldarg.0 - IL_0085: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_008a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_008f: nop - IL_0090: ldarg.0 - IL_0091: ldnull - IL_0092: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_0097: ldarg.0 - IL_0098: ldc.i4.3 - IL_0099: stfld int32 Linq101SetOperators01/categoryNames@23::pc - IL_009e: ldarg.0 - IL_009f: ldnull - IL_00a0: stfld string Linq101SetOperators01/categoryNames@23::current - IL_00a5: ldc.i4.0 - IL_00a6: ret + IL_007e: ldarg.0 + IL_007f: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_0084: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0089: nop + IL_008a: ldarg.0 + IL_008b: ldnull + IL_008c: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_0091: ldarg.0 + IL_0092: ldc.i4.3 + IL_0093: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_0098: ldarg.0 + IL_0099: ldnull + IL_009a: stfld string Linq101SetOperators01/categoryNames@23::current + IL_009f: ldc.i4.0 + IL_00a0: ret } // end of method categoryNames@23::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -581,158 +549,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101SetOperators01/categoryNames@23::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101SetOperators01/categoryNames@23::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/categoryNames@23::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101SetOperators01/categoryNames@23::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101SetOperators01/categoryNames@23::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101SetOperators01/categoryNames@23::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101SetOperators01/categoryNames@23::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 23,23 : 9,26 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method categoryNames@23::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101SetOperators01/categoryNames@23::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method categoryNames@23::get_CheckClose .method public strict virtual instance string @@ -849,7 +797,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 176 (0xb0) + // Code size 170 (0xaa) .maxstack 7 .locals init ([0] class [Utils]Utils/Product p) .line 100001,100001 : 0,0 '' @@ -859,93 +807,87 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0086 + IL_001b: nop + IL_001c: br.s IL_0080 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0083 + IL_001e: nop + IL_001f: br.s IL_007d .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00a7 + IL_0021: nop + IL_0022: br IL_00a1 .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 33,33 : 9,33 '' - IL_002e: ldarg.0 - IL_002f: ldsfld class Linq101SetOperators01/'productFirstChars@32-1' Linq101SetOperators01/'productFirstChars@32-1'::@_instance - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_products() - IL_0039: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0028: ldarg.0 + IL_0029: ldsfld class Linq101SetOperators01/'productFirstChars@32-1' Linq101SetOperators01/'productFirstChars@32-1'::@_instance + IL_002e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_products() + IL_0033: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Product>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0043: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_0048: ldarg.0 - IL_0049: ldc.i4.1 - IL_004a: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: stfld int32 Linq101SetOperators01/productFirstChars@33::pc .line 33,33 : 9,33 '' - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_005a: brfalse.s IL_0086 - - IL_005c: ldarg.0 - IL_005d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_0062: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0067: stloc.0 - IL_0068: ldarg.0 - IL_0069: ldc.i4.2 - IL_006a: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_004f: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0054: brfalse.s IL_0080 + + IL_0056: ldarg.0 + IL_0057: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_005c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0061: stloc.0 + IL_0062: ldarg.0 + IL_0063: ldc.i4.2 + IL_0064: stfld int32 Linq101SetOperators01/productFirstChars@33::pc .line 33,33 : 29,30 '' - IL_006f: ldarg.0 - IL_0070: ldloc.0 - IL_0071: callvirt instance string [Utils]Utils/Product::get_ProductName() - IL_0076: ldc.i4.0 - IL_0077: callvirt instance char [netstandard]System.String::get_Chars(int32) - IL_007c: stfld char Linq101SetOperators01/productFirstChars@33::current - IL_0081: ldc.i4.1 - IL_0082: ret - - .line 100001,100001 : 0,0 '' - IL_0083: nop - IL_0084: br.s IL_004f - - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_0069: ldarg.0 + IL_006a: ldloc.0 + IL_006b: callvirt instance string [Utils]Utils/Product::get_ProductName() + IL_0070: ldc.i4.0 + IL_0071: callvirt instance char [netstandard]System.String::get_Chars(int32) + IL_0076: stfld char Linq101SetOperators01/productFirstChars@33::current + IL_007b: ldc.i4.1 + IL_007c: ret + + .line 100001,100001 : 0,0 '' + IL_007d: nop + IL_007e: br.s IL_0049 + + IL_0080: ldarg.0 + IL_0081: ldc.i4.3 + IL_0082: stfld int32 Linq101SetOperators01/productFirstChars@33::pc .line 33,33 : 9,33 '' - IL_008d: ldarg.0 - IL_008e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_0093: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0098: nop - IL_0099: ldarg.0 - IL_009a: ldnull - IL_009b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_00a0: ldarg.0 - IL_00a1: ldc.i4.3 - IL_00a2: stfld int32 Linq101SetOperators01/productFirstChars@33::pc - IL_00a7: ldarg.0 + IL_0087: ldarg.0 + IL_0088: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_008d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0092: nop + IL_0093: ldarg.0 + IL_0094: ldnull + IL_0095: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_009a: ldarg.0 + IL_009b: ldc.i4.3 + IL_009c: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_00a1: ldarg.0 + IL_00a2: ldc.i4.0 + IL_00a3: stfld char Linq101SetOperators01/productFirstChars@33::current IL_00a8: ldc.i4.0 - IL_00a9: stfld char Linq101SetOperators01/productFirstChars@33::current - IL_00ae: ldc.i4.0 - IL_00af: ret + IL_00a9: ret } // end of method productFirstChars@33::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -957,158 +899,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101SetOperators01/productFirstChars@33::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101SetOperators01/productFirstChars@33::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/productFirstChars@33::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101SetOperators01/productFirstChars@33::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld char Linq101SetOperators01/productFirstChars@33::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101SetOperators01/productFirstChars@33::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld char Linq101SetOperators01/productFirstChars@33::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 33,33 : 9,33 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f - - IL_008d: br.s IL_0091 + IL_0076: nop + IL_0077: br IL_0000 - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method productFirstChars@33::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101SetOperators01/productFirstChars@33::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method productFirstChars@33::get_CheckClose .method public strict virtual instance char @@ -1225,7 +1147,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 176 (0xb0) + // Code size 170 (0xaa) .maxstack 7 .locals init ([0] class [Utils]Utils/Customer c) .line 100001,100001 : 0,0 '' @@ -1235,93 +1157,87 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0086 + IL_001b: nop + IL_001c: br.s IL_0080 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0083 + IL_001e: nop + IL_001f: br.s IL_007d .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00a7 + IL_0021: nop + IL_0022: br IL_00a1 .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 39,39 : 9,33 '' - IL_002e: ldarg.0 - IL_002f: ldsfld class Linq101SetOperators01/'customerFirstChars@38-1' Linq101SetOperators01/'customerFirstChars@38-1'::@_instance - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_customers() - IL_0039: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Customer>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0028: ldarg.0 + IL_0029: ldsfld class Linq101SetOperators01/'customerFirstChars@38-1' Linq101SetOperators01/'customerFirstChars@38-1'::@_instance + IL_002e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101SetOperators01::get_customers() + IL_0033: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,class [Utils]Utils/Customer>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003e: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0043: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_0048: ldarg.0 - IL_0049: ldc.i4.1 - IL_004a: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_0038: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_0042: ldarg.0 + IL_0043: ldc.i4.1 + IL_0044: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc .line 39,39 : 9,33 '' - IL_004f: ldarg.0 - IL_0050: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_005a: brfalse.s IL_0086 - - IL_005c: ldarg.0 - IL_005d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_0062: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0067: stloc.0 - IL_0068: ldarg.0 - IL_0069: ldc.i4.2 - IL_006a: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_004f: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0054: brfalse.s IL_0080 + + IL_0056: ldarg.0 + IL_0057: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_005c: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0061: stloc.0 + IL_0062: ldarg.0 + IL_0063: ldc.i4.2 + IL_0064: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc .line 39,39 : 29,30 '' - IL_006f: ldarg.0 - IL_0070: ldloc.0 - IL_0071: callvirt instance string [Utils]Utils/Customer::get_CompanyName() - IL_0076: ldc.i4.0 - IL_0077: callvirt instance char [netstandard]System.String::get_Chars(int32) - IL_007c: stfld char Linq101SetOperators01/customerFirstChars@39::current - IL_0081: ldc.i4.1 - IL_0082: ret - - .line 100001,100001 : 0,0 '' - IL_0083: nop - IL_0084: br.s IL_004f - - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_0069: ldarg.0 + IL_006a: ldloc.0 + IL_006b: callvirt instance string [Utils]Utils/Customer::get_CompanyName() + IL_0070: ldc.i4.0 + IL_0071: callvirt instance char [netstandard]System.String::get_Chars(int32) + IL_0076: stfld char Linq101SetOperators01/customerFirstChars@39::current + IL_007b: ldc.i4.1 + IL_007c: ret + + .line 100001,100001 : 0,0 '' + IL_007d: nop + IL_007e: br.s IL_0049 + + IL_0080: ldarg.0 + IL_0081: ldc.i4.3 + IL_0082: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc .line 39,39 : 9,33 '' - IL_008d: ldarg.0 - IL_008e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_0093: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0098: nop - IL_0099: ldarg.0 - IL_009a: ldnull - IL_009b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_00a0: ldarg.0 - IL_00a1: ldc.i4.3 - IL_00a2: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc - IL_00a7: ldarg.0 + IL_0087: ldarg.0 + IL_0088: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_008d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0092: nop + IL_0093: ldarg.0 + IL_0094: ldnull + IL_0095: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_009a: ldarg.0 + IL_009b: ldc.i4.3 + IL_009c: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_00a1: ldarg.0 + IL_00a2: ldc.i4.0 + IL_00a3: stfld char Linq101SetOperators01/customerFirstChars@39::current IL_00a8: ldc.i4.0 - IL_00a9: stfld char Linq101SetOperators01/customerFirstChars@39::current - IL_00ae: ldc.i4.0 - IL_00af: ret + IL_00a9: ret } // end of method customerFirstChars@39::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -1333,158 +1249,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101SetOperators01/customerFirstChars@39::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101SetOperators01/customerFirstChars@39::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc - IL_0068: ldarg.0 - IL_0069: ldc.i4.0 - IL_006a: stfld char Linq101SetOperators01/customerFirstChars@39::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101SetOperators01/customerFirstChars@39::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld char Linq101SetOperators01/customerFirstChars@39::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 39,39 : 9,33 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method customerFirstChars@39::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101SetOperators01/customerFirstChars@39::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method customerFirstChars@39::get_CheckClose .method public strict virtual instance char diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Where01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Where01.il.bsl index 4f10a3e66f0..5b6b61c01da 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Where01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Where01.il.bsl @@ -45,13 +45,13 @@ // Offset: 0x000003D0 Length: 0x0000012E } .module Linq101Where01.exe -// MVID: {5FCFFD0D-FF23-CD21-A745-03830DFDCF5F} +// MVID: {60B68B80-FF23-CD21-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00C30000 +// Image base: 0x06C60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -363,38 +363,34 @@ .method public strict virtual instance bool Invoke(class [Utils]Utils/Product p) cil managed { - // Code size 41 (0x29) + // Code size 37 (0x25) .maxstack 10 .line 100001,100001 : 0,0 '' IL_0000: ldarg.1 IL_0001: callvirt instance int32 [Utils]Utils/Product::get_UnitsInStock() IL_0006: ldc.i4.0 - IL_0007: ble.s IL_000b - - IL_0009: br.s IL_000d - - IL_000b: br.s IL_0027 + IL_0007: ble.s IL_0023 .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: callvirt instance valuetype [mscorlib]System.Decimal [Utils]Utils/Product::get_UnitPrice() - IL_0013: ldc.i4 0x12c - IL_0018: ldc.i4.0 - IL_0019: ldc.i4.0 - IL_001a: ldc.i4.0 - IL_001b: ldc.i4.2 - IL_001c: newobj instance void [netstandard]System.Decimal::.ctor(int32, + IL_0009: ldarg.1 + IL_000a: callvirt instance valuetype [mscorlib]System.Decimal [Utils]Utils/Product::get_UnitPrice() + IL_000f: ldc.i4 0x12c + IL_0014: ldc.i4.0 + IL_0015: ldc.i4.0 + IL_0016: ldc.i4.0 + IL_0017: ldc.i4.2 + IL_0018: newobj instance void [netstandard]System.Decimal::.ctor(int32, int32, int32, bool, uint8) - IL_0021: call bool [netstandard]System.Decimal::op_GreaterThan(valuetype [netstandard]System.Decimal, + IL_001d: call bool [netstandard]System.Decimal::op_GreaterThan(valuetype [netstandard]System.Decimal, valuetype [netstandard]System.Decimal) - IL_0026: ret + IL_0022: ret .line 100001,100001 : 0,0 '' - IL_0027: ldc.i4.0 - IL_0028: ret + IL_0023: ldc.i4.0 + IL_0024: ret } // end of method 'expensiveInStockProducts@33-1'::Invoke .method private specialname rtspecialname static @@ -629,26 +625,22 @@ Invoke(int32 i, string d) cil managed { - // Code size 22 (0x16) + // Code size 18 (0x12) .maxstack 8 .line 54,54 : 29,49 '' IL_0000: ldarg.2 IL_0001: callvirt instance int32 [mscorlib]System.String::get_Length() IL_0006: ldarg.1 - IL_0007: bge.s IL_000b - - IL_0009: br.s IL_000d - - IL_000b: br.s IL_0014 + IL_0007: bge.s IL_0010 .line 54,54 : 50,57 '' - IL_000d: ldarg.2 - IL_000e: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) - IL_0013: ret + IL_0009: ldarg.2 + IL_000a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_000f: ret .line 54,54 : 63,67 '' - IL_0014: ldnull - IL_0015: ret + IL_0010: ldnull + IL_0011: ret } // end of method 'shortDigits@54-1'::Invoke .method private specialname rtspecialname static @@ -747,7 +739,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 162 (0xa2) + // Code size 156 (0x9c) .maxstack 7 .locals init ([0] string d) .line 100001,100001 : 0,0 '' @@ -757,90 +749,84 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0078 + IL_001b: nop + IL_001c: br.s IL_0072 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_0075 + IL_001e: nop + IL_001f: br.s IL_006f .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0099 + IL_0021: nop + IL_0022: br.s IL_0093 .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 52,52 : 9,17 '' - IL_002b: ldarg.0 - IL_002c: ldsfld class Linq101Where01/'shortDigits@51-3' Linq101Where01/'shortDigits@51-3'::@_instance - IL_0031: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Where01::get_digits() - IL_0036: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,string>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, + IL_0025: ldarg.0 + IL_0026: ldsfld class Linq101Where01/'shortDigits@51-3' Linq101Where01/'shortDigits@51-3'::@_instance + IL_002b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Where01::get_digits() + IL_0030: call class [mscorlib]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Collections.SeqModule::Collect,string>(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2, class [mscorlib]System.Collections.Generic.IEnumerable`1) - IL_003b: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0040: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_0045: ldarg.0 - IL_0046: ldc.i4.1 - IL_0047: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_0035: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_003a: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_003f: ldarg.0 + IL_0040: ldc.i4.1 + IL_0041: stfld int32 Linq101Where01/'shortDigits@52-2'::pc .line 52,52 : 9,17 '' - IL_004c: ldarg.0 - IL_004d: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_0052: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0057: brfalse.s IL_0078 - - IL_0059: ldarg.0 - IL_005a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_005f: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.0 - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_0046: ldarg.0 + IL_0047: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_004c: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_0051: brfalse.s IL_0072 + + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_0059: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_005e: stloc.0 + IL_005f: ldarg.0 + IL_0060: ldc.i4.2 + IL_0061: stfld int32 Linq101Where01/'shortDigits@52-2'::pc .line 52,52 : 16,17 '' - IL_006c: ldarg.0 - IL_006d: ldloc.0 - IL_006e: stfld string Linq101Where01/'shortDigits@52-2'::current - IL_0073: ldc.i4.1 - IL_0074: ret + IL_0066: ldarg.0 + IL_0067: ldloc.0 + IL_0068: stfld string Linq101Where01/'shortDigits@52-2'::current + IL_006d: ldc.i4.1 + IL_006e: ret .line 100001,100001 : 0,0 '' - IL_0075: nop - IL_0076: br.s IL_004c + IL_006f: nop + IL_0070: br.s IL_0046 - IL_0078: ldarg.0 - IL_0079: ldc.i4.3 - IL_007a: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_0072: ldarg.0 + IL_0073: ldc.i4.3 + IL_0074: stfld int32 Linq101Where01/'shortDigits@52-2'::pc .line 52,52 : 9,17 '' - IL_007f: ldarg.0 - IL_0080: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_0085: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_008a: nop - IL_008b: ldarg.0 - IL_008c: ldnull - IL_008d: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_0092: ldarg.0 - IL_0093: ldc.i4.3 - IL_0094: stfld int32 Linq101Where01/'shortDigits@52-2'::pc - IL_0099: ldarg.0 - IL_009a: ldnull - IL_009b: stfld string Linq101Where01/'shortDigits@52-2'::current - IL_00a0: ldc.i4.0 - IL_00a1: ret + IL_0079: ldarg.0 + IL_007a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_007f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0084: nop + IL_0085: ldarg.0 + IL_0086: ldnull + IL_0087: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_008c: ldarg.0 + IL_008d: ldc.i4.3 + IL_008e: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_0093: ldarg.0 + IL_0094: ldnull + IL_0095: stfld string Linq101Where01/'shortDigits@52-2'::current + IL_009a: ldc.i4.0 + IL_009b: ret } // end of method 'shortDigits@52-2'::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 148 (0x94) + // Code size 133 (0x85) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -852,158 +838,138 @@ IL_0007: sub IL_0008: switch ( IL_0013) - IL_0011: br.s IL_0019 + IL_0011: br.s IL_0016 .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_0087 + IL_0014: br.s IL_007c .line 100001,100001 : 0,0 '' - IL_0019: nop + IL_0016: nop .try { - IL_001a: ldarg.0 - IL_001b: ldfld int32 Linq101Where01/'shortDigits@52-2'::pc - IL_0020: switch ( + IL_0017: ldarg.0 + IL_0018: ldfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_001d: switch ( + IL_0034, IL_0037, - IL_0039, - IL_003b, + IL_003a, IL_003d) - IL_0035: br.s IL_004b - - IL_0037: br.s IL_003f - - IL_0039: br.s IL_0042 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 + IL_0032: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br.s IL_0061 + IL_0034: nop + IL_0035: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0042: nop - IL_0043: br.s IL_004d + IL_0037: nop + IL_0038: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004c + IL_003a: nop + IL_003b: br.s IL_0041 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0061 + IL_003d: nop + IL_003e: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_004b: nop + IL_0040: nop .line 100001,100001 : 0,0 '' - IL_004c: nop - IL_004d: ldarg.0 - IL_004e: ldc.i4.3 - IL_004f: stfld int32 Linq101Where01/'shortDigits@52-2'::pc - IL_0054: ldarg.0 - IL_0055: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' - IL_005a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_005f: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_0049: ldarg.0 + IL_004a: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 Linq101Where01/'shortDigits@52-2'::'enum' + IL_004f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0054: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.3 - IL_0063: stfld int32 Linq101Where01/'shortDigits@52-2'::pc - IL_0068: ldarg.0 - IL_0069: ldnull - IL_006a: stfld string Linq101Where01/'shortDigits@52-2'::current - IL_006f: ldnull - IL_0070: stloc.1 - IL_0071: leave.s IL_007f + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 Linq101Where01/'shortDigits@52-2'::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld string Linq101Where01/'shortDigits@52-2'::current + IL_0064: ldnull + IL_0065: stloc.1 + IL_0066: leave.s IL_0074 } // end .try catch [mscorlib]System.Object { - IL_0073: castclass [mscorlib]System.Exception - IL_0078: stloc.2 + IL_0068: castclass [mscorlib]System.Exception + IL_006d: stloc.2 .line 52,52 : 9,17 '' - IL_0079: ldloc.2 - IL_007a: stloc.0 - IL_007b: ldnull - IL_007c: stloc.1 - IL_007d: leave.s IL_007f + IL_006e: ldloc.2 + IL_006f: stloc.0 + IL_0070: ldnull + IL_0071: stloc.1 + IL_0072: leave.s IL_0074 .line 100001,100001 : 0,0 '' } // end handler - IL_007f: ldloc.1 - IL_0080: pop + IL_0074: ldloc.1 + IL_0075: pop .line 100001,100001 : 0,0 '' - IL_0081: nop - IL_0082: br IL_0000 - - IL_0087: ldloc.0 - IL_0088: ldnull - IL_0089: cgt.un - IL_008b: brfalse.s IL_008f + IL_0076: nop + IL_0077: br IL_0000 - IL_008d: br.s IL_0091 - - IL_008f: br.s IL_0093 + IL_007c: ldloc.0 + IL_007d: ldnull + IL_007e: cgt.un + IL_0080: brfalse.s IL_0084 .line 100001,100001 : 0,0 '' - IL_0091: ldloc.0 - IL_0092: throw + IL_0082: ldloc.0 + IL_0083: throw .line 100001,100001 : 0,0 '' - IL_0093: ret + IL_0084: ret } // end of method 'shortDigits@52-2'::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 Linq101Where01/'shortDigits@52-2'::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.1 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.1 + IL_002b: ret - IL_0034: ldc.i4.1 - IL_0035: ret + IL_002c: ldc.i4.1 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method 'shortDigits@52-2'::get_CheckClose .method public strict virtual instance string diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest1.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest1.il.bsl index 884c03da12a..220c8dac195 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest1.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest1.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest1 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest1 { - // Offset: 0x00000000 Length: 0x00000267 + // Offset: 0x00000000 Length: 0x00000263 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest1 { - // Offset: 0x00000270 Length: 0x000000AD + // Offset: 0x00000268 Length: 0x000000AD } .module SeqExpressionSteppingTest1.exe -// MVID: {59B19240-2432-947D-A745-03834092B159} +// MVID: {60B68B80-2432-947D-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002D0000 +// Image base: 0x05200000 // =============== CLASS MEMBERS DECLARATION =================== @@ -87,51 +87,47 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 66 (0x42) - .maxstack 6 + // Code size 62 (0x3e) + .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest1.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest1.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0017, - IL_0019) - IL_0015: br.s IL_0021 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_001e + IL_001a) + IL_0015: br.s IL_001d .line 100001,100001 : 0,0 '' - IL_001b: nop - IL_001c: br.s IL_0032 + IL_0017: nop + IL_0018: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_001e: nop - IL_001f: br.s IL_0039 + IL_001a: nop + IL_001b: br.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: ldarg.0 - IL_0023: ldc.i4.1 - IL_0024: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_001d: nop + IL_001e: ldarg.0 + IL_001f: ldc.i4.1 + IL_0020: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc .line 6,6 : 15,22 '' - IL_0029: ldarg.0 - IL_002a: ldc.i4.1 - IL_002b: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_0030: ldc.i4.1 - IL_0031: ret - - IL_0032: ldarg.0 - IL_0033: ldc.i4.2 - IL_0034: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc - IL_0039: ldarg.0 - IL_003a: ldc.i4.0 - IL_003b: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_0040: ldc.i4.0 - IL_0041: ret + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_002c: ldc.i4.1 + IL_002d: ret + + IL_002e: ldarg.0 + IL_002f: ldc.i4.2 + IL_0030: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_003c: ldc.i4.0 + IL_003d: ret } // end of method f0@6::GenerateNext .method public strict virtual instance void @@ -148,42 +144,36 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 45 (0x2d) + // Code size 39 (0x27) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc IL_0006: switch ( IL_0019, - IL_001b, - IL_001d) - IL_0017: br.s IL_0028 - - IL_0019: br.s IL_001f - - IL_001b: br.s IL_0022 - - IL_001d: br.s IL_0025 + IL_001c, + IL_001f) + IL_0017: br.s IL_0022 .line 100001,100001 : 0,0 '' - IL_001f: nop - IL_0020: br.s IL_002b + IL_0019: nop + IL_001a: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0022: nop - IL_0023: br.s IL_0029 + IL_001c: nop + IL_001d: br.s IL_0023 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_002b + IL_001f: nop + IL_0020: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: ldc.i4.0 - IL_002a: ret + IL_0022: nop + IL_0023: ldc.i4.0 + IL_0024: ret - IL_002b: ldc.i4.0 - IL_002c: ret + IL_0025: ldc.i4.0 + IL_0026: ret } // end of method f0@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest2.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest2.il.bsl index e5450059c32..e06b9162402 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest2.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest2.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest2 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest2 { - // Offset: 0x00000000 Length: 0x00000267 + // Offset: 0x00000000 Length: 0x00000263 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest2 { - // Offset: 0x00000270 Length: 0x000000AD + // Offset: 0x00000268 Length: 0x000000AD } .module SeqExpressionSteppingTest2.exe -// MVID: {59B19240-2432-951E-A745-03834092B159} +// MVID: {60B68B80-2432-951E-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00690000 +// Image base: 0x07020000 // =============== CLASS MEMBERS DECLARATION =================== @@ -87,78 +87,72 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 123 (0x7b) + // Code size 117 (0x75) .maxstack 6 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest2.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest2.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_004b + IL_001b: nop + IL_001c: br.s IL_0045 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_006b + IL_001e: nop + IL_001f: br.s IL_0065 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0072 + IL_0021: nop + IL_0022: br.s IL_006c .line 100001,100001 : 0,0 '' - IL_002a: nop + IL_0024: nop .line 5,5 : 15,30 '' - IL_002b: ldstr "hello" - IL_0030: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0035: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_003a: pop - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_0025: ldstr "hello" + IL_002a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_002f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0034: pop + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc .line 6,6 : 15,22 '' - IL_0042: ldarg.0 + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current IL_0043: ldc.i4.1 - IL_0044: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0049: ldc.i4.1 - IL_004a: ret + IL_0044: ret .line 7,7 : 15,32 '' - IL_004b: ldstr "goodbye" - IL_0050: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0055: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_005a: pop - IL_005b: ldarg.0 - IL_005c: ldc.i4.2 - IL_005d: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_0045: ldstr "goodbye" + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_004f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0054: pop + IL_0055: ldarg.0 + IL_0056: ldc.i4.2 + IL_0057: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc .line 8,8 : 15,22 '' - IL_0062: ldarg.0 - IL_0063: ldc.i4.2 - IL_0064: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0069: ldc.i4.1 - IL_006a: ret - - IL_006b: ldarg.0 - IL_006c: ldc.i4.3 - IL_006d: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_0072: ldarg.0 + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0063: ldc.i4.1 + IL_0064: ret + + IL_0065: ldarg.0 + IL_0066: ldc.i4.3 + IL_0067: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_006c: ldarg.0 + IL_006d: ldc.i4.0 + IL_006e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current IL_0073: ldc.i4.0 - IL_0074: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0079: ldc.i4.0 - IL_007a: ret + IL_0074: ret } // end of method f1@5::GenerateNext .method public strict virtual instance void @@ -175,52 +169,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method f1@5::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest3.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest3.il.bsl index 37e1a739636..ad4c4eb76c4 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest3.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest3.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest3 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest3 { - // Offset: 0x00000000 Length: 0x00000277 + // Offset: 0x00000000 Length: 0x00000273 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest3 { - // Offset: 0x00000280 Length: 0x000000AD + // Offset: 0x00000278 Length: 0x000000AD } .module SeqExpressionSteppingTest3.exe -// MVID: {59B19240-2432-943F-A745-03834092B159} +// MVID: {60B68B80-2432-943F-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02660000 +// Image base: 0x07030000 // =============== CLASS MEMBERS DECLARATION =================== @@ -92,73 +92,69 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1>& next) cil managed { - // Code size 116 (0x74) + // Code size 112 (0x70) .maxstack 6 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest3.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest3.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0017, - IL_0019) - IL_0015: br.s IL_0021 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_001e + IL_001a) + IL_0015: br.s IL_001d .line 100001,100001 : 0,0 '' - IL_001b: nop - IL_001c: br.s IL_0061 + IL_0017: nop + IL_0018: br.s IL_005d .line 100001,100001 : 0,0 '' - IL_001e: nop - IL_001f: br.s IL_006b + IL_001a: nop + IL_001b: br.s IL_0067 .line 100001,100001 : 0,0 '' - IL_0021: nop + IL_001d: nop .line 6,6 : 21,27 '' - IL_0022: ldarg.0 - IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x - IL_0028: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_002d: ldc.i4.4 - IL_002e: bge.s IL_0064 + IL_001e: ldarg.0 + IL_001f: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x + IL_0024: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0029: ldc.i4.4 + IL_002a: bge.s IL_0060 .line 7,7 : 18,24 '' - IL_0030: ldarg.0 - IL_0031: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x - IL_0036: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_003b: nop + IL_002c: ldarg.0 + IL_002d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x + IL_0032: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0037: nop .line 8,8 : 18,33 '' - IL_003c: ldstr "hello" - IL_0041: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0046: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_004b: pop - IL_004c: ldarg.0 - IL_004d: ldc.i4.1 - IL_004e: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc + IL_0038: ldstr "hello" + IL_003d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0042: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0047: pop + IL_0048: ldarg.0 + IL_0049: ldc.i4.1 + IL_004a: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc .line 9,9 : 18,25 '' - IL_0053: ldarg.0 - IL_0054: ldarg.0 - IL_0055: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x - IL_005a: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::current - IL_005f: ldc.i4.1 - IL_0060: ret + IL_004f: ldarg.0 + IL_0050: ldarg.0 + IL_0051: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::x + IL_0056: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::current + IL_005b: ldc.i4.1 + IL_005c: ret .line 100001,100001 : 0,0 '' - IL_0061: nop - IL_0062: br.s IL_0022 - - IL_0064: ldarg.0 - IL_0065: ldc.i4.2 - IL_0066: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc - IL_006b: ldarg.0 - IL_006c: ldnull - IL_006d: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::current - IL_0072: ldc.i4.0 - IL_0073: ret + IL_005d: nop + IL_005e: br.s IL_001e + + IL_0060: ldarg.0 + IL_0061: ldc.i4.2 + IL_0062: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc + IL_0067: ldarg.0 + IL_0068: ldnull + IL_0069: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::current + IL_006e: ldc.i4.0 + IL_006f: ret } // end of method f2@6::GenerateNext .method public strict virtual instance void @@ -175,42 +171,36 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 45 (0x2d) + // Code size 39 (0x27) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@6::pc IL_0006: switch ( IL_0019, - IL_001b, - IL_001d) - IL_0017: br.s IL_0028 - - IL_0019: br.s IL_001f - - IL_001b: br.s IL_0022 - - IL_001d: br.s IL_0025 + IL_001c, + IL_001f) + IL_0017: br.s IL_0022 .line 100001,100001 : 0,0 '' - IL_001f: nop - IL_0020: br.s IL_002b + IL_0019: nop + IL_001a: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0022: nop - IL_0023: br.s IL_0029 + IL_001c: nop + IL_001d: br.s IL_0023 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_002b + IL_001f: nop + IL_0020: br.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: ldc.i4.0 - IL_002a: ret + IL_0022: nop + IL_0023: ldc.i4.0 + IL_0024: ret - IL_002b: ldc.i4.0 - IL_002c: ret + IL_0025: ldc.i4.0 + IL_0026: ret } // end of method f2@6::get_CheckClose .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest4.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest4.il.bsl index ea764c62bb0..bc06b571d0f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest4.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest4.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest4 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest4 { - // Offset: 0x00000000 Length: 0x0000026F + // Offset: 0x00000000 Length: 0x00000263 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest4 { - // Offset: 0x00000278 Length: 0x000000AD + // Offset: 0x00000268 Length: 0x000000AD } .module SeqExpressionSteppingTest4.exe -// MVID: {5B9A68C1-2432-93E0-A745-0383C1689A5B} +// MVID: {60B68B80-2432-93E0-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00760000 +// Image base: 0x00EE0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -97,107 +97,101 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 190 (0xbe) + // Code size 184 (0xb8) .maxstack 6 .locals init ([0] int32 z) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest4.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest4.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002d - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0027 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0078 + IL_001b: nop + IL_001c: br.s IL_0072 .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_00a0 + IL_001e: nop + IL_001f: br.s IL_009a .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00b5 + IL_0021: nop + IL_0022: br IL_00af .line 100001,100001 : 0,0 '' - IL_002d: nop + IL_0027: nop .line 5,5 : 15,28 '' - IL_002e: ldarg.0 - IL_002f: ldc.i4.0 - IL_0030: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0035: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x + IL_0028: ldarg.0 + IL_0029: ldc.i4.0 + IL_002a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_002f: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x .line 6,6 : 15,21 '' - IL_003a: ldarg.0 - IL_003b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x - IL_0040: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0045: nop + IL_0034: ldarg.0 + IL_0035: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x + IL_003a: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_003f: nop .line 7,7 : 15,28 '' - IL_0046: ldarg.0 - IL_0047: ldc.i4.0 - IL_0048: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_004d: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y + IL_0040: ldarg.0 + IL_0041: ldc.i4.0 + IL_0042: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_0047: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y .line 8,8 : 15,21 '' - IL_0052: ldarg.0 - IL_0053: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y - IL_0058: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: ldc.i4.1 - IL_0060: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc + IL_004c: ldarg.0 + IL_004d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y + IL_0052: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0057: nop + IL_0058: ldarg.0 + IL_0059: ldc.i4.1 + IL_005a: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc .line 9,9 : 15,23 '' - IL_0065: ldarg.0 - IL_0066: ldarg.0 - IL_0067: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x - IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0071: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current - IL_0076: ldc.i4.1 - IL_0077: ret + IL_005f: ldarg.0 + IL_0060: ldarg.0 + IL_0061: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x + IL_0066: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_006b: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current + IL_0070: ldc.i4.1 + IL_0071: ret .line 10,10 : 15,30 '' - IL_0078: ldarg.0 - IL_0079: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x - IL_007e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0083: ldarg.0 - IL_0084: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y - IL_0089: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_008e: add - IL_008f: stloc.0 - IL_0090: ldarg.0 - IL_0091: ldc.i4.2 - IL_0092: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc + IL_0072: ldarg.0 + IL_0073: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x + IL_0078: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_007d: ldarg.0 + IL_007e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y + IL_0083: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0088: add + IL_0089: stloc.0 + IL_008a: ldarg.0 + IL_008b: ldc.i4.2 + IL_008c: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc .line 11,11 : 15,22 '' - IL_0097: ldarg.0 - IL_0098: ldloc.0 - IL_0099: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current - IL_009e: ldc.i4.1 - IL_009f: ret + IL_0091: ldarg.0 + IL_0092: ldloc.0 + IL_0093: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current + IL_0098: ldc.i4.1 + IL_0099: ret .line 7,7 : 19,20 '' - IL_00a0: ldarg.0 - IL_00a1: ldnull - IL_00a2: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y - IL_00a7: ldarg.0 - IL_00a8: ldnull - IL_00a9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x - IL_00ae: ldarg.0 - IL_00af: ldc.i4.3 - IL_00b0: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc - IL_00b5: ldarg.0 + IL_009a: ldarg.0 + IL_009b: ldnull + IL_009c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::y + IL_00a1: ldarg.0 + IL_00a2: ldnull + IL_00a3: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::x + IL_00a8: ldarg.0 + IL_00a9: ldc.i4.3 + IL_00aa: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc + IL_00af: ldarg.0 + IL_00b0: ldc.i4.0 + IL_00b1: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current IL_00b6: ldc.i4.0 - IL_00b7: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::current - IL_00bc: ldc.i4.0 - IL_00bd: ret + IL_00b7: ret } // end of method f3@5::GenerateNext .method public strict virtual instance void @@ -214,52 +208,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@5::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method f3@5::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest5.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest5.il.bsl index 0af7608e807..e89b9b17774 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest5.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest5.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest5 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest5 { - // Offset: 0x00000000 Length: 0x0000026F + // Offset: 0x00000000 Length: 0x00000263 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest5 { - // Offset: 0x00000278 Length: 0x000000AD + // Offset: 0x00000268 Length: 0x000000AD } .module SeqExpressionSteppingTest5.exe -// MVID: {5B9A632A-2432-9401-A745-03832A639A5B} +// MVID: {60B68B80-2432-9401-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x026A0000 +// Image base: 0x07250000 // =============== CLASS MEMBERS DECLARATION =================== @@ -97,130 +97,122 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 232 (0xe8) + // Code size 224 (0xe0) .maxstack 6 .locals init ([0] int32 z) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest5.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest5.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001f, - IL_0021, - IL_0023, - IL_0025) - IL_001d: br.s IL_0039 - - IL_001f: br.s IL_0027 - - IL_0021: br.s IL_002d - - IL_0023: br.s IL_0030 - - IL_0025: br.s IL_0033 + IL_0025, + IL_0028, + IL_002b) + IL_001d: br.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br IL_00ae + IL_001f: nop + IL_0020: br IL_00a6 .line 100001,100001 : 0,0 '' - IL_002d: nop - IL_002e: br.s IL_007f + IL_0025: nop + IL_0026: br.s IL_0077 .line 100001,100001 : 0,0 '' - IL_0030: nop - IL_0031: br.s IL_00a7 + IL_0028: nop + IL_0029: br.s IL_009f .line 100001,100001 : 0,0 '' - IL_0033: nop - IL_0034: br IL_00df + IL_002b: nop + IL_002c: br IL_00d7 .line 100001,100001 : 0,0 '' - IL_0039: nop + IL_0031: nop .line 5,5 : 15,28 '' - IL_003a: ldarg.0 - IL_003b: ldc.i4.0 - IL_003c: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0041: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_0046: ldarg.0 - IL_0047: ldc.i4.1 - IL_0048: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_0032: ldarg.0 + IL_0033: ldc.i4.0 + IL_0034: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_0039: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_003e: ldarg.0 + IL_003f: ldc.i4.1 + IL_0040: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc .line 7,7 : 19,32 '' - IL_004d: ldarg.0 - IL_004e: ldc.i4.0 - IL_004f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) - IL_0054: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y + IL_0045: ldarg.0 + IL_0046: ldc.i4.0 + IL_0047: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::Ref(!!0) + IL_004c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y .line 8,8 : 19,25 '' - IL_0059: ldarg.0 - IL_005a: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y - IL_005f: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0064: nop - IL_0065: ldarg.0 - IL_0066: ldc.i4.2 - IL_0067: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_0051: ldarg.0 + IL_0052: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y + IL_0057: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_005c: nop + IL_005d: ldarg.0 + IL_005e: ldc.i4.2 + IL_005f: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc .line 9,9 : 19,27 '' - IL_006c: ldarg.0 - IL_006d: ldarg.0 - IL_006e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_0073: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0078: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current - IL_007d: ldc.i4.1 - IL_007e: ret + IL_0064: ldarg.0 + IL_0065: ldarg.0 + IL_0066: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_006b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0070: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current + IL_0075: ldc.i4.1 + IL_0076: ret .line 10,10 : 19,34 '' - IL_007f: ldarg.0 - IL_0080: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_0085: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_008a: ldarg.0 - IL_008b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y - IL_0090: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0095: add - IL_0096: stloc.0 - IL_0097: ldarg.0 - IL_0098: ldc.i4.3 - IL_0099: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_0077: ldarg.0 + IL_0078: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_007d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0082: ldarg.0 + IL_0083: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y + IL_0088: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_008d: add + IL_008e: stloc.0 + IL_008f: ldarg.0 + IL_0090: ldc.i4.3 + IL_0091: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc .line 11,11 : 19,26 '' - IL_009e: ldarg.0 - IL_009f: ldloc.0 - IL_00a0: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current - IL_00a5: ldc.i4.1 - IL_00a6: ret - - IL_00a7: ldarg.0 - IL_00a8: ldnull - IL_00a9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y - IL_00ae: ldarg.0 - IL_00af: ldc.i4.4 - IL_00b0: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_0096: ldarg.0 + IL_0097: ldloc.0 + IL_0098: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current + IL_009d: ldc.i4.1 + IL_009e: ret + + IL_009f: ldarg.0 + IL_00a0: ldnull + IL_00a1: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::y + IL_00a6: ldarg.0 + IL_00a7: ldc.i4.4 + IL_00a8: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc .line 13,13 : 18,24 '' - IL_00b5: ldarg.0 - IL_00b6: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_00bb: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_00c0: nop + IL_00ad: ldarg.0 + IL_00ae: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_00b3: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_00b8: nop .line 14,14 : 18,32 '' - IL_00c1: ldstr "done" - IL_00c6: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00cb: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00d0: pop - IL_00d1: ldarg.0 - IL_00d2: ldnull - IL_00d3: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_00d8: ldarg.0 - IL_00d9: ldc.i4.4 - IL_00da: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc - IL_00df: ldarg.0 - IL_00e0: ldc.i4.0 - IL_00e1: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current - IL_00e6: ldc.i4.0 - IL_00e7: ret + IL_00b9: ldstr "done" + IL_00be: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00c3: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00c8: pop + IL_00c9: ldarg.0 + IL_00ca: ldnull + IL_00cb: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_00d0: ldarg.0 + IL_00d1: ldc.i4.4 + IL_00d2: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_00d7: ldarg.0 + IL_00d8: ldc.i4.0 + IL_00d9: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current + IL_00de: ldc.i4.0 + IL_00df: ret } // end of method f4@5::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 176 (0xb0) + // Code size 162 (0xa2) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -236,7 +228,7 @@ .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_00a3 + IL_0014: br IL_0099 .line 100001,100001 : 0,0 '' IL_0019: nop @@ -246,171 +238,147 @@ IL_001b: ldfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc IL_0020: switch ( IL_003b, - IL_003d, - IL_003f, + IL_003e, IL_0041, - IL_0043) - IL_0039: br.s IL_0054 - - IL_003b: br.s IL_0045 - - IL_003d: br.s IL_0048 - - IL_003f: br.s IL_004b - - IL_0041: br.s IL_004e - - IL_0043: br.s IL_0051 + IL_0044, + IL_0047) + IL_0039: br.s IL_004a .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_007d + IL_003b: nop + IL_003c: br.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0048: nop - IL_0049: br.s IL_0059 + IL_003e: nop + IL_003f: br.s IL_004f .line 100001,100001 : 0,0 '' - IL_004b: nop - IL_004c: br.s IL_0058 + IL_0041: nop + IL_0042: br.s IL_004e .line 100001,100001 : 0,0 '' - IL_004e: nop - IL_004f: br.s IL_0055 + IL_0044: nop + IL_0045: br.s IL_004b .line 100001,100001 : 0,0 '' - IL_0051: nop - IL_0052: br.s IL_007d + IL_0047: nop + IL_0048: br.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0054: nop + IL_004a: nop .line 100001,100001 : 0,0 '' - IL_0055: nop - IL_0056: br.s IL_0059 + IL_004b: nop + IL_004c: br.s IL_004f .line 100001,100001 : 0,0 '' - IL_0058: nop - IL_0059: ldarg.0 - IL_005a: ldc.i4.4 - IL_005b: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.4 + IL_0051: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc .line 13,13 : 18,24 '' - IL_0060: ldarg.0 - IL_0061: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x - IL_0066: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_006b: nop + IL_0056: ldarg.0 + IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::x + IL_005c: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0061: nop .line 14,14 : 18,32 '' - IL_006c: ldstr "done" - IL_0071: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0076: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_007b: pop + IL_0062: ldstr "done" + IL_0067: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0071: pop .line 100001,100001 : 0,0 '' - IL_007c: nop - IL_007d: ldarg.0 - IL_007e: ldc.i4.4 - IL_007f: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc - IL_0084: ldarg.0 - IL_0085: ldc.i4.0 - IL_0086: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current - IL_008b: ldnull - IL_008c: stloc.1 - IL_008d: leave.s IL_009b + IL_0072: nop + IL_0073: ldarg.0 + IL_0074: ldc.i4.4 + IL_0075: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc + IL_007a: ldarg.0 + IL_007b: ldc.i4.0 + IL_007c: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::current + IL_0081: ldnull + IL_0082: stloc.1 + IL_0083: leave.s IL_0091 } // end .try catch [mscorlib]System.Object { - IL_008f: castclass [mscorlib]System.Exception - IL_0094: stloc.2 + IL_0085: castclass [mscorlib]System.Exception + IL_008a: stloc.2 .line 5,5 : 19,20 '' - IL_0095: ldloc.2 - IL_0096: stloc.0 - IL_0097: ldnull - IL_0098: stloc.1 - IL_0099: leave.s IL_009b + IL_008b: ldloc.2 + IL_008c: stloc.0 + IL_008d: ldnull + IL_008e: stloc.1 + IL_008f: leave.s IL_0091 .line 100001,100001 : 0,0 '' } // end handler - IL_009b: ldloc.1 - IL_009c: pop + IL_0091: ldloc.1 + IL_0092: pop .line 100001,100001 : 0,0 '' - IL_009d: nop - IL_009e: br IL_0000 - - IL_00a3: ldloc.0 - IL_00a4: ldnull - IL_00a5: cgt.un - IL_00a7: brfalse.s IL_00ab + IL_0093: nop + IL_0094: br IL_0000 - IL_00a9: br.s IL_00ad - - IL_00ab: br.s IL_00af + IL_0099: ldloc.0 + IL_009a: ldnull + IL_009b: cgt.un + IL_009d: brfalse.s IL_00a1 .line 100001,100001 : 0,0 '' - IL_00ad: ldloc.0 - IL_00ae: throw + IL_009f: ldloc.0 + IL_00a0: throw .line 100001,100001 : 0,0 '' - IL_00af: ret + IL_00a1: ret } // end of method f4@5::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 67 (0x43) - .maxstack 5 + // Code size 57 (0x39) + .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@5::pc IL_0006: switch ( IL_0021, - IL_0023, - IL_0025, + IL_0024, IL_0027, - IL_0029) - IL_001f: br.s IL_003a - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e - - IL_0025: br.s IL_0031 - - IL_0027: br.s IL_0034 - - IL_0029: br.s IL_0037 + IL_002a, + IL_002d) + IL_001f: br.s IL_0030 .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0041 + IL_0021: nop + IL_0022: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_003f + IL_0024: nop + IL_0025: br.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: br.s IL_003d + IL_0027: nop + IL_0028: br.s IL_0033 .line 100001,100001 : 0,0 '' - IL_0034: nop - IL_0035: br.s IL_003b + IL_002a: nop + IL_002b: br.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_0041 + IL_002d: nop + IL_002e: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_003a: nop - IL_003b: ldc.i4.1 - IL_003c: ret + IL_0030: nop + IL_0031: ldc.i4.1 + IL_0032: ret - IL_003d: ldc.i4.1 - IL_003e: ret + IL_0033: ldc.i4.1 + IL_0034: ret - IL_003f: ldc.i4.1 - IL_0040: ret + IL_0035: ldc.i4.1 + IL_0036: ret - IL_0041: ldc.i4.0 - IL_0042: ret + IL_0037: ldc.i4.0 + IL_0038: ret } // end of method f4@5::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest6.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest6.il.bsl index d06d692b20b..42ec6243a0d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest6.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest6.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest6 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest6 { - // Offset: 0x00000000 Length: 0x000002A4 + // Offset: 0x00000000 Length: 0x00000298 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest6 { - // Offset: 0x000002A8 Length: 0x000000BA + // Offset: 0x000002A0 Length: 0x000000BA } .module SeqExpressionSteppingTest6.exe -// MVID: {5B9A632A-2432-94A2-A745-03832A639A5B} +// MVID: {60B68B80-2432-94A2-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01330000 +// Image base: 0x05230000 // =============== CLASS MEMBERS DECLARATION =================== @@ -103,166 +103,156 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 304 (0x130) + // Code size 294 (0x126) .maxstack 6 .locals init ([0] int32 x, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest6.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest6.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0023, - IL_0025, - IL_0027, + IL_0026, IL_0029, - IL_002b) - IL_0021: br.s IL_0045 - - IL_0023: br.s IL_002d - - IL_0025: br.s IL_0030 - - IL_0027: br.s IL_0033 - - IL_0029: br.s IL_0039 - - IL_002b: br.s IL_003f + IL_002f, + IL_0035) + IL_0021: br.s IL_003b .line 100001,100001 : 0,0 '' - IL_002d: nop - IL_002e: br.s IL_0099 + IL_0023: nop + IL_0024: br.s IL_008f .line 100001,100001 : 0,0 '' - IL_0030: nop - IL_0031: br.s IL_0096 + IL_0026: nop + IL_0027: br.s IL_008c .line 100001,100001 : 0,0 '' - IL_0033: nop - IL_0034: br IL_0106 + IL_0029: nop + IL_002a: br IL_00fc .line 100001,100001 : 0,0 '' - IL_0039: nop - IL_003a: br IL_0103 + IL_002f: nop + IL_0030: br IL_00f9 .line 100001,100001 : 0,0 '' - IL_003f: nop - IL_0040: br IL_0127 + IL_0035: nop + IL_0036: br IL_011d .line 100001,100001 : 0,0 '' - IL_0045: nop + IL_003b: nop .line 6,8 : 15,25 '' - IL_0046: ldarg.0 - IL_0047: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_004c: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_0051: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0056: ldarg.0 - IL_0057: ldc.i4.1 - IL_0058: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_003c: ldarg.0 + IL_003d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_0042: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0047: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_004c: ldarg.0 + IL_004d: ldc.i4.1 + IL_004e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 6,8 : 15,25 '' - IL_005d: ldarg.0 - IL_005e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0063: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_0068: brfalse.s IL_0099 - - IL_006a: ldarg.0 - IL_006b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0070: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0075: stloc.0 + IL_0053: ldarg.0 + IL_0054: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0059: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_005e: brfalse.s IL_008f + + IL_0060: ldarg.0 + IL_0061: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0066: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_006b: stloc.0 .line 7,7 : 18,33 '' - IL_0076: ldstr "hello" - IL_007b: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0080: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0085: pop - IL_0086: ldarg.0 - IL_0087: ldc.i4.2 - IL_0088: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_006c: ldstr "hello" + IL_0071: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0076: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_007b: pop + IL_007c: ldarg.0 + IL_007d: ldc.i4.2 + IL_007e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 8,8 : 18,25 '' - IL_008d: ldarg.0 - IL_008e: ldloc.0 - IL_008f: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0094: ldc.i4.1 - IL_0095: ret + IL_0083: ldarg.0 + IL_0084: ldloc.0 + IL_0085: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_008a: ldc.i4.1 + IL_008b: ret .line 100001,100001 : 0,0 '' - IL_0096: nop - IL_0097: br.s IL_005d + IL_008c: nop + IL_008d: br.s IL_0053 - IL_0099: ldarg.0 - IL_009a: ldc.i4.5 - IL_009b: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_008f: ldarg.0 + IL_0090: ldc.i4.5 + IL_0091: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 6,8 : 15,25 '' - IL_00a0: ldarg.0 - IL_00a1: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_00a6: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00ab: nop - IL_00ac: ldarg.0 - IL_00ad: ldnull - IL_00ae: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0096: ldarg.0 + IL_0097: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_009c: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_00a1: nop + IL_00a2: ldarg.0 + IL_00a3: ldnull + IL_00a4: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' .line 9,11 : 15,25 '' - IL_00b3: ldarg.0 - IL_00b4: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_00b9: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_00be: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00c3: ldarg.0 - IL_00c4: ldc.i4.3 - IL_00c5: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00a9: ldarg.0 + IL_00aa: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_00af: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1 class [mscorlib]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_00b4: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00b9: ldarg.0 + IL_00ba: ldc.i4.3 + IL_00bb: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 9,11 : 15,25 '' - IL_00ca: ldarg.0 - IL_00cb: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00d0: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() - IL_00d5: brfalse.s IL_0106 - - IL_00d7: ldarg.0 - IL_00d8: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00dd: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() - IL_00e2: stloc.1 + IL_00c0: ldarg.0 + IL_00c1: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00c6: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext() + IL_00cb: brfalse.s IL_00fc + + IL_00cd: ldarg.0 + IL_00ce: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00d3: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1::get_Current() + IL_00d8: stloc.1 .line 10,10 : 18,35 '' - IL_00e3: ldstr "goodbye" - IL_00e8: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00ed: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00f2: pop - IL_00f3: ldarg.0 - IL_00f4: ldc.i4.4 - IL_00f5: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00d9: ldstr "goodbye" + IL_00de: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00e3: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e8: pop + IL_00e9: ldarg.0 + IL_00ea: ldc.i4.4 + IL_00eb: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 11,11 : 18,25 '' - IL_00fa: ldarg.0 - IL_00fb: ldloc.1 - IL_00fc: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0101: ldc.i4.1 - IL_0102: ret + IL_00f0: ldarg.0 + IL_00f1: ldloc.1 + IL_00f2: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_00f7: ldc.i4.1 + IL_00f8: ret .line 100001,100001 : 0,0 '' - IL_0103: nop - IL_0104: br.s IL_00ca + IL_00f9: nop + IL_00fa: br.s IL_00c0 - IL_0106: ldarg.0 - IL_0107: ldc.i4.5 - IL_0108: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00fc: ldarg.0 + IL_00fd: ldc.i4.5 + IL_00fe: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc .line 9,11 : 15,25 '' - IL_010d: ldarg.0 - IL_010e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_0113: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0118: nop - IL_0119: ldarg.0 - IL_011a: ldnull - IL_011b: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_0120: ldarg.0 - IL_0121: ldc.i4.5 - IL_0122: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0127: ldarg.0 - IL_0128: ldc.i4.0 - IL_0129: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_012e: ldc.i4.0 - IL_012f: ret + IL_0103: ldarg.0 + IL_0104: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0109: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_010e: nop + IL_010f: ldarg.0 + IL_0110: ldnull + IL_0111: stfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0116: ldarg.0 + IL_0117: ldc.i4.5 + IL_0118: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_011d: ldarg.0 + IL_011e: ldc.i4.0 + IL_011f: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_0124: ldc.i4.0 + IL_0125: ret } // end of method f7@6::GenerateNext .method public strict virtual instance void Close() cil managed { - // Code size 189 (0xbd) + // Code size 173 (0xad) .maxstack 6 .locals init ([0] class [mscorlib]System.Exception V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_1, @@ -278,7 +268,7 @@ .line 100001,100001 : 0,0 '' IL_0013: nop - IL_0014: br IL_00b0 + IL_0014: br IL_00a4 .line 100001,100001 : 0,0 '' IL_0019: nop @@ -288,191 +278,163 @@ IL_001b: ldfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc IL_0020: switch ( IL_003f, - IL_0041, - IL_0043, + IL_0042, IL_0045, - IL_0047, - IL_0049) - IL_003d: br.s IL_005d - - IL_003f: br.s IL_004b - - IL_0041: br.s IL_004e - - IL_0043: br.s IL_0051 - - IL_0045: br.s IL_0054 - - IL_0047: br.s IL_0057 - - IL_0049: br.s IL_005a + IL_0048, + IL_004b, + IL_004e) + IL_003d: br.s IL_0051 .line 100001,100001 : 0,0 '' - IL_004b: nop - IL_004c: br.s IL_008a + IL_003f: nop + IL_0040: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_004e: nop - IL_004f: br.s IL_0076 + IL_0042: nop + IL_0043: br.s IL_006a .line 100001,100001 : 0,0 '' - IL_0051: nop - IL_0052: br.s IL_0075 + IL_0045: nop + IL_0046: br.s IL_0069 .line 100001,100001 : 0,0 '' - IL_0054: nop - IL_0055: br.s IL_005f + IL_0048: nop + IL_0049: br.s IL_0053 .line 100001,100001 : 0,0 '' - IL_0057: nop - IL_0058: br.s IL_005e + IL_004b: nop + IL_004c: br.s IL_0052 .line 100001,100001 : 0,0 '' - IL_005a: nop - IL_005b: br.s IL_008a + IL_004e: nop + IL_004f: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_005d: nop + IL_0051: nop .line 100001,100001 : 0,0 '' - IL_005e: nop - IL_005f: ldarg.0 - IL_0060: ldc.i4.5 - IL_0061: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0066: ldarg.0 - IL_0067: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_006c: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0071: nop + IL_0052: nop + IL_0053: ldarg.0 + IL_0054: ldc.i4.5 + IL_0055: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_005a: ldarg.0 + IL_005b: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0060: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0065: nop .line 100001,100001 : 0,0 '' - IL_0072: nop - IL_0073: br.s IL_008a + IL_0066: nop + IL_0067: br.s IL_007e .line 100001,100001 : 0,0 '' - IL_0075: nop - IL_0076: ldarg.0 - IL_0077: ldc.i4.5 - IL_0078: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_007d: ldarg.0 - IL_007e: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0083: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0088: nop + IL_0069: nop + IL_006a: ldarg.0 + IL_006b: ldc.i4.5 + IL_006c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0071: ldarg.0 + IL_0072: ldfld class [mscorlib]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop .line 100001,100001 : 0,0 '' - IL_0089: nop - IL_008a: ldarg.0 - IL_008b: ldc.i4.5 - IL_008c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0091: ldarg.0 - IL_0092: ldc.i4.0 - IL_0093: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0098: ldnull - IL_0099: stloc.1 - IL_009a: leave.s IL_00a8 + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldc.i4.5 + IL_0080: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0085: ldarg.0 + IL_0086: ldc.i4.0 + IL_0087: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_008c: ldnull + IL_008d: stloc.1 + IL_008e: leave.s IL_009c } // end .try catch [mscorlib]System.Object { - IL_009c: castclass [mscorlib]System.Exception - IL_00a1: stloc.2 + IL_0090: castclass [mscorlib]System.Exception + IL_0095: stloc.2 .line 6,8 : 15,25 '' - IL_00a2: ldloc.2 - IL_00a3: stloc.0 - IL_00a4: ldnull - IL_00a5: stloc.1 - IL_00a6: leave.s IL_00a8 + IL_0096: ldloc.2 + IL_0097: stloc.0 + IL_0098: ldnull + IL_0099: stloc.1 + IL_009a: leave.s IL_009c .line 100001,100001 : 0,0 '' } // end handler - IL_00a8: ldloc.1 - IL_00a9: pop + IL_009c: ldloc.1 + IL_009d: pop .line 100001,100001 : 0,0 '' - IL_00aa: nop - IL_00ab: br IL_0000 - - IL_00b0: ldloc.0 - IL_00b1: ldnull - IL_00b2: cgt.un - IL_00b4: brfalse.s IL_00b8 - - IL_00b6: br.s IL_00ba + IL_009e: nop + IL_009f: br IL_0000 - IL_00b8: br.s IL_00bc + IL_00a4: ldloc.0 + IL_00a5: ldnull + IL_00a6: cgt.un + IL_00a8: brfalse.s IL_00ac .line 100001,100001 : 0,0 '' - IL_00ba: ldloc.0 - IL_00bb: throw + IL_00aa: ldloc.0 + IL_00ab: throw .line 100001,100001 : 0,0 '' - IL_00bc: ret + IL_00ac: ret } // end of method f7@6::Close .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 78 (0x4e) + // Code size 66 (0x42) .maxstack 5 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc IL_0006: switch ( IL_0025, - IL_0027, - IL_0029, + IL_0028, IL_002b, - IL_002d, - IL_002f) - IL_0023: br.s IL_0043 - - IL_0025: br.s IL_0031 - - IL_0027: br.s IL_0034 - - IL_0029: br.s IL_0037 - - IL_002b: br.s IL_003a - - IL_002d: br.s IL_003d - - IL_002f: br.s IL_0040 + IL_002e, + IL_0031, + IL_0034) + IL_0023: br.s IL_0037 .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: br.s IL_004c + IL_0025: nop + IL_0026: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0034: nop - IL_0035: br.s IL_004a + IL_0028: nop + IL_0029: br.s IL_003e .line 100001,100001 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_0048 + IL_002b: nop + IL_002c: br.s IL_003c .line 100001,100001 : 0,0 '' - IL_003a: nop - IL_003b: br.s IL_0046 + IL_002e: nop + IL_002f: br.s IL_003a .line 100001,100001 : 0,0 '' - IL_003d: nop - IL_003e: br.s IL_0044 + IL_0031: nop + IL_0032: br.s IL_0038 .line 100001,100001 : 0,0 '' - IL_0040: nop - IL_0041: br.s IL_004c + IL_0034: nop + IL_0035: br.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0043: nop - IL_0044: ldc.i4.1 - IL_0045: ret + IL_0037: nop + IL_0038: ldc.i4.1 + IL_0039: ret - IL_0046: ldc.i4.1 - IL_0047: ret + IL_003a: ldc.i4.1 + IL_003b: ret - IL_0048: ldc.i4.1 - IL_0049: ret + IL_003c: ldc.i4.1 + IL_003d: ret - IL_004a: ldc.i4.1 - IL_004b: ret + IL_003e: ldc.i4.1 + IL_003f: ret - IL_004c: ldc.i4.0 - IL_004d: ret + IL_0040: ldc.i4.0 + IL_0041: ret } // end of method f7@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest7.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest7.il.bsl index ae9e2337813..4af836b1331 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest7.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest7.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 + .ver 5:0:0:0 } .assembly SeqExpressionSteppingTest7 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionSteppingTest7 { - // Offset: 0x00000000 Length: 0x00000272 + // Offset: 0x00000000 Length: 0x00000266 } .mresource public FSharpOptimizationData.SeqExpressionSteppingTest7 { - // Offset: 0x00000278 Length: 0x00000098 + // Offset: 0x00000270 Length: 0x00000098 } .module SeqExpressionSteppingTest7.exe -// MVID: {5B9A632A-2432-93C3-A745-03832A639A5B} +// MVID: {60B68B80-2432-93C3-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02450000 +// Image base: 0x06B60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -83,88 +83,80 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 113 (0x71) + // Code size 105 (0x69) .maxstack 7 .locals init ([0] string V_0, [1] !a V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest7.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionStepping\\SeqExpressionSteppingTest7.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 class SeqExpressionSteppingTest7/f@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_0017, - IL_0019) - IL_0015: br.s IL_0021 - - IL_0017: br.s IL_001b - - IL_0019: br.s IL_001e + IL_001a) + IL_0015: br.s IL_001d .line 100001,100001 : 0,0 '' - IL_001b: nop - IL_001c: br.s IL_005c + IL_0017: nop + IL_0018: br.s IL_0054 .line 100001,100001 : 0,0 '' - IL_001e: nop - IL_001f: br.s IL_0068 + IL_001a: nop + IL_001b: br.s IL_0060 .line 100001,100001 : 0,0 '' - IL_0021: nop + IL_001d: nop .line 5,5 : 14,36 '' - IL_0022: nop + IL_001e: nop .line 5,5 : 18,24 '' - IL_0023: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest7::get_r() - IL_0028: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_002d: nop + IL_001f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest7::get_r() + IL_0024: call void [FSharp.Core]Microsoft.FSharp.Core.Operators::Increment(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0029: nop .line 5,5 : 26,30 '' - IL_002e: ldc.i4.1 - IL_002f: brfalse.s IL_0033 - - IL_0031: br.s IL_0035 - - IL_0033: br.s IL_005f + IL_002a: ldc.i4.1 + IL_002b: brfalse.s IL_0057 .line 5,5 : 44,55 '' - IL_0035: ldstr "" - IL_003a: stloc.0 - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld int32 class SeqExpressionSteppingTest7/f@5::pc + IL_002d: ldstr "" + IL_0032: stloc.0 + IL_0033: ldarg.0 + IL_0034: ldc.i4.1 + IL_0035: stfld int32 class SeqExpressionSteppingTest7/f@5::pc .line 5,5 : 44,55 '' - IL_0042: ldarg.1 - IL_0043: ldc.i4.0 - IL_0044: brfalse.s IL_004e + IL_003a: ldarg.1 + IL_003b: ldc.i4.0 + IL_003c: brfalse.s IL_0046 - IL_0046: ldnull - IL_0047: unbox.any class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_004c: br.s IL_0055 + IL_003e: ldnull + IL_003f: unbox.any class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_0044: br.s IL_004d - IL_004e: ldloc.0 - IL_004f: call class [mscorlib]System.Exception [FSharp.Core]Microsoft.FSharp.Core.Operators::Failure(string) - IL_0054: throw + IL_0046: ldloc.0 + IL_0047: call class [mscorlib]System.Exception [FSharp.Core]Microsoft.FSharp.Core.Operators::Failure(string) + IL_004c: throw - IL_0055: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_005a: ldc.i4.2 - IL_005b: ret + IL_004d: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_0052: ldc.i4.2 + IL_0053: ret .line 100001,100001 : 0,0 '' - IL_005c: nop - IL_005d: br.s IL_0061 + IL_0054: nop + IL_0055: br.s IL_0059 .line 5,5 : 14,36 '' - IL_005f: nop + IL_0057: nop .line 100001,100001 : 0,0 '' - IL_0060: nop - IL_0061: ldarg.0 - IL_0062: ldc.i4.2 - IL_0063: stfld int32 class SeqExpressionSteppingTest7/f@5::pc - IL_0068: ldarg.0 - IL_0069: ldloc.1 - IL_006a: stfld !0 class SeqExpressionSteppingTest7/f@5::current - IL_006f: ldc.i4.0 - IL_0070: ret + IL_0058: nop + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld int32 class SeqExpressionSteppingTest7/f@5::pc + IL_0060: ldarg.0 + IL_0061: ldloc.1 + IL_0062: stfld !0 class SeqExpressionSteppingTest7/f@5::current + IL_0067: ldc.i4.0 + IL_0068: ret } // end of method f@5::GenerateNext .method public strict virtual instance void @@ -181,44 +173,38 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 46 (0x2e) + // Code size 40 (0x28) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 class SeqExpressionSteppingTest7/f@5::pc IL_0006: switch ( IL_0019, - IL_001b, - IL_001d) - IL_0017: br.s IL_0028 + IL_001c, + IL_001f) + IL_0017: br.s IL_0022 - IL_0019: br.s IL_001f - - IL_001b: br.s IL_0022 + .line 100001,100001 : 0,0 '' + IL_0019: nop + IL_001a: br.s IL_0026 - IL_001d: br.s IL_0025 + .line 100001,100001 : 0,0 '' + IL_001c: nop + IL_001d: br.s IL_0023 .line 100001,100001 : 0,0 '' IL_001f: nop - IL_0020: br.s IL_002c + IL_0020: br.s IL_0026 .line 100001,100001 : 0,0 '' IL_0022: nop - IL_0023: br.s IL_0029 + IL_0023: ldc.i4.0 + IL_0024: ret .line 100001,100001 : 0,0 '' IL_0025: nop - IL_0026: br.s IL_002c - - .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: ldc.i4.0 - IL_002a: ret - - .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: ldc.i4.0 - IL_002d: ret + IL_0026: ldc.i4.0 + IL_0027: ret } // end of method f@5::get_CheckClose .method public strict virtual instance !a @@ -295,7 +281,7 @@ .method public static void main@() cil managed { .entrypoint - // Code size 107 (0x6b) + // Code size 103 (0x67) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 r, [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_1, @@ -321,7 +307,7 @@ .line 6,6 : 25,29 '' IL_001e: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest7::f() IL_0023: stloc.3 - IL_0024: leave.s IL_0060 + IL_0024: leave.s IL_005c .line 6,6 : 30,34 '' } // end .try @@ -333,37 +319,33 @@ IL_002f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::FailurePattern(class [mscorlib]System.Exception) IL_0034: stloc.s V_5 IL_0036: ldloc.s V_5 - IL_0038: brfalse.s IL_003c - - IL_003a: br.s IL_003e - - IL_003c: br.s IL_0055 + IL_0038: brfalse.s IL_0051 .line 6,6 : 48,52 '' - IL_003e: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest7::get_r() - IL_0043: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) - IL_0048: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_004d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_003a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest7::get_r() + IL_003f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::op_Dereference(class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1) + IL_0044: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_0049: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0052: stloc.3 - IL_0053: leave.s IL_0060 + IL_004e: stloc.3 + IL_004f: leave.s IL_005c .line 100001,100001 : 0,0 '' - IL_0055: rethrow - IL_0057: ldnull - IL_0058: unbox.any class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - IL_005d: stloc.3 - IL_005e: leave.s IL_0060 + IL_0051: rethrow + IL_0053: ldnull + IL_0054: unbox.any class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 + IL_0059: stloc.3 + IL_005a: leave.s IL_005c .line 100001,100001 : 0,0 '' } // end handler - IL_0060: ldloc.3 - IL_0061: stloc.2 - IL_0062: ldloc.1 - IL_0063: ldloc.2 - IL_0064: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) - IL_0069: pop - IL_006a: ret + IL_005c: ldloc.3 + IL_005d: stloc.2 + IL_005e: ldloc.1 + IL_005f: ldloc.2 + IL_0060: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::Invoke(!0) + IL_0065: pop + IL_0066: ret } // end of method $SeqExpressionSteppingTest7::main@ } // end of class ''.$SeqExpressionSteppingTest7 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.il.bsl index d03a45be913..b0937a03b3b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SeqExpressionTailCalls01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionTailCalls01 { - // Offset: 0x00000000 Length: 0x0000021D + // Offset: 0x00000000 Length: 0x00000219 } .mresource public FSharpOptimizationData.SeqExpressionTailCalls01 { - // Offset: 0x00000228 Length: 0x0000008C + // Offset: 0x00000220 Length: 0x0000008C } .module SeqExpressionTailCalls01.exe -// MVID: {59B19240-093A-A6BE-A745-03834092B159} +// MVID: {60B68B80-093A-A6BE-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x027D0000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== @@ -88,73 +88,67 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 108 (0x6c) + // Code size 102 (0x66) .maxstack 7 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionTailCalls\\SeqExpressionTailCalls01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionTailCalls\\SeqExpressionTailCalls01.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionTailCalls01/rwalk@3::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0040 + IL_001b: nop + IL_001c: br.s IL_003a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_005c + IL_001e: nop + IL_001f: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0063 + IL_0021: nop + IL_0022: br.s IL_005d .line 100001,100001 : 0,0 '' - IL_002a: nop - IL_002b: ldarg.0 - IL_002c: ldc.i4.1 - IL_002d: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc .line 3,3 : 25,32 '' - IL_0032: ldarg.0 - IL_0033: ldarg.0 - IL_0034: ldfld int32 SeqExpressionTailCalls01/rwalk@3::x - IL_0039: stfld int32 SeqExpressionTailCalls01/rwalk@3::current - IL_003e: ldc.i4.1 - IL_003f: ret - - IL_0040: ldarg.0 - IL_0041: ldc.i4.2 - IL_0042: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 SeqExpressionTailCalls01/rwalk@3::x + IL_0033: stfld int32 SeqExpressionTailCalls01/rwalk@3::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc .line 3,3 : 41,52 '' - IL_0047: ldarg.1 - IL_0048: ldarg.0 - IL_0049: ldfld int32 SeqExpressionTailCalls01/rwalk@3::x - IL_004e: ldc.i4.1 - IL_004f: add - IL_0050: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls01::rwalk(int32) - IL_0055: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_005a: ldc.i4.2 - IL_005b: ret - - IL_005c: ldarg.0 - IL_005d: ldc.i4.3 - IL_005e: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc - IL_0063: ldarg.0 + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 SeqExpressionTailCalls01/rwalk@3::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls01::rwalk(int32) + IL_004f: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 SeqExpressionTailCalls01/rwalk@3::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 SeqExpressionTailCalls01/rwalk@3::current IL_0064: ldc.i4.0 - IL_0065: stfld int32 SeqExpressionTailCalls01/rwalk@3::current - IL_006a: ldc.i4.0 - IL_006b: ret + IL_0065: ret } // end of method rwalk@3::GenerateNext .method public strict virtual instance void @@ -171,52 +165,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionTailCalls01/rwalk@3::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method rwalk@3::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.il.bsl index 4cca2bf3f7c..9cc6cba9153 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SeqExpressionTailCalls02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SeqExpressionTailCalls02 { - // Offset: 0x00000000 Length: 0x00000256 + // Offset: 0x00000000 Length: 0x00000252 } .mresource public FSharpOptimizationData.SeqExpressionTailCalls02 { - // Offset: 0x00000260 Length: 0x0000009E + // Offset: 0x00000258 Length: 0x0000009E } .module SeqExpressionTailCalls02.exe -// MVID: {59B19240-093A-EC43-A745-03834092B159} +// MVID: {60B68B80-093A-EC43-A745-0383808BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x017C0000 +// Image base: 0x07350000 // =============== CLASS MEMBERS DECLARATION =================== @@ -88,73 +88,67 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 108 (0x6c) + // Code size 102 (0x66) .maxstack 7 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SeqExpressionTailCalls\\SeqExpressionTailCalls02.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SeqExpressionTailCalls\\SeqExpressionTailCalls02.fs' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0040 + IL_001b: nop + IL_001c: br.s IL_003a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_005c + IL_001e: nop + IL_001f: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0063 + IL_0021: nop + IL_0022: br.s IL_005d .line 100001,100001 : 0,0 '' - IL_002a: nop - IL_002b: ldarg.0 - IL_002c: ldc.i4.1 - IL_002d: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc .line 5,5 : 26,33 '' - IL_0032: ldarg.0 - IL_0033: ldarg.0 - IL_0034: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::x - IL_0039: stfld int32 SeqExpressionTailCalls02/rwalk1@5::current - IL_003e: ldc.i4.1 - IL_003f: ret - - IL_0040: ldarg.0 - IL_0041: ldc.i4.2 - IL_0042: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::x + IL_0033: stfld int32 SeqExpressionTailCalls02/rwalk1@5::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc .line 5,5 : 42,54 '' - IL_0047: ldarg.1 - IL_0048: ldarg.0 - IL_0049: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::x - IL_004e: ldc.i4.1 - IL_004f: add - IL_0050: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls02::rwalk2(int32) - IL_0055: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_005a: ldc.i4.2 - IL_005b: ret - - IL_005c: ldarg.0 - IL_005d: ldc.i4.3 - IL_005e: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc - IL_0063: ldarg.0 + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls02::rwalk2(int32) + IL_004f: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 SeqExpressionTailCalls02/rwalk1@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 SeqExpressionTailCalls02/rwalk1@5::current IL_0064: ldc.i4.0 - IL_0065: stfld int32 SeqExpressionTailCalls02/rwalk1@5::current - IL_006a: ldc.i4.0 - IL_006b: ret + IL_0065: ret } // end of method rwalk1@5::GenerateNext .method public strict virtual instance void @@ -171,52 +165,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionTailCalls02/rwalk1@5::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method rwalk1@5::get_CheckClose .method public strict virtual instance int32 @@ -287,7 +273,7 @@ .method public strict virtual instance int32 GenerateNext(class [mscorlib]System.Collections.Generic.IEnumerable`1& next) cil managed { - // Code size 108 (0x6c) + // Code size 102 (0x66) .maxstack 7 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 @@ -296,63 +282,57 @@ IL_0007: sub IL_0008: switch ( IL_001b, - IL_001d, - IL_001f) - IL_0019: br.s IL_002a - - IL_001b: br.s IL_0021 - - IL_001d: br.s IL_0024 - - IL_001f: br.s IL_0027 + IL_001e, + IL_0021) + IL_0019: br.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0021: nop - IL_0022: br.s IL_0040 + IL_001b: nop + IL_001c: br.s IL_003a .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: br.s IL_005c + IL_001e: nop + IL_001f: br.s IL_0056 .line 100001,100001 : 0,0 '' - IL_0027: nop - IL_0028: br.s IL_0063 + IL_0021: nop + IL_0022: br.s IL_005d .line 100001,100001 : 0,0 '' - IL_002a: nop - IL_002b: ldarg.0 - IL_002c: ldc.i4.1 - IL_002d: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc + IL_0024: nop + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc .line 6,6 : 26,33 '' - IL_0032: ldarg.0 - IL_0033: ldarg.0 - IL_0034: ldfld int32 SeqExpressionTailCalls02/rwalk2@6::x - IL_0039: stfld int32 SeqExpressionTailCalls02/rwalk2@6::current - IL_003e: ldc.i4.1 - IL_003f: ret - - IL_0040: ldarg.0 - IL_0041: ldc.i4.2 - IL_0042: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 SeqExpressionTailCalls02/rwalk2@6::x + IL_0033: stfld int32 SeqExpressionTailCalls02/rwalk2@6::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc .line 6,6 : 42,54 '' - IL_0047: ldarg.1 - IL_0048: ldarg.0 - IL_0049: ldfld int32 SeqExpressionTailCalls02/rwalk2@6::x - IL_004e: ldc.i4.1 - IL_004f: add - IL_0050: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls02::rwalk1(int32) - IL_0055: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 - IL_005a: ldc.i4.2 - IL_005b: ret - - IL_005c: ldarg.0 - IL_005d: ldc.i4.3 - IL_005e: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc - IL_0063: ldarg.0 + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 SeqExpressionTailCalls02/rwalk2@6::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [mscorlib]System.Collections.Generic.IEnumerable`1 SeqExpressionTailCalls02::rwalk1(int32) + IL_004f: stobj class [mscorlib]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 SeqExpressionTailCalls02/rwalk2@6::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 SeqExpressionTailCalls02/rwalk2@6::current IL_0064: ldc.i4.0 - IL_0065: stfld int32 SeqExpressionTailCalls02/rwalk2@6::current - IL_006a: ldc.i4.0 - IL_006b: ret + IL_0065: ret } // end of method rwalk2@6::GenerateNext .method public strict virtual instance void @@ -369,52 +349,44 @@ .method public strict virtual instance bool get_CheckClose() cil managed { - // Code size 56 (0x38) + // Code size 48 (0x30) .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionTailCalls02/rwalk2@6::pc IL_0006: switch ( IL_001d, - IL_001f, - IL_0021, - IL_0023) - IL_001b: br.s IL_0031 - - IL_001d: br.s IL_0025 - - IL_001f: br.s IL_0028 - - IL_0021: br.s IL_002b - - IL_0023: br.s IL_002e + IL_0020, + IL_0023, + IL_0026) + IL_001b: br.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0025: nop - IL_0026: br.s IL_0036 + IL_001d: nop + IL_001e: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0028: nop - IL_0029: br.s IL_0034 + IL_0020: nop + IL_0021: br.s IL_002c .line 100001,100001 : 0,0 '' - IL_002b: nop - IL_002c: br.s IL_0032 + IL_0023: nop + IL_0024: br.s IL_002a .line 100001,100001 : 0,0 '' - IL_002e: nop - IL_002f: br.s IL_0036 + IL_0026: nop + IL_0027: br.s IL_002e .line 100001,100001 : 0,0 '' - IL_0031: nop - IL_0032: ldc.i4.0 - IL_0033: ret + IL_0029: nop + IL_002a: ldc.i4.0 + IL_002b: ret - IL_0034: ldc.i4.0 - IL_0035: ret + IL_002c: ldc.i4.0 + IL_002d: ret - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method rwalk2@6::get_CheckClose .method public strict virtual instance int32 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl index c29de0c7bdc..5af7ea86311 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/LetBinding01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly LetBinding01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.LetBinding01 { - // Offset: 0x00000000 Length: 0x000001B4 + // Offset: 0x00000000 Length: 0x000001B0 } .mresource public FSharpOptimizationData.LetBinding01 { // Offset: 0x000001B8 Length: 0x00000070 } .module LetBinding01.exe -// MVID: {59B19250-269D-BEEF-A745-03835092B159} +// MVID: {60B68B90-269D-BEEF-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01570000 +// Image base: 0x06AB0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -83,7 +83,7 @@ .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 1,11 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\StaticInit\\LetBinding01.fs' + .line 5,5 : 1,11 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\LetBinding01.fs' IL_0000: call class [FSharp.Core]Microsoft.FSharp.Core.Unit LetBinding01::get_x() IL_0005: pop .line 6,6 : 1,17 '' diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl index 2dd345fe2d4..aa250d3a1d8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Class01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly StaticInit_Class01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.StaticInit_Class01 { - // Offset: 0x00000000 Length: 0x00000335 + // Offset: 0x00000000 Length: 0x0000032F } .mresource public FSharpOptimizationData.StaticInit_Class01 { - // Offset: 0x00000340 Length: 0x000000AD + // Offset: 0x00000338 Length: 0x000000AD } .module StaticInit_Class01.dll -// MVID: {59B19250-EC34-E66E-A745-03835092B159} +// MVID: {60B68B90-EC34-E66E-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00FE0000 +// Image base: 0x06F70000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,14 +56,14 @@ { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) .field static assembly int32 x - .field static assembly int32 'init@4-1' + .field static assembly int32 init@4 .method public specialname rtspecialname instance void .ctor(valuetype [mscorlib]System.DateTime s) cil managed { // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Class01.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Class01.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -75,32 +75,28 @@ .method assembly static int32 f() cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 41 (0x29) + // Code size 37 (0x25) .maxstack 8 .line 7,7 : 23,37 '' IL_0000: volatile. - IL_0002: ldsfld int32 StaticInit_ClassS01/C::'init@4-1' + IL_0002: ldsfld int32 StaticInit_ClassS01/C::init@4 IL_0007: ldc.i4.1 - IL_0008: bge.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0017 + IL_0008: bge.s IL_0013 .line 100001,100001 : 0,0 '' - IL_000e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0013: nop + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop .line 100001,100001 : 0,0 '' - IL_0014: nop - IL_0015: br.s IL_0018 + IL_0010: nop + IL_0011: br.s IL_0014 .line 100001,100001 : 0,0 '' - IL_0017: nop - IL_0018: ldsfld int32 StaticInit_ClassS01/C::x - IL_001d: ldstr "2" - IL_0022: callvirt instance int32 [mscorlib]System.String::get_Length() - IL_0027: add - IL_0028: ret + IL_0013: nop + IL_0014: ldsfld int32 StaticInit_ClassS01/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_0023: add + IL_0024: ret } // end of method C::f .method private specialname rtspecialname static @@ -138,7 +134,7 @@ IL_000a: stsfld int32 StaticInit_ClassS01/C::x IL_000f: ldc.i4.1 IL_0010: volatile. - IL_0012: stsfld int32 StaticInit_ClassS01/C::'init@4-1' + IL_0012: stsfld int32 StaticInit_ClassS01/C::init@4 .line 4,4 : 6,7 '' IL_0017: ret } // end of method $StaticInit_ClassS01::.cctor diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl index c9cd745c46a..bbe78bc0de6 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Module01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly StaticInit_Module01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.StaticInit_Module01 { - // Offset: 0x00000000 Length: 0x000002A7 + // Offset: 0x00000000 Length: 0x000002A3 } .mresource public FSharpOptimizationData.StaticInit_Module01 { - // Offset: 0x000002B0 Length: 0x000000DF + // Offset: 0x000002A8 Length: 0x000000DF } .module StaticInit_Module01.dll -// MVID: {59B19250-705F-DF4F-A745-03835092B159} +// MVID: {60B68B90-705F-DF4F-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00370000 +// Image base: 0x050C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -94,7 +94,7 @@ { // Code size 6 (0x6) .maxstack 8 - IL_0000: ldsfld int32 ''.$StaticInit_Module01::'x@5-1' + IL_0000: ldsfld int32 ''.$StaticInit_Module01::x@5 IL_0005: ret } // end of method M::get_x @@ -110,7 +110,7 @@ .class private abstract auto ansi sealed ''.$StaticInit_Module01 extends [mscorlib]System.Object { - .field static assembly initonly int32 'x@5-1' + .field static assembly initonly int32 x@5 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .field static assembly initonly int32 y@7 .custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) @@ -129,11 +129,11 @@ [1] int32 y, [2] int32 z) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 3,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Module01.fs' + .line 5,5 : 3,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Module01.fs' IL_0000: ldstr "1" IL_0005: callvirt instance int32 [mscorlib]System.String::get_Length() IL_000a: dup - IL_000b: stsfld int32 ''.$StaticInit_Module01::'x@5-1' + IL_000b: stsfld int32 ''.$StaticInit_Module01::x@5 IL_0010: stloc.0 .line 7,7 : 5,27 '' IL_0011: call int32 StaticInit_Module01/M::get_x() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl index 0ddd5159218..a0fdade3853 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl @@ -34,20 +34,20 @@ } .mresource public FSharpSignatureData.StaticInit_Struct01 { - // Offset: 0x00000000 Length: 0x0000079F + // Offset: 0x00000000 Length: 0x000007A1 } .mresource public FSharpOptimizationData.StaticInit_Struct01 { // Offset: 0x000007A8 Length: 0x0000021F } .module StaticInit_Struct01.dll -// MVID: {5F1FA087-05F6-D6CB-A745-038387A01F5F} +// MVID: {60B68B90-05F6-D6CB-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x053B0000 +// Image base: 0x05BE0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -77,7 +77,7 @@ .locals init ([0] valuetype StaticInit_Struct01/C& V_0, [1] class [mscorlib]System.Collections.IComparer V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 6,7 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Struct01.fs' + .line 4,4 : 6,7 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Struct01.fs' IL_0000: ldarga.s obj IL_0002: stloc.0 IL_0003: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() @@ -229,32 +229,28 @@ .method assembly static int32 f() cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 41 (0x29) + // Code size 37 (0x25) .maxstack 8 .line 7,7 : 23,37 '' IL_0000: volatile. IL_0002: ldsfld int32 StaticInit_Struct01/C::init@4 IL_0007: ldc.i4.1 - IL_0008: bge.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0017 + IL_0008: bge.s IL_0013 .line 100001,100001 : 0,0 '' - IL_000e: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0013: nop + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop .line 100001,100001 : 0,0 '' - IL_0014: nop - IL_0015: br.s IL_0018 + IL_0010: nop + IL_0011: br.s IL_0014 .line 100001,100001 : 0,0 '' - IL_0017: nop - IL_0018: ldsfld int32 StaticInit_Struct01/C::x - IL_001d: ldstr "2" - IL_0022: callvirt instance int32 [mscorlib]System.String::get_Length() - IL_0027: add - IL_0028: ret + IL_0013: nop + IL_0014: ldsfld int32 StaticInit_Struct01/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [mscorlib]System.String::get_Length() + IL_0023: add + IL_0024: ret } // end of method C::f .method public hidebysig virtual final diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl index aa77b1c7e0e..c3bb349428a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch01 { - // Offset: 0x00000000 Length: 0x0000021C + // Offset: 0x00000000 Length: 0x00000210 } .mresource public FSharpOptimizationData.SteppingMatch01 { - // Offset: 0x00000220 Length: 0x0000007A + // Offset: 0x00000218 Length: 0x0000007A } .module SteppingMatch01.dll -// MVID: {59B19213-ABFD-13F6-A745-03831392B159} +// MVID: {60B68B90-ABFD-13F6-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00CA0000 +// Image base: 0x06940000 // =============== CLASS MEMBERS DECLARATION =================== @@ -59,7 +59,7 @@ [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_1, [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_2) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch01.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch01.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl index 453261211ee..21138ae19ab 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch02 { - // Offset: 0x00000000 Length: 0x0000021C + // Offset: 0x00000000 Length: 0x00000210 } .mresource public FSharpOptimizationData.SteppingMatch02 { - // Offset: 0x00000220 Length: 0x0000007A + // Offset: 0x00000218 Length: 0x0000007A } .module SteppingMatch02.dll -// MVID: {59B19213-CAC2-C63D-A745-03831392B159} +// MVID: {60B68B90-CAC2-C63D-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01090000 +// Image base: 0x05330000 // =============== CLASS MEMBERS DECLARATION =================== @@ -59,7 +59,7 @@ [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice1Of2 V_1, [2] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`2/Choice2Of2 V_2) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch02.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch02.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl index f2ced1b23d2..2413a566d87 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch03 { - // Offset: 0x00000000 Length: 0x00000231 + // Offset: 0x00000000 Length: 0x00000225 } .mresource public FSharpOptimizationData.SteppingMatch03 { - // Offset: 0x00000238 Length: 0x0000007A + // Offset: 0x00000230 Length: 0x0000007A } .module SteppingMatch03.dll -// MVID: {59B19213-4E87-D110-A745-03831392B159} +// MVID: {60B68B90-4E87-D110-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00D00000 +// Image base: 0x07380000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static void funcC(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed { - // Code size 81 (0x51) + // Code size 75 (0x4b) .maxstack 3 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, @@ -61,50 +61,44 @@ [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_4) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch03.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch03.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 - IL_000a: brtrue.s IL_0016 + IL_000a: brtrue.s IL_0026 IL_000c: ldloc.1 IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 - IL_0012: brtrue.s IL_0018 + IL_0012: brtrue.s IL_0038 - IL_0014: br.s IL_001a - - IL_0016: br.s IL_002c - - IL_0018: br.s IL_003e - - IL_001a: ldloc.0 - IL_001b: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 - IL_0020: stloc.2 + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_001a: stloc.2 .line 7,7 : 13,35 '' - IL_0021: ldstr "A" - IL_0026: call void [mscorlib]System.Console::WriteLine(string) - IL_002b: ret + IL_001b: ldstr "A" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret .line 5,5 : 9,21 '' - IL_002c: ldloc.0 - IL_002d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 - IL_0032: stloc.3 + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 .line 9,9 : 13,35 '' - IL_0033: ldstr "B" - IL_0038: call void [mscorlib]System.Console::WriteLine(string) - IL_003d: ret + IL_002d: ldstr "B" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret .line 5,5 : 9,21 '' - IL_003e: ldloc.0 - IL_003f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 - IL_0044: stloc.s V_4 + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_003e: stloc.s V_4 .line 11,11 : 13,35 '' - IL_0046: ldstr "C" - IL_004b: call void [mscorlib]System.Console::WriteLine(string) - IL_0050: ret + IL_0040: ldstr "C" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret } // end of method SteppingMatch03::funcC } // end of class SteppingMatch03 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl index dc909634a1a..df2a0c23809 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch04.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch04 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch04 { - // Offset: 0x00000000 Length: 0x00000232 + // Offset: 0x00000000 Length: 0x00000226 } .mresource public FSharpOptimizationData.SteppingMatch04 { - // Offset: 0x00000238 Length: 0x0000007B + // Offset: 0x00000230 Length: 0x0000007B } .module SteppingMatch04.dll -// MVID: {59B19213-6D4C-8357-A745-03831392B159} +// MVID: {60B68B90-6D4C-8357-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02770000 +// Image base: 0x073C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static void funcC2(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed { - // Code size 81 (0x51) + // Code size 75 (0x4b) .maxstack 3 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, @@ -61,50 +61,44 @@ [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 V_3, [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch04.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch04.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 - IL_000a: brtrue.s IL_0016 + IL_000a: brtrue.s IL_0026 IL_000c: ldloc.1 IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 - IL_0012: brtrue.s IL_0018 + IL_0012: brtrue.s IL_0038 - IL_0014: br.s IL_001a - - IL_0016: br.s IL_002c - - IL_0018: br.s IL_003e - - IL_001a: ldloc.0 - IL_001b: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 - IL_0020: stloc.2 + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_001a: stloc.2 .line 7,7 : 13,35 '' - IL_0021: ldstr "B" - IL_0026: call void [mscorlib]System.Console::WriteLine(string) - IL_002b: ret + IL_001b: ldstr "B" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret .line 5,5 : 9,21 '' - IL_002c: ldloc.0 - IL_002d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 - IL_0032: stloc.3 + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_002c: stloc.3 .line 9,9 : 13,35 '' - IL_0033: ldstr "C" - IL_0038: call void [mscorlib]System.Console::WriteLine(string) - IL_003d: ret + IL_002d: ldstr "C" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret .line 5,5 : 9,21 '' - IL_003e: ldloc.0 - IL_003f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 - IL_0044: stloc.s V_4 + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 .line 11,11 : 13,35 '' - IL_0046: ldstr "A" - IL_004b: call void [mscorlib]System.Console::WriteLine(string) - IL_0050: ret + IL_0040: ldstr "A" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret } // end of method SteppingMatch04::funcC2 } // end of class SteppingMatch04 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl index 8da1f763ae7..6f851d8245e 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch05.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch05 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch05 { - // Offset: 0x00000000 Length: 0x00000232 + // Offset: 0x00000000 Length: 0x00000226 } .mresource public FSharpOptimizationData.SteppingMatch05 { - // Offset: 0x00000238 Length: 0x0000007B + // Offset: 0x00000230 Length: 0x0000007B } .module SteppingMatch05.dll -// MVID: {59B19213-30E9-4ADA-A745-03831392B159} +// MVID: {60B68B90-30E9-4ADA-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02FF0000 +// Image base: 0x072E0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static void funcC3(class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 n) cil managed { - // Code size 81 (0x51) + // Code size 75 (0x4b) .maxstack 3 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3 V_1, @@ -61,50 +61,44 @@ [3] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 V_3, [4] class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 V_4) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch05.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch05.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: stloc.1 IL_0004: ldloc.1 IL_0005: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 - IL_000a: brtrue.s IL_0016 + IL_000a: brtrue.s IL_0026 IL_000c: ldloc.1 IL_000d: isinst class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 - IL_0012: brtrue.s IL_0018 + IL_0012: brtrue.s IL_0038 - IL_0014: br.s IL_001a - - IL_0016: br.s IL_002c - - IL_0018: br.s IL_003e - - IL_001a: ldloc.0 - IL_001b: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 - IL_0020: stloc.2 + IL_0014: ldloc.0 + IL_0015: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice3Of3 + IL_001a: stloc.2 .line 7,7 : 13,35 '' - IL_0021: ldstr "C" - IL_0026: call void [mscorlib]System.Console::WriteLine(string) - IL_002b: ret + IL_001b: ldstr "C" + IL_0020: call void [mscorlib]System.Console::WriteLine(string) + IL_0025: ret .line 5,5 : 9,21 '' - IL_002c: ldloc.0 - IL_002d: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 - IL_0032: stloc.3 + IL_0026: ldloc.0 + IL_0027: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice2Of3 + IL_002c: stloc.3 .line 9,9 : 13,35 '' - IL_0033: ldstr "B" - IL_0038: call void [mscorlib]System.Console::WriteLine(string) - IL_003d: ret + IL_002d: ldstr "B" + IL_0032: call void [mscorlib]System.Console::WriteLine(string) + IL_0037: ret .line 5,5 : 9,21 '' - IL_003e: ldloc.0 - IL_003f: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 - IL_0044: stloc.s V_4 + IL_0038: ldloc.0 + IL_0039: castclass class [FSharp.Core]Microsoft.FSharp.Core.FSharpChoice`3/Choice1Of3 + IL_003e: stloc.s V_4 .line 11,11 : 13,35 '' - IL_0046: ldstr "A" - IL_004b: call void [mscorlib]System.Console::WriteLine(string) - IL_0050: ret + IL_0040: ldstr "A" + IL_0045: call void [mscorlib]System.Console::WriteLine(string) + IL_004a: ret } // end of method SteppingMatch05::funcC3 } // end of class SteppingMatch05 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl index 078b8cd73e3..da1fa20a676 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch06.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch06 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch06 { - // Offset: 0x00000000 Length: 0x0000067D + // Offset: 0x00000000 Length: 0x00000675 } .mresource public FSharpOptimizationData.SteppingMatch06 { - // Offset: 0x00000688 Length: 0x000001D9 + // Offset: 0x00000680 Length: 0x000001D9 } .module SteppingMatch06.dll -// MVID: {59B19213-4FAE-FD21-A745-03831392B159} +// MVID: {60B68B90-4FAE-FD21-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x028F0000 +// Image base: 0x05BB0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -205,77 +205,61 @@ instance int32 CompareTo(class SteppingMatch06/Discr obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 64 (0x40) + // Code size 48 (0x30) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch06.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch06.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0032 + IL_0004: brfalse.s IL_0026 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0030 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 SteppingMatch06/Discr::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 SteppingMatch06/Discr::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: bne.un.s IL_0028 - - IL_0026: br.s IL_002a - - IL_0028: br.s IL_002c + IL_000c: ldarg.0 + IL_000d: ldfld int32 SteppingMatch06/Discr::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 SteppingMatch06/Discr::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: bne.un.s IL_0020 .line 100001,100001 : 0,0 '' - IL_002a: ldc.i4.0 - IL_002b: ret + IL_001e: ldc.i4.0 + IL_001f: ret .line 100001,100001 : 0,0 '' - IL_002c: ldloc.0 - IL_002d: ldloc.1 - IL_002e: sub - IL_002f: ret + IL_0020: ldloc.0 + IL_0021: ldloc.1 + IL_0022: sub + IL_0023: ret .line 100001,100001 : 0,0 '' - IL_0030: ldc.i4.1 - IL_0031: ret + IL_0024: ldc.i4.1 + IL_0025: ret .line 100001,100001 : 0,0 '' - IL_0032: ldarg.1 - IL_0033: ldnull - IL_0034: cgt.un - IL_0036: brfalse.s IL_003a - - IL_0038: br.s IL_003c - - IL_003a: br.s IL_003e + IL_0026: ldarg.1 + IL_0027: ldnull + IL_0028: cgt.un + IL_002a: brfalse.s IL_002e .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.m1 - IL_003d: ret + IL_002c: ldc.i4.m1 + IL_002d: ret .line 100001,100001 : 0,0 '' - IL_003e: ldc.i4.0 - IL_003f: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method Discr::CompareTo .method public hidebysig virtual final @@ -297,7 +281,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 81 (0x51) + // Code size 65 (0x41) .maxstack 4 .locals init ([0] class SteppingMatch06/Discr V_0, [1] int32 V_1, @@ -309,99 +293,79 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0011 - - IL_000f: br.s IL_003e + IL_000b: brfalse.s IL_0032 .line 100001,100001 : 0,0 '' - IL_0011: ldarg.1 - IL_0012: unbox.any SteppingMatch06/Discr - IL_0017: ldnull - IL_0018: cgt.un - IL_001a: brfalse.s IL_001e - - IL_001c: br.s IL_0020 - - IL_001e: br.s IL_003c + IL_000d: ldarg.1 + IL_000e: unbox.any SteppingMatch06/Discr + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_0030 .line 100001,100001 : 0,0 '' - IL_0020: ldarg.0 - IL_0021: ldfld int32 SteppingMatch06/Discr::_tag - IL_0026: stloc.1 - IL_0027: ldloc.0 - IL_0028: ldfld int32 SteppingMatch06/Discr::_tag - IL_002d: stloc.2 - IL_002e: ldloc.1 - IL_002f: ldloc.2 - IL_0030: bne.un.s IL_0034 - - IL_0032: br.s IL_0036 - - IL_0034: br.s IL_0038 + IL_0018: ldarg.0 + IL_0019: ldfld int32 SteppingMatch06/Discr::_tag + IL_001e: stloc.1 + IL_001f: ldloc.0 + IL_0020: ldfld int32 SteppingMatch06/Discr::_tag + IL_0025: stloc.2 + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: bne.un.s IL_002c .line 100001,100001 : 0,0 '' - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002a: ldc.i4.0 + IL_002b: ret .line 100001,100001 : 0,0 '' - IL_0038: ldloc.1 - IL_0039: ldloc.2 - IL_003a: sub - IL_003b: ret + IL_002c: ldloc.1 + IL_002d: ldloc.2 + IL_002e: sub + IL_002f: ret .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.1 - IL_003d: ret + IL_0030: ldc.i4.1 + IL_0031: ret .line 100001,100001 : 0,0 '' - IL_003e: ldarg.1 - IL_003f: unbox.any SteppingMatch06/Discr - IL_0044: ldnull - IL_0045: cgt.un - IL_0047: brfalse.s IL_004b - - IL_0049: br.s IL_004d - - IL_004b: br.s IL_004f + IL_0032: ldarg.1 + IL_0033: unbox.any SteppingMatch06/Discr + IL_0038: ldnull + IL_0039: cgt.un + IL_003b: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_004d: ldc.i4.m1 - IL_004e: ret + IL_003d: ldc.i4.m1 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004f: ldc.i4.0 - IL_0050: ret + IL_003f: ldc.i4.0 + IL_0040: ret } // end of method Discr::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 21 (0x15) + // Code size 17 (0x11) .maxstack 3 .locals init ([0] int32 V_0) .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0013 + IL_0004: brfalse.s IL_000f .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: ldfld int32 SteppingMatch06/Discr::_tag - IL_0012: ret + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: ldfld int32 SteppingMatch06/Discr::_tag + IL_000e: ret .line 100001,100001 : 0,0 '' - IL_0013: ldc.i4.0 - IL_0014: ret + IL_000f: ldc.i4.0 + IL_0010: ret } // end of method Discr::GetHashCode .method public hidebysig virtual final @@ -422,7 +386,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 55 (0x37) + // Code size 47 (0x2f) .maxstack 4 .locals init ([0] class SteppingMatch06/Discr V_0, [1] class SteppingMatch06/Discr V_1, @@ -432,55 +396,47 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_002f + IL_0004: brfalse.s IL_0027 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst SteppingMatch06/Discr - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_002d + IL_0006: ldarg.1 + IL_0007: isinst SteppingMatch06/Discr + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.0 - IL_001b: ldfld int32 SteppingMatch06/Discr::_tag - IL_0020: stloc.2 - IL_0021: ldloc.1 - IL_0022: ldfld int32 SteppingMatch06/Discr::_tag - IL_0027: stloc.3 - IL_0028: ldloc.2 - IL_0029: ldloc.3 - IL_002a: ceq - IL_002c: ret + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch06/Discr::_tag + IL_0018: stloc.2 + IL_0019: ldloc.1 + IL_001a: ldfld int32 SteppingMatch06/Discr::_tag + IL_001f: stloc.3 + IL_0020: ldloc.2 + IL_0021: ldloc.3 + IL_0022: ceq + IL_0024: ret .line 100001,100001 : 0,0 '' - IL_002d: ldc.i4.0 - IL_002e: ret + IL_0025: ldc.i4.0 + IL_0026: ret .line 100001,100001 : 0,0 '' - IL_002f: ldarg.1 - IL_0030: ldnull - IL_0031: cgt.un - IL_0033: ldc.i4.0 - IL_0034: ceq - IL_0036: ret + IL_0027: ldarg.1 + IL_0028: ldnull + IL_0029: cgt.un + IL_002b: ldc.i4.0 + IL_002c: ceq + IL_002e: ret } // end of method Discr::Equals .method public hidebysig virtual final instance bool Equals(class SteppingMatch06/Discr obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 49 (0x31) + // Code size 41 (0x29) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) @@ -488,52 +444,44 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0029 + IL_0004: brfalse.s IL_0021 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0027 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_001f .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 SteppingMatch06/Discr::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 SteppingMatch06/Discr::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: ceq - IL_0026: ret + IL_000c: ldarg.0 + IL_000d: ldfld int32 SteppingMatch06/Discr::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 SteppingMatch06/Discr::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: ceq + IL_001e: ret .line 100001,100001 : 0,0 '' - IL_0027: ldc.i4.0 - IL_0028: ret + IL_001f: ldc.i4.0 + IL_0020: ret .line 100001,100001 : 0,0 '' - IL_0029: ldarg.1 - IL_002a: ldnull - IL_002b: cgt.un - IL_002d: ldc.i4.0 - IL_002e: ceq - IL_0030: ret + IL_0021: ldarg.1 + IL_0022: ldnull + IL_0023: cgt.un + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: ret } // end of method Discr::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class SteppingMatch06/Discr V_0) .line 4,4 : 6,11 '' @@ -541,21 +489,17 @@ IL_0001: isinst SteppingMatch06/Discr IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch06/Discr::Equals(class SteppingMatch06/Discr) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method Discr::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl index a897b0908a0..d91371610a6 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch07.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch07 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch07 { - // Offset: 0x00000000 Length: 0x0000067D + // Offset: 0x00000000 Length: 0x00000675 } .mresource public FSharpOptimizationData.SteppingMatch07 { - // Offset: 0x00000688 Length: 0x000001D9 + // Offset: 0x00000680 Length: 0x000001D9 } .module SteppingMatch07.dll -// MVID: {59B19213-D373-07F3-A745-03831392B159} +// MVID: {60B68B90-D373-07F3-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x03330000 +// Image base: 0x07270000 // =============== CLASS MEMBERS DECLARATION =================== @@ -205,77 +205,61 @@ instance int32 CompareTo(class SteppingMatch07/Discr obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 64 (0x40) + // Code size 48 (0x30) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch07.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch07.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0032 + IL_0004: brfalse.s IL_0026 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0030 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0024 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 SteppingMatch07/Discr::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 SteppingMatch07/Discr::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: bne.un.s IL_0028 - - IL_0026: br.s IL_002a - - IL_0028: br.s IL_002c + IL_000c: ldarg.0 + IL_000d: ldfld int32 SteppingMatch07/Discr::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 SteppingMatch07/Discr::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: bne.un.s IL_0020 .line 100001,100001 : 0,0 '' - IL_002a: ldc.i4.0 - IL_002b: ret + IL_001e: ldc.i4.0 + IL_001f: ret .line 100001,100001 : 0,0 '' - IL_002c: ldloc.0 - IL_002d: ldloc.1 - IL_002e: sub - IL_002f: ret + IL_0020: ldloc.0 + IL_0021: ldloc.1 + IL_0022: sub + IL_0023: ret .line 100001,100001 : 0,0 '' - IL_0030: ldc.i4.1 - IL_0031: ret + IL_0024: ldc.i4.1 + IL_0025: ret .line 100001,100001 : 0,0 '' - IL_0032: ldarg.1 - IL_0033: ldnull - IL_0034: cgt.un - IL_0036: brfalse.s IL_003a - - IL_0038: br.s IL_003c - - IL_003a: br.s IL_003e + IL_0026: ldarg.1 + IL_0027: ldnull + IL_0028: cgt.un + IL_002a: brfalse.s IL_002e .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.m1 - IL_003d: ret + IL_002c: ldc.i4.m1 + IL_002d: ret .line 100001,100001 : 0,0 '' - IL_003e: ldc.i4.0 - IL_003f: ret + IL_002e: ldc.i4.0 + IL_002f: ret } // end of method Discr::CompareTo .method public hidebysig virtual final @@ -297,7 +281,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 81 (0x51) + // Code size 65 (0x41) .maxstack 4 .locals init ([0] class SteppingMatch07/Discr V_0, [1] int32 V_1, @@ -309,99 +293,79 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0011 - - IL_000f: br.s IL_003e + IL_000b: brfalse.s IL_0032 .line 100001,100001 : 0,0 '' - IL_0011: ldarg.1 - IL_0012: unbox.any SteppingMatch07/Discr - IL_0017: ldnull - IL_0018: cgt.un - IL_001a: brfalse.s IL_001e - - IL_001c: br.s IL_0020 - - IL_001e: br.s IL_003c + IL_000d: ldarg.1 + IL_000e: unbox.any SteppingMatch07/Discr + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_0030 .line 100001,100001 : 0,0 '' - IL_0020: ldarg.0 - IL_0021: ldfld int32 SteppingMatch07/Discr::_tag - IL_0026: stloc.1 - IL_0027: ldloc.0 - IL_0028: ldfld int32 SteppingMatch07/Discr::_tag - IL_002d: stloc.2 - IL_002e: ldloc.1 - IL_002f: ldloc.2 - IL_0030: bne.un.s IL_0034 - - IL_0032: br.s IL_0036 - - IL_0034: br.s IL_0038 + IL_0018: ldarg.0 + IL_0019: ldfld int32 SteppingMatch07/Discr::_tag + IL_001e: stloc.1 + IL_001f: ldloc.0 + IL_0020: ldfld int32 SteppingMatch07/Discr::_tag + IL_0025: stloc.2 + IL_0026: ldloc.1 + IL_0027: ldloc.2 + IL_0028: bne.un.s IL_002c .line 100001,100001 : 0,0 '' - IL_0036: ldc.i4.0 - IL_0037: ret + IL_002a: ldc.i4.0 + IL_002b: ret .line 100001,100001 : 0,0 '' - IL_0038: ldloc.1 - IL_0039: ldloc.2 - IL_003a: sub - IL_003b: ret + IL_002c: ldloc.1 + IL_002d: ldloc.2 + IL_002e: sub + IL_002f: ret .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.1 - IL_003d: ret + IL_0030: ldc.i4.1 + IL_0031: ret .line 100001,100001 : 0,0 '' - IL_003e: ldarg.1 - IL_003f: unbox.any SteppingMatch07/Discr - IL_0044: ldnull - IL_0045: cgt.un - IL_0047: brfalse.s IL_004b - - IL_0049: br.s IL_004d - - IL_004b: br.s IL_004f + IL_0032: ldarg.1 + IL_0033: unbox.any SteppingMatch07/Discr + IL_0038: ldnull + IL_0039: cgt.un + IL_003b: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_004d: ldc.i4.m1 - IL_004e: ret + IL_003d: ldc.i4.m1 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004f: ldc.i4.0 - IL_0050: ret + IL_003f: ldc.i4.0 + IL_0040: ret } // end of method Discr::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 21 (0x15) + // Code size 17 (0x11) .maxstack 3 .locals init ([0] int32 V_0) .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0013 + IL_0004: brfalse.s IL_000f .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: ldfld int32 SteppingMatch07/Discr::_tag - IL_0012: ret + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: ldfld int32 SteppingMatch07/Discr::_tag + IL_000e: ret .line 100001,100001 : 0,0 '' - IL_0013: ldc.i4.0 - IL_0014: ret + IL_000f: ldc.i4.0 + IL_0010: ret } // end of method Discr::GetHashCode .method public hidebysig virtual final @@ -422,7 +386,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 55 (0x37) + // Code size 47 (0x2f) .maxstack 4 .locals init ([0] class SteppingMatch07/Discr V_0, [1] class SteppingMatch07/Discr V_1, @@ -432,55 +396,47 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_002f + IL_0004: brfalse.s IL_0027 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst SteppingMatch07/Discr - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_002d + IL_0006: ldarg.1 + IL_0007: isinst SteppingMatch07/Discr + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0025 .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.0 - IL_001b: ldfld int32 SteppingMatch07/Discr::_tag - IL_0020: stloc.2 - IL_0021: ldloc.1 - IL_0022: ldfld int32 SteppingMatch07/Discr::_tag - IL_0027: stloc.3 - IL_0028: ldloc.2 - IL_0029: ldloc.3 - IL_002a: ceq - IL_002c: ret + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: ldfld int32 SteppingMatch07/Discr::_tag + IL_0018: stloc.2 + IL_0019: ldloc.1 + IL_001a: ldfld int32 SteppingMatch07/Discr::_tag + IL_001f: stloc.3 + IL_0020: ldloc.2 + IL_0021: ldloc.3 + IL_0022: ceq + IL_0024: ret .line 100001,100001 : 0,0 '' - IL_002d: ldc.i4.0 - IL_002e: ret + IL_0025: ldc.i4.0 + IL_0026: ret .line 100001,100001 : 0,0 '' - IL_002f: ldarg.1 - IL_0030: ldnull - IL_0031: cgt.un - IL_0033: ldc.i4.0 - IL_0034: ceq - IL_0036: ret + IL_0027: ldarg.1 + IL_0028: ldnull + IL_0029: cgt.un + IL_002b: ldc.i4.0 + IL_002c: ceq + IL_002e: ret } // end of method Discr::Equals .method public hidebysig virtual final instance bool Equals(class SteppingMatch07/Discr obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 49 (0x31) + // Code size 41 (0x29) .maxstack 4 .locals init ([0] int32 V_0, [1] int32 V_1) @@ -488,52 +444,44 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0029 + IL_0004: brfalse.s IL_0021 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0027 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_001f .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 SteppingMatch07/Discr::_tag - IL_001a: stloc.0 - IL_001b: ldarg.1 - IL_001c: ldfld int32 SteppingMatch07/Discr::_tag - IL_0021: stloc.1 - IL_0022: ldloc.0 - IL_0023: ldloc.1 - IL_0024: ceq - IL_0026: ret + IL_000c: ldarg.0 + IL_000d: ldfld int32 SteppingMatch07/Discr::_tag + IL_0012: stloc.0 + IL_0013: ldarg.1 + IL_0014: ldfld int32 SteppingMatch07/Discr::_tag + IL_0019: stloc.1 + IL_001a: ldloc.0 + IL_001b: ldloc.1 + IL_001c: ceq + IL_001e: ret .line 100001,100001 : 0,0 '' - IL_0027: ldc.i4.0 - IL_0028: ret + IL_001f: ldc.i4.0 + IL_0020: ret .line 100001,100001 : 0,0 '' - IL_0029: ldarg.1 - IL_002a: ldnull - IL_002b: cgt.un - IL_002d: ldc.i4.0 - IL_002e: ceq - IL_0030: ret + IL_0021: ldarg.1 + IL_0022: ldnull + IL_0023: cgt.un + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: ret } // end of method Discr::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class SteppingMatch07/Discr V_0) .line 4,4 : 6,11 '' @@ -541,21 +489,17 @@ IL_0001: isinst SteppingMatch07/Discr IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool SteppingMatch07/Discr::Equals(class SteppingMatch07/Discr) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method Discr::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl index 5d87f08136f..76a265460b5 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch08.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly SteppingMatch08 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.SteppingMatch08 { - // Offset: 0x00000000 Length: 0x000001DF + // Offset: 0x00000000 Length: 0x000001DB } .mresource public FSharpOptimizationData.SteppingMatch08 { - // Offset: 0x000001E8 Length: 0x00000079 + // Offset: 0x000001E0 Length: 0x00000079 } .module SteppingMatch08.dll -// MVID: {59B19213-F238-BA3A-A745-03831392B159} +// MVID: {60B68B90-F238-BA3A-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00C70000 +// Image base: 0x00E20000 // =============== CLASS MEMBERS DECLARATION =================== @@ -57,7 +57,7 @@ .maxstack 3 .locals init ([0] int32 b) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch08.fs' + .line 5,5 : 9,21 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\SteppingMatch\\SteppingMatch08.fs' IL_0000: ldarg.0 IL_0001: switch ( IL_000c) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl index 479455bcd34..3d11c8b1b67 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/SteppingMatch/SteppingMatch09.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x00000310 Length: 0x000000EB } .module SteppingMatch09.dll -// MVID: {5FCFFD1E-4935-D6AC-A745-03831EFDCF5F} +// MVID: {60B68B90-4935-D6AC-A745-0383908BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05580000 +// Image base: 0x06A70000 // =============== CLASS MEMBERS DECLARATION =================== @@ -121,7 +121,7 @@ .method public strict virtual instance int32 Invoke(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list) cil managed { - // Code size 23 (0x17) + // Code size 19 (0x13) .maxstack 6 .locals init ([0] class SteppingMatch09/GenericInner@15 V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' @@ -133,17 +133,13 @@ IL_0008: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_000d: brtrue.s IL_0011 - IL_000f: br.s IL_0013 - - IL_0011: br.s IL_0015 - .line 17,17 : 14,15 '' - IL_0013: ldc.i4.1 - IL_0014: ret + IL_000f: ldc.i4.1 + IL_0010: ret .line 18,18 : 13,14 '' - IL_0015: ldc.i4.2 - IL_0016: ret + IL_0011: ldc.i4.2 + IL_0012: ret } // end of method GenericInner@15T::Invoke } // end of class GenericInner@15T @@ -167,24 +163,20 @@ .method public strict virtual instance int32 Invoke(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list) cil managed { - // Code size 16 (0x10) + // Code size 12 (0xc) .maxstack 8 .line 25,25 : 6,21 '' IL_0000: ldarg.1 IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0006: brtrue.s IL_000a - IL_0008: br.s IL_000c - - IL_000a: br.s IL_000e - .line 26,26 : 14,15 '' - IL_000c: ldc.i4.1 - IL_000d: ret + IL_0008: ldc.i4.1 + IL_0009: ret .line 27,27 : 13,14 '' - IL_000e: ldc.i4.2 - IL_000f: ret + IL_000a: ldc.i4.2 + IL_000b: ret } // end of method NonGenericInner@25::Invoke .method private specialname rtspecialname static @@ -221,25 +213,21 @@ .method public strict virtual instance int32 Invoke(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list) cil managed { - // Code size 21 (0x15) + // Code size 17 (0x11) .maxstack 8 .line 34,34 : 6,21 '' IL_0000: ldarg.1 IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0006: brtrue.s IL_000a - IL_0008: br.s IL_000c - - IL_000a: br.s IL_000e - .line 35,35 : 14,15 '' - IL_000c: ldc.i4.1 - IL_000d: ret + IL_0008: ldc.i4.1 + IL_0009: ret .line 36,36 : 13,14 '' - IL_000e: ldarg.0 - IL_000f: ldfld int32 SteppingMatch09/NonGenericInnerWithCapture@34::x - IL_0014: ret + IL_000a: ldarg.0 + IL_000b: ldfld int32 SteppingMatch09/NonGenericInnerWithCapture@34::x + IL_0010: ret } // end of method NonGenericInnerWithCapture@34::Invoke } // end of class NonGenericInnerWithCapture@34 @@ -247,7 +235,7 @@ .method public static class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 funcA(int32 n) cil managed { - // Code size 40 (0x28) + // Code size 36 (0x24) .maxstack 8 .line 5,5 : 9,21 '' IL_0000: ldarg.0 @@ -255,26 +243,22 @@ IL_0002: sub IL_0003: switch ( IL_0012, - IL_0014) - IL_0010: br.s IL_0020 - - IL_0012: br.s IL_0016 - - IL_0014: br.s IL_001e + IL_001a) + IL_0010: br.s IL_001c .line 7,7 : 13,21 '' - IL_0016: ldc.i4.s 10 - IL_0018: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) - IL_001d: ret + IL_0012: ldc.i4.s 10 + IL_0014: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0019: ret .line 9,9 : 13,17 '' - IL_001e: ldnull - IL_001f: ret + IL_001a: ldnull + IL_001b: ret .line 11,11 : 20,34 '' - IL_0020: ldc.i4.s 22 - IL_0022: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) - IL_0027: ret + IL_001c: ldc.i4.s 22 + IL_001e: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0023: ret } // end of method SteppingMatch09::funcA .method public static int32 OuterWithGenericInner(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list) cil managed diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction1.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction1.il.bsl index 6a80341afe9..f50ff82be7f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction1.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction1.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction1 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction1 { - // Offset: 0x00000000 Length: 0x000001CA + // Offset: 0x00000000 Length: 0x000001C6 } .mresource public FSharpOptimizationData.TestFunction1 { // Offset: 0x000001D0 Length: 0x00000070 } .module TestFunction1.exe -// MVID: {59B19208-65FC-8929-A745-03830892B159} +// MVID: {60B68B97-65FC-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x03230000 +// Image base: 0x054C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction1.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction1.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction10.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction10.il.bsl index 868ca11e97b..d25fd60cf44 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction10.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction10.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction10 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction10 { - // Offset: 0x00000000 Length: 0x000001C9 + // Offset: 0x00000000 Length: 0x000001C5 } .mresource public FSharpOptimizationData.TestFunction10 { // Offset: 0x000001D0 Length: 0x00000072 } .module TestFunction10.exe -// MVID: {59B199CC-A624-44FB-A745-0383CC99B159} +// MVID: {60B68B97-A624-44FB-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00DA0000 +// Image base: 0x066D0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -61,7 +61,7 @@ [2] int32 y, [3] int32 x) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction10.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction10.fs' IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction13.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction13.il.bsl index a23943d01bf..b3bb8d0a49b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction13.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction13.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction13 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction13 { - // Offset: 0x00000000 Length: 0x0000020F + // Offset: 0x00000000 Length: 0x00000203 } .mresource public FSharpOptimizationData.TestFunction13 { - // Offset: 0x00000218 Length: 0x00000072 + // Offset: 0x00000208 Length: 0x00000072 } .module TestFunction13.exe -// MVID: {59B199CC-A624-451C-A745-0383CC99B159} +// MVID: {60B68B97-A624-451C-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01000000 +// Image base: 0x00EC0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -57,7 +57,7 @@ // Code size 30 (0x1e) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,16 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction13.fs' + .line 5,5 : 5,16 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction13.fs' IL_0000: ldarg.0 IL_0001: ldarg.0 IL_0002: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction14.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction14.il.bsl index f9e5f5be62b..b849fc36afb 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction14.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction14.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x000001F0 Length: 0x00000072 } .module TestFunction14.exe -// MVID: {5FCFFD21-A624-4587-A745-038321FDCF5F} +// MVID: {60B68B97-A624-4587-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06A40000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction16.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction16.il.bsl index 35254e97c34..25a67922af0 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction16.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction16.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction16 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction16 { - // Offset: 0x00000000 Length: 0x00000693 + // Offset: 0x00000000 Length: 0x00000683 } .mresource public FSharpOptimizationData.TestFunction16 { - // Offset: 0x00000698 Length: 0x000001CD + // Offset: 0x00000688 Length: 0x000001CD } .module TestFunction16.exe -// MVID: {59B199CC-A624-45C5-A745-0383CC99B159} +// MVID: {60B68B97-A624-45C5-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01940000 +// Image base: 0x00E30000 // =============== CLASS MEMBERS DECLARATION =================== @@ -174,7 +174,7 @@ instance int32 CompareTo(class TestFunction16/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 154 (0x9a) + // Code size 120 (0x78) .maxstack 4 .locals init ([0] class TestFunction16/U V_0, [1] class TestFunction16/U V_1, @@ -186,137 +186,109 @@ [7] int32 V_7, [8] int32 V_8) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction16.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction16.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_008c + IL_0004: brfalse.s IL_006e .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_001a - - IL_0015: br IL_008a + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_006c .line 100001,100001 : 0,0 '' - IL_001a: ldarg.0 - IL_001b: pop + IL_000c: ldarg.0 + IL_000d: pop .line 100001,100001 : 0,0 '' - IL_001c: ldarg.0 - IL_001d: stloc.0 - IL_001e: ldarg.1 - IL_001f: stloc.1 - IL_0020: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0025: stloc.3 - IL_0026: ldloc.0 - IL_0027: ldfld int32 TestFunction16/U::item1 - IL_002c: stloc.s V_4 - IL_002e: ldloc.1 - IL_002f: ldfld int32 TestFunction16/U::item1 - IL_0034: stloc.s V_5 - IL_0036: ldloc.s V_4 - IL_0038: ldloc.s V_5 - IL_003a: bge.s IL_003e - - IL_003c: br.s IL_0040 - - IL_003e: br.s IL_0044 + IL_000e: ldarg.0 + IL_000f: stloc.0 + IL_0010: ldarg.1 + IL_0011: stloc.1 + IL_0012: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0017: stloc.3 + IL_0018: ldloc.0 + IL_0019: ldfld int32 TestFunction16/U::item1 + IL_001e: stloc.s V_4 + IL_0020: ldloc.1 + IL_0021: ldfld int32 TestFunction16/U::item1 + IL_0026: stloc.s V_5 + IL_0028: ldloc.s V_4 + IL_002a: ldloc.s V_5 + IL_002c: bge.s IL_0032 .line 100001,100001 : 0,0 '' - IL_0040: ldc.i4.m1 + IL_002e: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_0041: nop - IL_0042: br.s IL_004b + IL_002f: nop + IL_0030: br.s IL_0039 .line 100001,100001 : 0,0 '' - IL_0044: ldloc.s V_4 - IL_0046: ldloc.s V_5 - IL_0048: cgt + IL_0032: ldloc.s V_4 + IL_0034: ldloc.s V_5 + IL_0036: cgt .line 100001,100001 : 0,0 '' - IL_004a: nop + IL_0038: nop .line 100001,100001 : 0,0 '' - IL_004b: stloc.2 - IL_004c: ldloc.2 - IL_004d: ldc.i4.0 - IL_004e: bge.s IL_0052 - - IL_0050: br.s IL_0054 - - IL_0052: br.s IL_0056 + IL_0039: stloc.2 + IL_003a: ldloc.2 + IL_003b: ldc.i4.0 + IL_003c: bge.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0054: ldloc.2 - IL_0055: ret + IL_003e: ldloc.2 + IL_003f: ret .line 100001,100001 : 0,0 '' - IL_0056: ldloc.2 - IL_0057: ldc.i4.0 - IL_0058: ble.s IL_005c - - IL_005a: br.s IL_005e - - IL_005c: br.s IL_0060 + IL_0040: ldloc.2 + IL_0041: ldc.i4.0 + IL_0042: ble.s IL_0046 .line 100001,100001 : 0,0 '' - IL_005e: ldloc.2 - IL_005f: ret + IL_0044: ldloc.2 + IL_0045: ret .line 100001,100001 : 0,0 '' - IL_0060: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0065: stloc.s V_6 - IL_0067: ldloc.0 - IL_0068: ldfld int32 TestFunction16/U::item2 - IL_006d: stloc.s V_7 - IL_006f: ldloc.1 - IL_0070: ldfld int32 TestFunction16/U::item2 - IL_0075: stloc.s V_8 - IL_0077: ldloc.s V_7 - IL_0079: ldloc.s V_8 - IL_007b: bge.s IL_007f - - IL_007d: br.s IL_0081 - - IL_007f: br.s IL_0083 + IL_0046: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_004b: stloc.s V_6 + IL_004d: ldloc.0 + IL_004e: ldfld int32 TestFunction16/U::item2 + IL_0053: stloc.s V_7 + IL_0055: ldloc.1 + IL_0056: ldfld int32 TestFunction16/U::item2 + IL_005b: stloc.s V_8 + IL_005d: ldloc.s V_7 + IL_005f: ldloc.s V_8 + IL_0061: bge.s IL_0065 .line 100001,100001 : 0,0 '' - IL_0081: ldc.i4.m1 - IL_0082: ret + IL_0063: ldc.i4.m1 + IL_0064: ret .line 100001,100001 : 0,0 '' - IL_0083: ldloc.s V_7 - IL_0085: ldloc.s V_8 - IL_0087: cgt - IL_0089: ret + IL_0065: ldloc.s V_7 + IL_0067: ldloc.s V_8 + IL_0069: cgt + IL_006b: ret .line 100001,100001 : 0,0 '' - IL_008a: ldc.i4.1 - IL_008b: ret + IL_006c: ldc.i4.1 + IL_006d: ret .line 100001,100001 : 0,0 '' - IL_008c: ldarg.1 - IL_008d: ldnull - IL_008e: cgt.un - IL_0090: brfalse.s IL_0094 - - IL_0092: br.s IL_0096 - - IL_0094: br.s IL_0098 + IL_006e: ldarg.1 + IL_006f: ldnull + IL_0070: cgt.un + IL_0072: brfalse.s IL_0076 .line 100001,100001 : 0,0 '' - IL_0096: ldc.i4.m1 - IL_0097: ret + IL_0074: ldc.i4.m1 + IL_0075: ret .line 100001,100001 : 0,0 '' - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0076: ldc.i4.0 + IL_0077: ret } // end of method U::CompareTo .method public hidebysig virtual final @@ -338,7 +310,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 164 (0xa4) + // Code size 130 (0x82) .maxstack 4 .locals init ([0] class TestFunction16/U V_0, [1] class TestFunction16/U V_1, @@ -357,142 +329,114 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0014 - - IL_000f: br IL_0091 + IL_000b: brfalse.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.1 - IL_0015: unbox.any TestFunction16/U - IL_001a: ldnull - IL_001b: cgt.un - IL_001d: brfalse.s IL_0021 - - IL_001f: br.s IL_0026 - - IL_0021: br IL_008f + IL_000d: ldarg.1 + IL_000e: unbox.any TestFunction16/U + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_0071 .line 100001,100001 : 0,0 '' - IL_0026: ldarg.0 - IL_0027: pop + IL_0018: ldarg.0 + IL_0019: pop .line 100001,100001 : 0,0 '' - IL_0028: ldarg.0 - IL_0029: stloc.1 - IL_002a: ldloc.0 - IL_002b: stloc.2 - IL_002c: ldarg.2 - IL_002d: stloc.s V_4 - IL_002f: ldloc.1 - IL_0030: ldfld int32 TestFunction16/U::item1 - IL_0035: stloc.s V_5 - IL_0037: ldloc.2 - IL_0038: ldfld int32 TestFunction16/U::item1 - IL_003d: stloc.s V_6 - IL_003f: ldloc.s V_5 - IL_0041: ldloc.s V_6 - IL_0043: bge.s IL_0047 - - IL_0045: br.s IL_0049 - - IL_0047: br.s IL_004d + IL_001a: ldarg.0 + IL_001b: stloc.1 + IL_001c: ldloc.0 + IL_001d: stloc.2 + IL_001e: ldarg.2 + IL_001f: stloc.s V_4 + IL_0021: ldloc.1 + IL_0022: ldfld int32 TestFunction16/U::item1 + IL_0027: stloc.s V_5 + IL_0029: ldloc.2 + IL_002a: ldfld int32 TestFunction16/U::item1 + IL_002f: stloc.s V_6 + IL_0031: ldloc.s V_5 + IL_0033: ldloc.s V_6 + IL_0035: bge.s IL_003b .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.m1 + IL_0037: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_004a: nop - IL_004b: br.s IL_0054 + IL_0038: nop + IL_0039: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_004d: ldloc.s V_5 - IL_004f: ldloc.s V_6 - IL_0051: cgt + IL_003b: ldloc.s V_5 + IL_003d: ldloc.s V_6 + IL_003f: cgt .line 100001,100001 : 0,0 '' - IL_0053: nop + IL_0041: nop .line 100001,100001 : 0,0 '' - IL_0054: stloc.3 - IL_0055: ldloc.3 - IL_0056: ldc.i4.0 - IL_0057: bge.s IL_005b - - IL_0059: br.s IL_005d - - IL_005b: br.s IL_005f + IL_0042: stloc.3 + IL_0043: ldloc.3 + IL_0044: ldc.i4.0 + IL_0045: bge.s IL_0049 .line 100001,100001 : 0,0 '' - IL_005d: ldloc.3 - IL_005e: ret + IL_0047: ldloc.3 + IL_0048: ret .line 100001,100001 : 0,0 '' - IL_005f: ldloc.3 - IL_0060: ldc.i4.0 - IL_0061: ble.s IL_0065 - - IL_0063: br.s IL_0067 - - IL_0065: br.s IL_0069 + IL_0049: ldloc.3 + IL_004a: ldc.i4.0 + IL_004b: ble.s IL_004f .line 100001,100001 : 0,0 '' - IL_0067: ldloc.3 - IL_0068: ret + IL_004d: ldloc.3 + IL_004e: ret .line 100001,100001 : 0,0 '' - IL_0069: ldarg.2 - IL_006a: stloc.s V_7 - IL_006c: ldloc.1 - IL_006d: ldfld int32 TestFunction16/U::item2 - IL_0072: stloc.s V_8 - IL_0074: ldloc.2 - IL_0075: ldfld int32 TestFunction16/U::item2 - IL_007a: stloc.s V_9 - IL_007c: ldloc.s V_8 - IL_007e: ldloc.s V_9 - IL_0080: bge.s IL_0084 - - IL_0082: br.s IL_0086 - - IL_0084: br.s IL_0088 + IL_004f: ldarg.2 + IL_0050: stloc.s V_7 + IL_0052: ldloc.1 + IL_0053: ldfld int32 TestFunction16/U::item2 + IL_0058: stloc.s V_8 + IL_005a: ldloc.2 + IL_005b: ldfld int32 TestFunction16/U::item2 + IL_0060: stloc.s V_9 + IL_0062: ldloc.s V_8 + IL_0064: ldloc.s V_9 + IL_0066: bge.s IL_006a .line 100001,100001 : 0,0 '' - IL_0086: ldc.i4.m1 - IL_0087: ret + IL_0068: ldc.i4.m1 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_0088: ldloc.s V_8 - IL_008a: ldloc.s V_9 - IL_008c: cgt - IL_008e: ret + IL_006a: ldloc.s V_8 + IL_006c: ldloc.s V_9 + IL_006e: cgt + IL_0070: ret .line 100001,100001 : 0,0 '' - IL_008f: ldc.i4.1 - IL_0090: ret + IL_0071: ldc.i4.1 + IL_0072: ret .line 100001,100001 : 0,0 '' - IL_0091: ldarg.1 - IL_0092: unbox.any TestFunction16/U - IL_0097: ldnull - IL_0098: cgt.un - IL_009a: brfalse.s IL_009e - - IL_009c: br.s IL_00a0 - - IL_009e: br.s IL_00a2 + IL_0073: ldarg.1 + IL_0074: unbox.any TestFunction16/U + IL_0079: ldnull + IL_007a: cgt.un + IL_007c: brfalse.s IL_0080 .line 100001,100001 : 0,0 '' - IL_00a0: ldc.i4.m1 - IL_00a1: ret + IL_007e: ldc.i4.m1 + IL_007f: ret .line 100001,100001 : 0,0 '' - IL_00a2: ldc.i4.0 - IL_00a3: ret + IL_0080: ldc.i4.0 + IL_0081: ret } // end of method U::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 68 (0x44) + // Code size 64 (0x40) .maxstack 7 .locals init ([0] int32 V_0, [1] class TestFunction16/U V_1, @@ -502,58 +446,54 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0042 - - .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: pop - .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: stloc.1 - IL_0010: ldc.i4.0 - IL_0011: stloc.0 - IL_0012: ldc.i4 0x9e3779b9 - IL_0017: ldarg.1 - IL_0018: stloc.2 - IL_0019: ldloc.1 - IL_001a: ldfld int32 TestFunction16/U::item2 - IL_001f: ldloc.0 - IL_0020: ldc.i4.6 - IL_0021: shl - IL_0022: ldloc.0 - IL_0023: ldc.i4.2 - IL_0024: shr - IL_0025: add - IL_0026: add - IL_0027: add - IL_0028: stloc.0 - IL_0029: ldc.i4 0x9e3779b9 - IL_002e: ldarg.1 - IL_002f: stloc.3 - IL_0030: ldloc.1 - IL_0031: ldfld int32 TestFunction16/U::item1 - IL_0036: ldloc.0 - IL_0037: ldc.i4.6 - IL_0038: shl - IL_0039: ldloc.0 - IL_003a: ldc.i4.2 - IL_003b: shr - IL_003c: add - IL_003d: add - IL_003e: add - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: ret - - .line 100001,100001 : 0,0 '' - IL_0042: ldc.i4.0 - IL_0043: ret + IL_0004: brfalse.s IL_003e + + .line 100001,100001 : 0,0 '' + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: pop + .line 100001,100001 : 0,0 '' + IL_000a: ldarg.0 + IL_000b: stloc.1 + IL_000c: ldc.i4.0 + IL_000d: stloc.0 + IL_000e: ldc.i4 0x9e3779b9 + IL_0013: ldarg.1 + IL_0014: stloc.2 + IL_0015: ldloc.1 + IL_0016: ldfld int32 TestFunction16/U::item2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldc.i4 0x9e3779b9 + IL_002a: ldarg.1 + IL_002b: stloc.3 + IL_002c: ldloc.1 + IL_002d: ldfld int32 TestFunction16/U::item1 + IL_0032: ldloc.0 + IL_0033: ldc.i4.6 + IL_0034: shl + IL_0035: ldloc.0 + IL_0036: ldc.i4.2 + IL_0037: shr + IL_0038: add + IL_0039: add + IL_003a: add + IL_003b: stloc.0 + IL_003c: ldloc.0 + IL_003d: ret + + .line 100001,100001 : 0,0 '' + IL_003e: ldc.i4.0 + IL_003f: ret } // end of method U::GetHashCode .method public hidebysig virtual final @@ -574,7 +514,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 85 (0x55) + // Code size 73 (0x49) .maxstack 4 .locals init ([0] class TestFunction16/U V_0, [1] class TestFunction16/U V_1, @@ -586,78 +526,66 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_004d + IL_0004: brfalse.s IL_0041 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst TestFunction16/U - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_004b + IL_0006: ldarg.1 + IL_0007: isinst TestFunction16/U + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.0 - IL_001b: pop + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: pop .line 100001,100001 : 0,0 '' - IL_001c: ldarg.0 - IL_001d: stloc.2 - IL_001e: ldloc.1 - IL_001f: stloc.3 - IL_0020: ldarg.2 - IL_0021: stloc.s V_4 - IL_0023: ldloc.2 - IL_0024: ldfld int32 TestFunction16/U::item1 - IL_0029: ldloc.3 - IL_002a: ldfld int32 TestFunction16/U::item1 - IL_002f: ceq - IL_0031: brfalse.s IL_0035 - - IL_0033: br.s IL_0037 - - IL_0035: br.s IL_0049 - - .line 100001,100001 : 0,0 '' - IL_0037: ldarg.2 - IL_0038: stloc.s V_5 - IL_003a: ldloc.2 - IL_003b: ldfld int32 TestFunction16/U::item2 - IL_0040: ldloc.3 - IL_0041: ldfld int32 TestFunction16/U::item2 - IL_0046: ceq - IL_0048: ret + IL_0014: ldarg.0 + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: stloc.3 + IL_0018: ldarg.2 + IL_0019: stloc.s V_4 + IL_001b: ldloc.2 + IL_001c: ldfld int32 TestFunction16/U::item1 + IL_0021: ldloc.3 + IL_0022: ldfld int32 TestFunction16/U::item1 + IL_0027: ceq + IL_0029: brfalse.s IL_003d + + .line 100001,100001 : 0,0 '' + IL_002b: ldarg.2 + IL_002c: stloc.s V_5 + IL_002e: ldloc.2 + IL_002f: ldfld int32 TestFunction16/U::item2 + IL_0034: ldloc.3 + IL_0035: ldfld int32 TestFunction16/U::item2 + IL_003a: ceq + IL_003c: ret .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.0 - IL_004a: ret + IL_003d: ldc.i4.0 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004b: ldc.i4.0 - IL_004c: ret + IL_003f: ldc.i4.0 + IL_0040: ret .line 100001,100001 : 0,0 '' - IL_004d: ldarg.1 - IL_004e: ldnull - IL_004f: cgt.un - IL_0051: ldc.i4.0 - IL_0052: ceq - IL_0054: ret + IL_0041: ldarg.1 + IL_0042: ldnull + IL_0043: cgt.un + IL_0045: ldc.i4.0 + IL_0046: ceq + IL_0048: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(class TestFunction16/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 71 (0x47) + // Code size 59 (0x3b) .maxstack 4 .locals init ([0] class TestFunction16/U V_0, [1] class TestFunction16/U V_1) @@ -665,70 +593,58 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_003f + IL_0004: brfalse.s IL_0033 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_003d + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: pop - .line 100001,100001 : 0,0 '' - IL_0016: ldarg.0 - IL_0017: stloc.0 - IL_0018: ldarg.1 - IL_0019: stloc.1 - IL_001a: ldloc.0 - IL_001b: ldfld int32 TestFunction16/U::item1 - IL_0020: ldloc.1 - IL_0021: ldfld int32 TestFunction16/U::item1 - IL_0026: bne.un.s IL_002a - - IL_0028: br.s IL_002c - - IL_002a: br.s IL_003b + IL_000c: ldarg.0 + IL_000d: pop + .line 100001,100001 : 0,0 '' + IL_000e: ldarg.0 + IL_000f: stloc.0 + IL_0010: ldarg.1 + IL_0011: stloc.1 + IL_0012: ldloc.0 + IL_0013: ldfld int32 TestFunction16/U::item1 + IL_0018: ldloc.1 + IL_0019: ldfld int32 TestFunction16/U::item1 + IL_001e: bne.un.s IL_002f .line 100001,100001 : 0,0 '' - IL_002c: ldloc.0 - IL_002d: ldfld int32 TestFunction16/U::item2 - IL_0032: ldloc.1 - IL_0033: ldfld int32 TestFunction16/U::item2 - IL_0038: ceq - IL_003a: ret + IL_0020: ldloc.0 + IL_0021: ldfld int32 TestFunction16/U::item2 + IL_0026: ldloc.1 + IL_0027: ldfld int32 TestFunction16/U::item2 + IL_002c: ceq + IL_002e: ret .line 100001,100001 : 0,0 '' - IL_003b: ldc.i4.0 - IL_003c: ret + IL_002f: ldc.i4.0 + IL_0030: ret .line 100001,100001 : 0,0 '' - IL_003d: ldc.i4.0 - IL_003e: ret + IL_0031: ldc.i4.0 + IL_0032: ret .line 100001,100001 : 0,0 '' - IL_003f: ldarg.1 - IL_0040: ldnull - IL_0041: cgt.un - IL_0043: ldc.i4.0 - IL_0044: ceq - IL_0046: ret + IL_0033: ldarg.1 + IL_0034: ldnull + IL_0035: cgt.un + IL_0037: ldc.i4.0 + IL_0038: ceq + IL_003a: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class TestFunction16/U V_0) .line 4,4 : 6,7 '' @@ -736,21 +652,17 @@ IL_0001: isinst TestFunction16/U IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool TestFunction16/U::Equals(class TestFunction16/U) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool TestFunction16/U::Equals(class TestFunction16/U) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method U::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction17.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction17.il.bsl index cc502982e7b..02a8fa33560 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction17.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction17.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction17 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction17 { - // Offset: 0x00000000 Length: 0x0000067E + // Offset: 0x00000000 Length: 0x0000066E } .mresource public FSharpOptimizationData.TestFunction17 { - // Offset: 0x00000688 Length: 0x000001CD + // Offset: 0x00000678 Length: 0x000001CD } .module TestFunction17.exe -// MVID: {59B199CC-A624-45A8-A745-0383CC99B159} +// MVID: {60B68B97-A624-45A8-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x027C0000 +// Image base: 0x06AA0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -119,7 +119,7 @@ instance int32 CompareTo(class TestFunction17/R obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 142 (0x8e) + // Code size 108 (0x6c) .maxstack 4 .locals init ([0] int32 V_0, [1] class [mscorlib]System.Collections.IComparer V_1, @@ -129,130 +129,102 @@ [5] int32 V_5, [6] int32 V_6) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction17.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction17.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_0080 + IL_0004: brfalse.s IL_0062 .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_001a - - IL_0015: br IL_007e + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0060 .line 100001,100001 : 0,0 '' - IL_001a: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_001f: stloc.1 - IL_0020: ldarg.0 - IL_0021: ldfld int32 TestFunction17/R::x@ - IL_0026: stloc.2 - IL_0027: ldarg.1 - IL_0028: ldfld int32 TestFunction17/R::x@ - IL_002d: stloc.3 - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: bge.s IL_0034 - - IL_0032: br.s IL_0036 - - IL_0034: br.s IL_003a + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: ldfld int32 TestFunction17/R::x@ + IL_0018: stloc.2 + IL_0019: ldarg.1 + IL_001a: ldfld int32 TestFunction17/R::x@ + IL_001f: stloc.3 + IL_0020: ldloc.2 + IL_0021: ldloc.3 + IL_0022: bge.s IL_0028 .line 100001,100001 : 0,0 '' - IL_0036: ldc.i4.m1 + IL_0024: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_003f + IL_0025: nop + IL_0026: br.s IL_002d .line 100001,100001 : 0,0 '' - IL_003a: ldloc.2 - IL_003b: ldloc.3 - IL_003c: cgt + IL_0028: ldloc.2 + IL_0029: ldloc.3 + IL_002a: cgt .line 100001,100001 : 0,0 '' - IL_003e: nop + IL_002c: nop .line 100001,100001 : 0,0 '' - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: ldc.i4.0 - IL_0042: bge.s IL_0046 - - IL_0044: br.s IL_0048 - - IL_0046: br.s IL_004a + IL_002d: stloc.0 + IL_002e: ldloc.0 + IL_002f: ldc.i4.0 + IL_0030: bge.s IL_0034 .line 100001,100001 : 0,0 '' - IL_0048: ldloc.0 - IL_0049: ret + IL_0032: ldloc.0 + IL_0033: ret .line 100001,100001 : 0,0 '' - IL_004a: ldloc.0 - IL_004b: ldc.i4.0 - IL_004c: ble.s IL_0050 - - IL_004e: br.s IL_0052 - - IL_0050: br.s IL_0054 + IL_0034: ldloc.0 + IL_0035: ldc.i4.0 + IL_0036: ble.s IL_003a .line 100001,100001 : 0,0 '' - IL_0052: ldloc.0 - IL_0053: ret + IL_0038: ldloc.0 + IL_0039: ret .line 100001,100001 : 0,0 '' - IL_0054: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0059: stloc.s V_4 - IL_005b: ldarg.0 - IL_005c: ldfld int32 TestFunction17/R::y@ - IL_0061: stloc.s V_5 - IL_0063: ldarg.1 - IL_0064: ldfld int32 TestFunction17/R::y@ - IL_0069: stloc.s V_6 - IL_006b: ldloc.s V_5 - IL_006d: ldloc.s V_6 - IL_006f: bge.s IL_0073 - - IL_0071: br.s IL_0075 - - IL_0073: br.s IL_0077 + IL_003a: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_003f: stloc.s V_4 + IL_0041: ldarg.0 + IL_0042: ldfld int32 TestFunction17/R::y@ + IL_0047: stloc.s V_5 + IL_0049: ldarg.1 + IL_004a: ldfld int32 TestFunction17/R::y@ + IL_004f: stloc.s V_6 + IL_0051: ldloc.s V_5 + IL_0053: ldloc.s V_6 + IL_0055: bge.s IL_0059 .line 100001,100001 : 0,0 '' - IL_0075: ldc.i4.m1 - IL_0076: ret + IL_0057: ldc.i4.m1 + IL_0058: ret .line 100001,100001 : 0,0 '' - IL_0077: ldloc.s V_5 - IL_0079: ldloc.s V_6 - IL_007b: cgt - IL_007d: ret + IL_0059: ldloc.s V_5 + IL_005b: ldloc.s V_6 + IL_005d: cgt + IL_005f: ret .line 100001,100001 : 0,0 '' - IL_007e: ldc.i4.1 - IL_007f: ret + IL_0060: ldc.i4.1 + IL_0061: ret .line 100001,100001 : 0,0 '' - IL_0080: ldarg.1 - IL_0081: ldnull - IL_0082: cgt.un - IL_0084: brfalse.s IL_0088 - - IL_0086: br.s IL_008a - - IL_0088: br.s IL_008c + IL_0062: ldarg.1 + IL_0063: ldnull + IL_0064: cgt.un + IL_0066: brfalse.s IL_006a .line 100001,100001 : 0,0 '' - IL_008a: ldc.i4.m1 - IL_008b: ret + IL_0068: ldc.i4.m1 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_008c: ldc.i4.0 - IL_008d: ret + IL_006a: ldc.i4.0 + IL_006b: ret } // end of method R::CompareTo .method public hidebysig virtual final @@ -274,7 +246,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 159 (0x9f) + // Code size 125 (0x7d) .maxstack 4 .locals init ([0] class TestFunction17/R V_0, [1] class TestFunction17/R V_1, @@ -294,135 +266,107 @@ IL_0009: ldarg.0 IL_000a: ldnull IL_000b: cgt.un - IL_000d: brfalse.s IL_0011 - - IL_000f: br.s IL_0016 - - IL_0011: br IL_008c + IL_000d: brfalse.s IL_006e .line 100001,100001 : 0,0 '' - IL_0016: ldarg.1 - IL_0017: unbox.any TestFunction17/R - IL_001c: ldnull - IL_001d: cgt.un - IL_001f: brfalse.s IL_0023 - - IL_0021: br.s IL_0028 - - IL_0023: br IL_008a + IL_000f: ldarg.1 + IL_0010: unbox.any TestFunction17/R + IL_0015: ldnull + IL_0016: cgt.un + IL_0018: brfalse.s IL_006c .line 100001,100001 : 0,0 '' - IL_0028: ldarg.2 - IL_0029: stloc.3 - IL_002a: ldarg.0 - IL_002b: ldfld int32 TestFunction17/R::x@ - IL_0030: stloc.s V_4 - IL_0032: ldloc.1 - IL_0033: ldfld int32 TestFunction17/R::x@ - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_4 - IL_003c: ldloc.s V_5 - IL_003e: bge.s IL_0042 - - IL_0040: br.s IL_0044 - - IL_0042: br.s IL_0048 + IL_001a: ldarg.2 + IL_001b: stloc.3 + IL_001c: ldarg.0 + IL_001d: ldfld int32 TestFunction17/R::x@ + IL_0022: stloc.s V_4 + IL_0024: ldloc.1 + IL_0025: ldfld int32 TestFunction17/R::x@ + IL_002a: stloc.s V_5 + IL_002c: ldloc.s V_4 + IL_002e: ldloc.s V_5 + IL_0030: bge.s IL_0036 .line 100001,100001 : 0,0 '' - IL_0044: ldc.i4.m1 + IL_0032: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004f + IL_0033: nop + IL_0034: br.s IL_003d .line 100001,100001 : 0,0 '' - IL_0048: ldloc.s V_4 - IL_004a: ldloc.s V_5 - IL_004c: cgt + IL_0036: ldloc.s V_4 + IL_0038: ldloc.s V_5 + IL_003a: cgt .line 100001,100001 : 0,0 '' - IL_004e: nop + IL_003c: nop .line 100001,100001 : 0,0 '' - IL_004f: stloc.2 - IL_0050: ldloc.2 - IL_0051: ldc.i4.0 - IL_0052: bge.s IL_0056 - - IL_0054: br.s IL_0058 - - IL_0056: br.s IL_005a + IL_003d: stloc.2 + IL_003e: ldloc.2 + IL_003f: ldc.i4.0 + IL_0040: bge.s IL_0044 .line 100001,100001 : 0,0 '' - IL_0058: ldloc.2 - IL_0059: ret + IL_0042: ldloc.2 + IL_0043: ret .line 100001,100001 : 0,0 '' - IL_005a: ldloc.2 - IL_005b: ldc.i4.0 - IL_005c: ble.s IL_0060 - - IL_005e: br.s IL_0062 - - IL_0060: br.s IL_0064 + IL_0044: ldloc.2 + IL_0045: ldc.i4.0 + IL_0046: ble.s IL_004a .line 100001,100001 : 0,0 '' - IL_0062: ldloc.2 - IL_0063: ret + IL_0048: ldloc.2 + IL_0049: ret .line 100001,100001 : 0,0 '' - IL_0064: ldarg.2 - IL_0065: stloc.s V_6 - IL_0067: ldarg.0 - IL_0068: ldfld int32 TestFunction17/R::y@ - IL_006d: stloc.s V_7 - IL_006f: ldloc.1 - IL_0070: ldfld int32 TestFunction17/R::y@ - IL_0075: stloc.s V_8 - IL_0077: ldloc.s V_7 - IL_0079: ldloc.s V_8 - IL_007b: bge.s IL_007f - - IL_007d: br.s IL_0081 - - IL_007f: br.s IL_0083 + IL_004a: ldarg.2 + IL_004b: stloc.s V_6 + IL_004d: ldarg.0 + IL_004e: ldfld int32 TestFunction17/R::y@ + IL_0053: stloc.s V_7 + IL_0055: ldloc.1 + IL_0056: ldfld int32 TestFunction17/R::y@ + IL_005b: stloc.s V_8 + IL_005d: ldloc.s V_7 + IL_005f: ldloc.s V_8 + IL_0061: bge.s IL_0065 .line 100001,100001 : 0,0 '' - IL_0081: ldc.i4.m1 - IL_0082: ret + IL_0063: ldc.i4.m1 + IL_0064: ret .line 100001,100001 : 0,0 '' - IL_0083: ldloc.s V_7 - IL_0085: ldloc.s V_8 - IL_0087: cgt - IL_0089: ret + IL_0065: ldloc.s V_7 + IL_0067: ldloc.s V_8 + IL_0069: cgt + IL_006b: ret .line 100001,100001 : 0,0 '' - IL_008a: ldc.i4.1 - IL_008b: ret + IL_006c: ldc.i4.1 + IL_006d: ret .line 100001,100001 : 0,0 '' - IL_008c: ldarg.1 - IL_008d: unbox.any TestFunction17/R - IL_0092: ldnull - IL_0093: cgt.un - IL_0095: brfalse.s IL_0099 - - IL_0097: br.s IL_009b - - IL_0099: br.s IL_009d + IL_006e: ldarg.1 + IL_006f: unbox.any TestFunction17/R + IL_0074: ldnull + IL_0075: cgt.un + IL_0077: brfalse.s IL_007b .line 100001,100001 : 0,0 '' - IL_009b: ldc.i4.m1 - IL_009c: ret + IL_0079: ldc.i4.m1 + IL_007a: ret .line 100001,100001 : 0,0 '' - IL_009d: ldc.i4.0 - IL_009e: ret + IL_007b: ldc.i4.0 + IL_007c: ret } // end of method R::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 62 (0x3e) + // Code size 58 (0x3a) .maxstack 7 .locals init ([0] int32 V_0, [1] class [mscorlib]System.Collections.IEqualityComparer V_1, @@ -431,51 +375,47 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_003c - - .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldc.i4 0x9e3779b9 - IL_0011: ldarg.1 - IL_0012: stloc.1 - IL_0013: ldarg.0 - IL_0014: ldfld int32 TestFunction17/R::y@ - IL_0019: ldloc.0 - IL_001a: ldc.i4.6 - IL_001b: shl - IL_001c: ldloc.0 - IL_001d: ldc.i4.2 - IL_001e: shr - IL_001f: add - IL_0020: add - IL_0021: add - IL_0022: stloc.0 - IL_0023: ldc.i4 0x9e3779b9 - IL_0028: ldarg.1 - IL_0029: stloc.2 - IL_002a: ldarg.0 - IL_002b: ldfld int32 TestFunction17/R::x@ - IL_0030: ldloc.0 - IL_0031: ldc.i4.6 - IL_0032: shl - IL_0033: ldloc.0 - IL_0034: ldc.i4.2 - IL_0035: shr - IL_0036: add - IL_0037: add - IL_0038: add - IL_0039: stloc.0 - IL_003a: ldloc.0 - IL_003b: ret - - .line 100001,100001 : 0,0 '' - IL_003c: ldc.i4.0 - IL_003d: ret + IL_0004: brfalse.s IL_0038 + + .line 100001,100001 : 0,0 '' + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldc.i4 0x9e3779b9 + IL_000d: ldarg.1 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 TestFunction17/R::y@ + IL_0015: ldloc.0 + IL_0016: ldc.i4.6 + IL_0017: shl + IL_0018: ldloc.0 + IL_0019: ldc.i4.2 + IL_001a: shr + IL_001b: add + IL_001c: add + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0x9e3779b9 + IL_0024: ldarg.1 + IL_0025: stloc.2 + IL_0026: ldarg.0 + IL_0027: ldfld int32 TestFunction17/R::x@ + IL_002c: ldloc.0 + IL_002d: ldc.i4.6 + IL_002e: shl + IL_002f: ldloc.0 + IL_0030: ldc.i4.2 + IL_0031: shr + IL_0032: add + IL_0033: add + IL_0034: add + IL_0035: stloc.0 + IL_0036: ldloc.0 + IL_0037: ret + + .line 100001,100001 : 0,0 '' + IL_0038: ldc.i4.0 + IL_0039: ret } // end of method R::GetHashCode .method public hidebysig virtual final @@ -496,7 +436,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 77 (0x4d) + // Code size 65 (0x41) .maxstack 4 .locals init ([0] class TestFunction17/R V_0, [1] class TestFunction17/R V_1, @@ -506,133 +446,109 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0045 + IL_0004: brfalse.s IL_0039 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst TestFunction17/R - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_0043 + IL_0006: ldarg.1 + IL_0007: isinst TestFunction17/R + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0037 .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.2 - IL_001b: stloc.2 - IL_001c: ldarg.0 - IL_001d: ldfld int32 TestFunction17/R::x@ - IL_0022: ldloc.1 - IL_0023: ldfld int32 TestFunction17/R::x@ - IL_0028: ceq - IL_002a: brfalse.s IL_002e - - IL_002c: br.s IL_0030 - - IL_002e: br.s IL_0041 + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.2 + IL_0013: stloc.2 + IL_0014: ldarg.0 + IL_0015: ldfld int32 TestFunction17/R::x@ + IL_001a: ldloc.1 + IL_001b: ldfld int32 TestFunction17/R::x@ + IL_0020: ceq + IL_0022: brfalse.s IL_0035 .line 100001,100001 : 0,0 '' - IL_0030: ldarg.2 - IL_0031: stloc.3 - IL_0032: ldarg.0 - IL_0033: ldfld int32 TestFunction17/R::y@ - IL_0038: ldloc.1 - IL_0039: ldfld int32 TestFunction17/R::y@ - IL_003e: ceq - IL_0040: ret + IL_0024: ldarg.2 + IL_0025: stloc.3 + IL_0026: ldarg.0 + IL_0027: ldfld int32 TestFunction17/R::y@ + IL_002c: ldloc.1 + IL_002d: ldfld int32 TestFunction17/R::y@ + IL_0032: ceq + IL_0034: ret .line 100001,100001 : 0,0 '' - IL_0041: ldc.i4.0 - IL_0042: ret + IL_0035: ldc.i4.0 + IL_0036: ret .line 100001,100001 : 0,0 '' - IL_0043: ldc.i4.0 - IL_0044: ret + IL_0037: ldc.i4.0 + IL_0038: ret .line 100001,100001 : 0,0 '' - IL_0045: ldarg.1 - IL_0046: ldnull - IL_0047: cgt.un - IL_0049: ldc.i4.0 - IL_004a: ceq - IL_004c: ret + IL_0039: ldarg.1 + IL_003a: ldnull + IL_003b: cgt.un + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: ret } // end of method R::Equals .method public hidebysig virtual final instance bool Equals(class TestFunction17/R obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 65 (0x41) - .maxstack 4 + // Code size 53 (0x35) + .maxstack 8 .line 100001,100001 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0039 + IL_0004: brfalse.s IL_002d .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0037 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_002b .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 TestFunction17/R::x@ - IL_001a: ldarg.1 - IL_001b: ldfld int32 TestFunction17/R::x@ - IL_0020: bne.un.s IL_0024 - - IL_0022: br.s IL_0026 - - IL_0024: br.s IL_0035 + IL_000c: ldarg.0 + IL_000d: ldfld int32 TestFunction17/R::x@ + IL_0012: ldarg.1 + IL_0013: ldfld int32 TestFunction17/R::x@ + IL_0018: bne.un.s IL_0029 .line 100001,100001 : 0,0 '' - IL_0026: ldarg.0 - IL_0027: ldfld int32 TestFunction17/R::y@ - IL_002c: ldarg.1 - IL_002d: ldfld int32 TestFunction17/R::y@ - IL_0032: ceq - IL_0034: ret + IL_001a: ldarg.0 + IL_001b: ldfld int32 TestFunction17/R::y@ + IL_0020: ldarg.1 + IL_0021: ldfld int32 TestFunction17/R::y@ + IL_0026: ceq + IL_0028: ret .line 100001,100001 : 0,0 '' - IL_0035: ldc.i4.0 - IL_0036: ret + IL_0029: ldc.i4.0 + IL_002a: ret .line 100001,100001 : 0,0 '' - IL_0037: ldc.i4.0 - IL_0038: ret + IL_002b: ldc.i4.0 + IL_002c: ret .line 100001,100001 : 0,0 '' - IL_0039: ldarg.1 - IL_003a: ldnull - IL_003b: cgt.un - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: ret + IL_002d: ldarg.1 + IL_002e: ldnull + IL_002f: cgt.un + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: ret } // end of method R::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class TestFunction17/R V_0) .line 4,4 : 6,7 '' @@ -640,21 +556,17 @@ IL_0001: isinst TestFunction17/R IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool TestFunction17/R::Equals(class TestFunction17/R) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool TestFunction17/R::Equals(class TestFunction17/R) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method R::Equals .property instance int32 x() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction19.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction19.il.bsl index f5468bf0fd6..a6b8e845ea4 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction19.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction19.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction19 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction19 { - // Offset: 0x00000000 Length: 0x00000352 + // Offset: 0x00000000 Length: 0x0000034E } .mresource public FSharpOptimizationData.TestFunction19 { // Offset: 0x00000358 Length: 0x00000100 } .module TestFunction19.exe -// MVID: {59B19208-A624-46AE-A745-03830892B159} +// MVID: {60B68B97-A624-46AE-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x016D0000 +// Image base: 0x00E60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -64,7 +64,7 @@ // Code size 23 (0x17) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction19.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction19.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction20.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction20.il.bsl index 5b65668cd8c..4126263a239 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction20.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction20.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction20 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction20 { - // Offset: 0x00000000 Length: 0x00000393 + // Offset: 0x00000000 Length: 0x0000038F } .mresource public FSharpOptimizationData.TestFunction20 { // Offset: 0x00000398 Length: 0x00000100 } .module TestFunction20.exe -// MVID: {59B19208-A643-44FB-A745-03830892B159} +// MVID: {60B68B97-A643-44FB-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01320000 +// Image base: 0x06B80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ .locals init ([0] int32 z, [1] int32 w) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction20.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction20.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction21.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction21.il.bsl index 30b59304c56..752ef0b375b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction21.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction21.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction21 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction21 { - // Offset: 0x00000000 Length: 0x00000685 + // Offset: 0x00000000 Length: 0x00000675 } .mresource public FSharpOptimizationData.TestFunction21 { - // Offset: 0x00000690 Length: 0x000001CD + // Offset: 0x00000680 Length: 0x000001CD } .module TestFunction21.exe -// MVID: {59B19208-A643-45E6-A745-03830892B159} +// MVID: {60B68B97-A643-45E6-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00F80000 +// Image base: 0x05500000 // =============== CLASS MEMBERS DECLARATION =================== @@ -174,7 +174,7 @@ instance int32 CompareTo(class TestFunction21/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 154 (0x9a) + // Code size 120 (0x78) .maxstack 4 .locals init ([0] class TestFunction21/U V_0, [1] class TestFunction21/U V_1, @@ -186,137 +186,109 @@ [7] int32 V_7, [8] int32 V_8) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction21.fs' + .line 100001,100001 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction21.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_008c + IL_0004: brfalse.s IL_006e .line 100001,100001 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_001a - - IL_0015: br IL_008a + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_006c .line 100001,100001 : 0,0 '' - IL_001a: ldarg.0 - IL_001b: pop + IL_000c: ldarg.0 + IL_000d: pop .line 100001,100001 : 0,0 '' - IL_001c: ldarg.0 - IL_001d: stloc.0 - IL_001e: ldarg.1 - IL_001f: stloc.1 - IL_0020: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0025: stloc.3 - IL_0026: ldloc.0 - IL_0027: ldfld int32 TestFunction21/U::item1 - IL_002c: stloc.s V_4 - IL_002e: ldloc.1 - IL_002f: ldfld int32 TestFunction21/U::item1 - IL_0034: stloc.s V_5 - IL_0036: ldloc.s V_4 - IL_0038: ldloc.s V_5 - IL_003a: bge.s IL_003e - - IL_003c: br.s IL_0040 - - IL_003e: br.s IL_0044 + IL_000e: ldarg.0 + IL_000f: stloc.0 + IL_0010: ldarg.1 + IL_0011: stloc.1 + IL_0012: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0017: stloc.3 + IL_0018: ldloc.0 + IL_0019: ldfld int32 TestFunction21/U::item1 + IL_001e: stloc.s V_4 + IL_0020: ldloc.1 + IL_0021: ldfld int32 TestFunction21/U::item1 + IL_0026: stloc.s V_5 + IL_0028: ldloc.s V_4 + IL_002a: ldloc.s V_5 + IL_002c: bge.s IL_0032 .line 100001,100001 : 0,0 '' - IL_0040: ldc.i4.m1 + IL_002e: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_0041: nop - IL_0042: br.s IL_004b + IL_002f: nop + IL_0030: br.s IL_0039 .line 100001,100001 : 0,0 '' - IL_0044: ldloc.s V_4 - IL_0046: ldloc.s V_5 - IL_0048: cgt + IL_0032: ldloc.s V_4 + IL_0034: ldloc.s V_5 + IL_0036: cgt .line 100001,100001 : 0,0 '' - IL_004a: nop + IL_0038: nop .line 100001,100001 : 0,0 '' - IL_004b: stloc.2 - IL_004c: ldloc.2 - IL_004d: ldc.i4.0 - IL_004e: bge.s IL_0052 - - IL_0050: br.s IL_0054 - - IL_0052: br.s IL_0056 + IL_0039: stloc.2 + IL_003a: ldloc.2 + IL_003b: ldc.i4.0 + IL_003c: bge.s IL_0040 .line 100001,100001 : 0,0 '' - IL_0054: ldloc.2 - IL_0055: ret + IL_003e: ldloc.2 + IL_003f: ret .line 100001,100001 : 0,0 '' - IL_0056: ldloc.2 - IL_0057: ldc.i4.0 - IL_0058: ble.s IL_005c - - IL_005a: br.s IL_005e - - IL_005c: br.s IL_0060 + IL_0040: ldloc.2 + IL_0041: ldc.i4.0 + IL_0042: ble.s IL_0046 .line 100001,100001 : 0,0 '' - IL_005e: ldloc.2 - IL_005f: ret + IL_0044: ldloc.2 + IL_0045: ret .line 100001,100001 : 0,0 '' - IL_0060: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0065: stloc.s V_6 - IL_0067: ldloc.0 - IL_0068: ldfld int32 TestFunction21/U::item2 - IL_006d: stloc.s V_7 - IL_006f: ldloc.1 - IL_0070: ldfld int32 TestFunction21/U::item2 - IL_0075: stloc.s V_8 - IL_0077: ldloc.s V_7 - IL_0079: ldloc.s V_8 - IL_007b: bge.s IL_007f - - IL_007d: br.s IL_0081 - - IL_007f: br.s IL_0083 + IL_0046: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_004b: stloc.s V_6 + IL_004d: ldloc.0 + IL_004e: ldfld int32 TestFunction21/U::item2 + IL_0053: stloc.s V_7 + IL_0055: ldloc.1 + IL_0056: ldfld int32 TestFunction21/U::item2 + IL_005b: stloc.s V_8 + IL_005d: ldloc.s V_7 + IL_005f: ldloc.s V_8 + IL_0061: bge.s IL_0065 .line 100001,100001 : 0,0 '' - IL_0081: ldc.i4.m1 - IL_0082: ret + IL_0063: ldc.i4.m1 + IL_0064: ret .line 100001,100001 : 0,0 '' - IL_0083: ldloc.s V_7 - IL_0085: ldloc.s V_8 - IL_0087: cgt - IL_0089: ret + IL_0065: ldloc.s V_7 + IL_0067: ldloc.s V_8 + IL_0069: cgt + IL_006b: ret .line 100001,100001 : 0,0 '' - IL_008a: ldc.i4.1 - IL_008b: ret + IL_006c: ldc.i4.1 + IL_006d: ret .line 100001,100001 : 0,0 '' - IL_008c: ldarg.1 - IL_008d: ldnull - IL_008e: cgt.un - IL_0090: brfalse.s IL_0094 - - IL_0092: br.s IL_0096 - - IL_0094: br.s IL_0098 + IL_006e: ldarg.1 + IL_006f: ldnull + IL_0070: cgt.un + IL_0072: brfalse.s IL_0076 .line 100001,100001 : 0,0 '' - IL_0096: ldc.i4.m1 - IL_0097: ret + IL_0074: ldc.i4.m1 + IL_0075: ret .line 100001,100001 : 0,0 '' - IL_0098: ldc.i4.0 - IL_0099: ret + IL_0076: ldc.i4.0 + IL_0077: ret } // end of method U::CompareTo .method public hidebysig virtual final @@ -338,7 +310,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 164 (0xa4) + // Code size 130 (0x82) .maxstack 4 .locals init ([0] class TestFunction21/U V_0, [1] class TestFunction21/U V_1, @@ -357,142 +329,114 @@ IL_0007: ldarg.0 IL_0008: ldnull IL_0009: cgt.un - IL_000b: brfalse.s IL_000f - - IL_000d: br.s IL_0014 - - IL_000f: br IL_0091 + IL_000b: brfalse.s IL_0073 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.1 - IL_0015: unbox.any TestFunction21/U - IL_001a: ldnull - IL_001b: cgt.un - IL_001d: brfalse.s IL_0021 - - IL_001f: br.s IL_0026 - - IL_0021: br IL_008f + IL_000d: ldarg.1 + IL_000e: unbox.any TestFunction21/U + IL_0013: ldnull + IL_0014: cgt.un + IL_0016: brfalse.s IL_0071 .line 100001,100001 : 0,0 '' - IL_0026: ldarg.0 - IL_0027: pop + IL_0018: ldarg.0 + IL_0019: pop .line 100001,100001 : 0,0 '' - IL_0028: ldarg.0 - IL_0029: stloc.1 - IL_002a: ldloc.0 - IL_002b: stloc.2 - IL_002c: ldarg.2 - IL_002d: stloc.s V_4 - IL_002f: ldloc.1 - IL_0030: ldfld int32 TestFunction21/U::item1 - IL_0035: stloc.s V_5 - IL_0037: ldloc.2 - IL_0038: ldfld int32 TestFunction21/U::item1 - IL_003d: stloc.s V_6 - IL_003f: ldloc.s V_5 - IL_0041: ldloc.s V_6 - IL_0043: bge.s IL_0047 - - IL_0045: br.s IL_0049 - - IL_0047: br.s IL_004d + IL_001a: ldarg.0 + IL_001b: stloc.1 + IL_001c: ldloc.0 + IL_001d: stloc.2 + IL_001e: ldarg.2 + IL_001f: stloc.s V_4 + IL_0021: ldloc.1 + IL_0022: ldfld int32 TestFunction21/U::item1 + IL_0027: stloc.s V_5 + IL_0029: ldloc.2 + IL_002a: ldfld int32 TestFunction21/U::item1 + IL_002f: stloc.s V_6 + IL_0031: ldloc.s V_5 + IL_0033: ldloc.s V_6 + IL_0035: bge.s IL_003b .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.m1 + IL_0037: ldc.i4.m1 .line 100001,100001 : 0,0 '' - IL_004a: nop - IL_004b: br.s IL_0054 + IL_0038: nop + IL_0039: br.s IL_0042 .line 100001,100001 : 0,0 '' - IL_004d: ldloc.s V_5 - IL_004f: ldloc.s V_6 - IL_0051: cgt + IL_003b: ldloc.s V_5 + IL_003d: ldloc.s V_6 + IL_003f: cgt .line 100001,100001 : 0,0 '' - IL_0053: nop + IL_0041: nop .line 100001,100001 : 0,0 '' - IL_0054: stloc.3 - IL_0055: ldloc.3 - IL_0056: ldc.i4.0 - IL_0057: bge.s IL_005b - - IL_0059: br.s IL_005d - - IL_005b: br.s IL_005f + IL_0042: stloc.3 + IL_0043: ldloc.3 + IL_0044: ldc.i4.0 + IL_0045: bge.s IL_0049 .line 100001,100001 : 0,0 '' - IL_005d: ldloc.3 - IL_005e: ret + IL_0047: ldloc.3 + IL_0048: ret .line 100001,100001 : 0,0 '' - IL_005f: ldloc.3 - IL_0060: ldc.i4.0 - IL_0061: ble.s IL_0065 - - IL_0063: br.s IL_0067 - - IL_0065: br.s IL_0069 + IL_0049: ldloc.3 + IL_004a: ldc.i4.0 + IL_004b: ble.s IL_004f .line 100001,100001 : 0,0 '' - IL_0067: ldloc.3 - IL_0068: ret + IL_004d: ldloc.3 + IL_004e: ret .line 100001,100001 : 0,0 '' - IL_0069: ldarg.2 - IL_006a: stloc.s V_7 - IL_006c: ldloc.1 - IL_006d: ldfld int32 TestFunction21/U::item2 - IL_0072: stloc.s V_8 - IL_0074: ldloc.2 - IL_0075: ldfld int32 TestFunction21/U::item2 - IL_007a: stloc.s V_9 - IL_007c: ldloc.s V_8 - IL_007e: ldloc.s V_9 - IL_0080: bge.s IL_0084 - - IL_0082: br.s IL_0086 - - IL_0084: br.s IL_0088 + IL_004f: ldarg.2 + IL_0050: stloc.s V_7 + IL_0052: ldloc.1 + IL_0053: ldfld int32 TestFunction21/U::item2 + IL_0058: stloc.s V_8 + IL_005a: ldloc.2 + IL_005b: ldfld int32 TestFunction21/U::item2 + IL_0060: stloc.s V_9 + IL_0062: ldloc.s V_8 + IL_0064: ldloc.s V_9 + IL_0066: bge.s IL_006a .line 100001,100001 : 0,0 '' - IL_0086: ldc.i4.m1 - IL_0087: ret + IL_0068: ldc.i4.m1 + IL_0069: ret .line 100001,100001 : 0,0 '' - IL_0088: ldloc.s V_8 - IL_008a: ldloc.s V_9 - IL_008c: cgt - IL_008e: ret + IL_006a: ldloc.s V_8 + IL_006c: ldloc.s V_9 + IL_006e: cgt + IL_0070: ret .line 100001,100001 : 0,0 '' - IL_008f: ldc.i4.1 - IL_0090: ret + IL_0071: ldc.i4.1 + IL_0072: ret .line 100001,100001 : 0,0 '' - IL_0091: ldarg.1 - IL_0092: unbox.any TestFunction21/U - IL_0097: ldnull - IL_0098: cgt.un - IL_009a: brfalse.s IL_009e - - IL_009c: br.s IL_00a0 - - IL_009e: br.s IL_00a2 + IL_0073: ldarg.1 + IL_0074: unbox.any TestFunction21/U + IL_0079: ldnull + IL_007a: cgt.un + IL_007c: brfalse.s IL_0080 .line 100001,100001 : 0,0 '' - IL_00a0: ldc.i4.m1 - IL_00a1: ret + IL_007e: ldc.i4.m1 + IL_007f: ret .line 100001,100001 : 0,0 '' - IL_00a2: ldc.i4.0 - IL_00a3: ret + IL_0080: ldc.i4.0 + IL_0081: ret } // end of method U::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 68 (0x44) + // Code size 64 (0x40) .maxstack 7 .locals init ([0] int32 V_0, [1] class TestFunction21/U V_1, @@ -502,58 +446,54 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0042 - - .line 100001,100001 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldarg.0 - IL_000d: pop - .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: stloc.1 - IL_0010: ldc.i4.0 - IL_0011: stloc.0 - IL_0012: ldc.i4 0x9e3779b9 - IL_0017: ldarg.1 - IL_0018: stloc.2 - IL_0019: ldloc.1 - IL_001a: ldfld int32 TestFunction21/U::item2 - IL_001f: ldloc.0 - IL_0020: ldc.i4.6 - IL_0021: shl - IL_0022: ldloc.0 - IL_0023: ldc.i4.2 - IL_0024: shr - IL_0025: add - IL_0026: add - IL_0027: add - IL_0028: stloc.0 - IL_0029: ldc.i4 0x9e3779b9 - IL_002e: ldarg.1 - IL_002f: stloc.3 - IL_0030: ldloc.1 - IL_0031: ldfld int32 TestFunction21/U::item1 - IL_0036: ldloc.0 - IL_0037: ldc.i4.6 - IL_0038: shl - IL_0039: ldloc.0 - IL_003a: ldc.i4.2 - IL_003b: shr - IL_003c: add - IL_003d: add - IL_003e: add - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: ret - - .line 100001,100001 : 0,0 '' - IL_0042: ldc.i4.0 - IL_0043: ret + IL_0004: brfalse.s IL_003e + + .line 100001,100001 : 0,0 '' + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldarg.0 + IL_0009: pop + .line 100001,100001 : 0,0 '' + IL_000a: ldarg.0 + IL_000b: stloc.1 + IL_000c: ldc.i4.0 + IL_000d: stloc.0 + IL_000e: ldc.i4 0x9e3779b9 + IL_0013: ldarg.1 + IL_0014: stloc.2 + IL_0015: ldloc.1 + IL_0016: ldfld int32 TestFunction21/U::item2 + IL_001b: ldloc.0 + IL_001c: ldc.i4.6 + IL_001d: shl + IL_001e: ldloc.0 + IL_001f: ldc.i4.2 + IL_0020: shr + IL_0021: add + IL_0022: add + IL_0023: add + IL_0024: stloc.0 + IL_0025: ldc.i4 0x9e3779b9 + IL_002a: ldarg.1 + IL_002b: stloc.3 + IL_002c: ldloc.1 + IL_002d: ldfld int32 TestFunction21/U::item1 + IL_0032: ldloc.0 + IL_0033: ldc.i4.6 + IL_0034: shl + IL_0035: ldloc.0 + IL_0036: ldc.i4.2 + IL_0037: shr + IL_0038: add + IL_0039: add + IL_003a: add + IL_003b: stloc.0 + IL_003c: ldloc.0 + IL_003d: ret + + .line 100001,100001 : 0,0 '' + IL_003e: ldc.i4.0 + IL_003f: ret } // end of method U::GetHashCode .method public hidebysig virtual final @@ -574,7 +514,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 85 (0x55) + // Code size 73 (0x49) .maxstack 4 .locals init ([0] class TestFunction21/U V_0, [1] class TestFunction21/U V_1, @@ -586,78 +526,66 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_004d + IL_0004: brfalse.s IL_0041 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst TestFunction21/U - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_004b + IL_0006: ldarg.1 + IL_0007: isinst TestFunction21/U + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_003f .line 100001,100001 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.0 - IL_001b: pop + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: pop .line 100001,100001 : 0,0 '' - IL_001c: ldarg.0 - IL_001d: stloc.2 - IL_001e: ldloc.1 - IL_001f: stloc.3 - IL_0020: ldarg.2 - IL_0021: stloc.s V_4 - IL_0023: ldloc.2 - IL_0024: ldfld int32 TestFunction21/U::item1 - IL_0029: ldloc.3 - IL_002a: ldfld int32 TestFunction21/U::item1 - IL_002f: ceq - IL_0031: brfalse.s IL_0035 - - IL_0033: br.s IL_0037 - - IL_0035: br.s IL_0049 - - .line 100001,100001 : 0,0 '' - IL_0037: ldarg.2 - IL_0038: stloc.s V_5 - IL_003a: ldloc.2 - IL_003b: ldfld int32 TestFunction21/U::item2 - IL_0040: ldloc.3 - IL_0041: ldfld int32 TestFunction21/U::item2 - IL_0046: ceq - IL_0048: ret + IL_0014: ldarg.0 + IL_0015: stloc.2 + IL_0016: ldloc.1 + IL_0017: stloc.3 + IL_0018: ldarg.2 + IL_0019: stloc.s V_4 + IL_001b: ldloc.2 + IL_001c: ldfld int32 TestFunction21/U::item1 + IL_0021: ldloc.3 + IL_0022: ldfld int32 TestFunction21/U::item1 + IL_0027: ceq + IL_0029: brfalse.s IL_003d + + .line 100001,100001 : 0,0 '' + IL_002b: ldarg.2 + IL_002c: stloc.s V_5 + IL_002e: ldloc.2 + IL_002f: ldfld int32 TestFunction21/U::item2 + IL_0034: ldloc.3 + IL_0035: ldfld int32 TestFunction21/U::item2 + IL_003a: ceq + IL_003c: ret .line 100001,100001 : 0,0 '' - IL_0049: ldc.i4.0 - IL_004a: ret + IL_003d: ldc.i4.0 + IL_003e: ret .line 100001,100001 : 0,0 '' - IL_004b: ldc.i4.0 - IL_004c: ret + IL_003f: ldc.i4.0 + IL_0040: ret .line 100001,100001 : 0,0 '' - IL_004d: ldarg.1 - IL_004e: ldnull - IL_004f: cgt.un - IL_0051: ldc.i4.0 - IL_0052: ceq - IL_0054: ret + IL_0041: ldarg.1 + IL_0042: ldnull + IL_0043: cgt.un + IL_0045: ldc.i4.0 + IL_0046: ceq + IL_0048: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(class TestFunction21/U obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 71 (0x47) + // Code size 59 (0x3b) .maxstack 4 .locals init ([0] class TestFunction21/U V_0, [1] class TestFunction21/U V_1) @@ -665,70 +593,58 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_003f + IL_0004: brfalse.s IL_0033 .line 100001,100001 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_003d + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0031 .line 100001,100001 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: pop - .line 100001,100001 : 0,0 '' - IL_0016: ldarg.0 - IL_0017: stloc.0 - IL_0018: ldarg.1 - IL_0019: stloc.1 - IL_001a: ldloc.0 - IL_001b: ldfld int32 TestFunction21/U::item1 - IL_0020: ldloc.1 - IL_0021: ldfld int32 TestFunction21/U::item1 - IL_0026: bne.un.s IL_002a - - IL_0028: br.s IL_002c - - IL_002a: br.s IL_003b + IL_000c: ldarg.0 + IL_000d: pop + .line 100001,100001 : 0,0 '' + IL_000e: ldarg.0 + IL_000f: stloc.0 + IL_0010: ldarg.1 + IL_0011: stloc.1 + IL_0012: ldloc.0 + IL_0013: ldfld int32 TestFunction21/U::item1 + IL_0018: ldloc.1 + IL_0019: ldfld int32 TestFunction21/U::item1 + IL_001e: bne.un.s IL_002f .line 100001,100001 : 0,0 '' - IL_002c: ldloc.0 - IL_002d: ldfld int32 TestFunction21/U::item2 - IL_0032: ldloc.1 - IL_0033: ldfld int32 TestFunction21/U::item2 - IL_0038: ceq - IL_003a: ret + IL_0020: ldloc.0 + IL_0021: ldfld int32 TestFunction21/U::item2 + IL_0026: ldloc.1 + IL_0027: ldfld int32 TestFunction21/U::item2 + IL_002c: ceq + IL_002e: ret .line 100001,100001 : 0,0 '' - IL_003b: ldc.i4.0 - IL_003c: ret + IL_002f: ldc.i4.0 + IL_0030: ret .line 100001,100001 : 0,0 '' - IL_003d: ldc.i4.0 - IL_003e: ret + IL_0031: ldc.i4.0 + IL_0032: ret .line 100001,100001 : 0,0 '' - IL_003f: ldarg.1 - IL_0040: ldnull - IL_0041: cgt.un - IL_0043: ldc.i4.0 - IL_0044: ceq - IL_0046: ret + IL_0033: ldarg.1 + IL_0034: ldnull + IL_0035: cgt.un + IL_0037: ldc.i4.0 + IL_0038: ceq + IL_003a: ret } // end of method U::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class TestFunction21/U V_0) .line 4,4 : 6,7 '' @@ -736,21 +652,17 @@ IL_0001: isinst TestFunction21/U IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 100001,100001 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool TestFunction21/U::Equals(class TestFunction21/U) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool TestFunction21/U::Equals(class TestFunction21/U) + IL_0011: ret .line 100001,100001 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method U::Equals .property instance int32 Tag() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction23.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction23.il.bsl index c222b9759e1..7f88a4908a9 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction23.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction23.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x00000340 Length: 0x000000E3 } .module TestFunction23.exe -// MVID: {5FCFFD21-A643-451C-A745-038321FDCF5F} +// MVID: {60B68B97-A643-451C-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07570000 +// Image base: 0x07240000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction24.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction24.il.bsl index bdbd5f41fc7..1063152863a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction24.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction24.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction24 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction24 { - // Offset: 0x00000000 Length: 0x0000075B + // Offset: 0x00000000 Length: 0x00000742 } .mresource public FSharpOptimizationData.TestFunction24 { - // Offset: 0x00000760 Length: 0x00000228 + // Offset: 0x00000748 Length: 0x00000228 } .module TestFunction24.exe -// MVID: {59B19208-A643-4587-A745-03830892B159} +// MVID: {60B68B97-A643-4587-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01080000 +// Image base: 0x06EA0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -141,7 +141,7 @@ instance int32 CompareTo(class TestFunction24/Point obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 142 (0x8e) + // Code size 108 (0x6c) .maxstack 4 .locals init ([0] int32 V_0, [1] class [mscorlib]System.Collections.IComparer V_1, @@ -151,130 +151,102 @@ [5] int32 V_5, [6] int32 V_6) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 16707566,16707566 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction24.fs' + .line 16707566,16707566 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction24.fs' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000d - - IL_0008: br IL_0080 + IL_0004: brfalse.s IL_0062 .line 16707566,16707566 : 0,0 '' - IL_000d: ldarg.1 - IL_000e: ldnull - IL_000f: cgt.un - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_001a - - IL_0015: br IL_007e + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_0060 .line 16707566,16707566 : 0,0 '' - IL_001a: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_001f: stloc.1 - IL_0020: ldarg.0 - IL_0021: ldfld int32 TestFunction24/Point::x@ - IL_0026: stloc.2 - IL_0027: ldarg.1 - IL_0028: ldfld int32 TestFunction24/Point::x@ - IL_002d: stloc.3 - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: bge.s IL_0034 - - IL_0032: br.s IL_0036 - - IL_0034: br.s IL_003a + IL_000c: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0011: stloc.1 + IL_0012: ldarg.0 + IL_0013: ldfld int32 TestFunction24/Point::x@ + IL_0018: stloc.2 + IL_0019: ldarg.1 + IL_001a: ldfld int32 TestFunction24/Point::x@ + IL_001f: stloc.3 + IL_0020: ldloc.2 + IL_0021: ldloc.3 + IL_0022: bge.s IL_0028 .line 16707566,16707566 : 0,0 '' - IL_0036: ldc.i4.m1 + IL_0024: ldc.i4.m1 .line 16707566,16707566 : 0,0 '' - IL_0037: nop - IL_0038: br.s IL_003f + IL_0025: nop + IL_0026: br.s IL_002d .line 16707566,16707566 : 0,0 '' - IL_003a: ldloc.2 - IL_003b: ldloc.3 - IL_003c: cgt + IL_0028: ldloc.2 + IL_0029: ldloc.3 + IL_002a: cgt .line 16707566,16707566 : 0,0 '' - IL_003e: nop + IL_002c: nop .line 16707566,16707566 : 0,0 '' - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: ldc.i4.0 - IL_0042: bge.s IL_0046 - - IL_0044: br.s IL_0048 - - IL_0046: br.s IL_004a + IL_002d: stloc.0 + IL_002e: ldloc.0 + IL_002f: ldc.i4.0 + IL_0030: bge.s IL_0034 .line 16707566,16707566 : 0,0 '' - IL_0048: ldloc.0 - IL_0049: ret + IL_0032: ldloc.0 + IL_0033: ret .line 16707566,16707566 : 0,0 '' - IL_004a: ldloc.0 - IL_004b: ldc.i4.0 - IL_004c: ble.s IL_0050 - - IL_004e: br.s IL_0052 - - IL_0050: br.s IL_0054 + IL_0034: ldloc.0 + IL_0035: ldc.i4.0 + IL_0036: ble.s IL_003a .line 16707566,16707566 : 0,0 '' - IL_0052: ldloc.0 - IL_0053: ret + IL_0038: ldloc.0 + IL_0039: ret .line 16707566,16707566 : 0,0 '' - IL_0054: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0059: stloc.s V_4 - IL_005b: ldarg.0 - IL_005c: ldfld int32 TestFunction24/Point::y@ - IL_0061: stloc.s V_5 - IL_0063: ldarg.1 - IL_0064: ldfld int32 TestFunction24/Point::y@ - IL_0069: stloc.s V_6 - IL_006b: ldloc.s V_5 - IL_006d: ldloc.s V_6 - IL_006f: bge.s IL_0073 - - IL_0071: br.s IL_0075 - - IL_0073: br.s IL_0077 + IL_003a: call class [mscorlib]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_003f: stloc.s V_4 + IL_0041: ldarg.0 + IL_0042: ldfld int32 TestFunction24/Point::y@ + IL_0047: stloc.s V_5 + IL_0049: ldarg.1 + IL_004a: ldfld int32 TestFunction24/Point::y@ + IL_004f: stloc.s V_6 + IL_0051: ldloc.s V_5 + IL_0053: ldloc.s V_6 + IL_0055: bge.s IL_0059 .line 16707566,16707566 : 0,0 '' - IL_0075: ldc.i4.m1 - IL_0076: ret + IL_0057: ldc.i4.m1 + IL_0058: ret .line 16707566,16707566 : 0,0 '' - IL_0077: ldloc.s V_5 - IL_0079: ldloc.s V_6 - IL_007b: cgt - IL_007d: ret + IL_0059: ldloc.s V_5 + IL_005b: ldloc.s V_6 + IL_005d: cgt + IL_005f: ret .line 16707566,16707566 : 0,0 '' - IL_007e: ldc.i4.1 - IL_007f: ret + IL_0060: ldc.i4.1 + IL_0061: ret .line 16707566,16707566 : 0,0 '' - IL_0080: ldarg.1 - IL_0081: ldnull - IL_0082: cgt.un - IL_0084: brfalse.s IL_0088 - - IL_0086: br.s IL_008a - - IL_0088: br.s IL_008c + IL_0062: ldarg.1 + IL_0063: ldnull + IL_0064: cgt.un + IL_0066: brfalse.s IL_006a .line 16707566,16707566 : 0,0 '' - IL_008a: ldc.i4.m1 - IL_008b: ret + IL_0068: ldc.i4.m1 + IL_0069: ret .line 16707566,16707566 : 0,0 '' - IL_008c: ldc.i4.0 - IL_008d: ret + IL_006a: ldc.i4.0 + IL_006b: ret } // end of method Point::CompareTo .method public hidebysig virtual final @@ -296,7 +268,7 @@ class [mscorlib]System.Collections.IComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 159 (0x9f) + // Code size 125 (0x7d) .maxstack 4 .locals init ([0] class TestFunction24/Point V_0, [1] class TestFunction24/Point V_1, @@ -316,135 +288,107 @@ IL_0009: ldarg.0 IL_000a: ldnull IL_000b: cgt.un - IL_000d: brfalse.s IL_0011 - - IL_000f: br.s IL_0016 - - IL_0011: br IL_008c + IL_000d: brfalse.s IL_006e .line 16707566,16707566 : 0,0 '' - IL_0016: ldarg.1 - IL_0017: unbox.any TestFunction24/Point - IL_001c: ldnull - IL_001d: cgt.un - IL_001f: brfalse.s IL_0023 - - IL_0021: br.s IL_0028 - - IL_0023: br IL_008a + IL_000f: ldarg.1 + IL_0010: unbox.any TestFunction24/Point + IL_0015: ldnull + IL_0016: cgt.un + IL_0018: brfalse.s IL_006c .line 16707566,16707566 : 0,0 '' - IL_0028: ldarg.2 - IL_0029: stloc.3 - IL_002a: ldarg.0 - IL_002b: ldfld int32 TestFunction24/Point::x@ - IL_0030: stloc.s V_4 - IL_0032: ldloc.1 - IL_0033: ldfld int32 TestFunction24/Point::x@ - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_4 - IL_003c: ldloc.s V_5 - IL_003e: bge.s IL_0042 - - IL_0040: br.s IL_0044 - - IL_0042: br.s IL_0048 + IL_001a: ldarg.2 + IL_001b: stloc.3 + IL_001c: ldarg.0 + IL_001d: ldfld int32 TestFunction24/Point::x@ + IL_0022: stloc.s V_4 + IL_0024: ldloc.1 + IL_0025: ldfld int32 TestFunction24/Point::x@ + IL_002a: stloc.s V_5 + IL_002c: ldloc.s V_4 + IL_002e: ldloc.s V_5 + IL_0030: bge.s IL_0036 .line 16707566,16707566 : 0,0 '' - IL_0044: ldc.i4.m1 + IL_0032: ldc.i4.m1 .line 16707566,16707566 : 0,0 '' - IL_0045: nop - IL_0046: br.s IL_004f + IL_0033: nop + IL_0034: br.s IL_003d .line 16707566,16707566 : 0,0 '' - IL_0048: ldloc.s V_4 - IL_004a: ldloc.s V_5 - IL_004c: cgt + IL_0036: ldloc.s V_4 + IL_0038: ldloc.s V_5 + IL_003a: cgt .line 16707566,16707566 : 0,0 '' - IL_004e: nop + IL_003c: nop .line 16707566,16707566 : 0,0 '' - IL_004f: stloc.2 - IL_0050: ldloc.2 - IL_0051: ldc.i4.0 - IL_0052: bge.s IL_0056 - - IL_0054: br.s IL_0058 - - IL_0056: br.s IL_005a + IL_003d: stloc.2 + IL_003e: ldloc.2 + IL_003f: ldc.i4.0 + IL_0040: bge.s IL_0044 .line 16707566,16707566 : 0,0 '' - IL_0058: ldloc.2 - IL_0059: ret + IL_0042: ldloc.2 + IL_0043: ret .line 16707566,16707566 : 0,0 '' - IL_005a: ldloc.2 - IL_005b: ldc.i4.0 - IL_005c: ble.s IL_0060 - - IL_005e: br.s IL_0062 - - IL_0060: br.s IL_0064 + IL_0044: ldloc.2 + IL_0045: ldc.i4.0 + IL_0046: ble.s IL_004a .line 16707566,16707566 : 0,0 '' - IL_0062: ldloc.2 - IL_0063: ret + IL_0048: ldloc.2 + IL_0049: ret .line 16707566,16707566 : 0,0 '' - IL_0064: ldarg.2 - IL_0065: stloc.s V_6 - IL_0067: ldarg.0 - IL_0068: ldfld int32 TestFunction24/Point::y@ - IL_006d: stloc.s V_7 - IL_006f: ldloc.1 - IL_0070: ldfld int32 TestFunction24/Point::y@ - IL_0075: stloc.s V_8 - IL_0077: ldloc.s V_7 - IL_0079: ldloc.s V_8 - IL_007b: bge.s IL_007f - - IL_007d: br.s IL_0081 - - IL_007f: br.s IL_0083 + IL_004a: ldarg.2 + IL_004b: stloc.s V_6 + IL_004d: ldarg.0 + IL_004e: ldfld int32 TestFunction24/Point::y@ + IL_0053: stloc.s V_7 + IL_0055: ldloc.1 + IL_0056: ldfld int32 TestFunction24/Point::y@ + IL_005b: stloc.s V_8 + IL_005d: ldloc.s V_7 + IL_005f: ldloc.s V_8 + IL_0061: bge.s IL_0065 .line 16707566,16707566 : 0,0 '' - IL_0081: ldc.i4.m1 - IL_0082: ret + IL_0063: ldc.i4.m1 + IL_0064: ret .line 16707566,16707566 : 0,0 '' - IL_0083: ldloc.s V_7 - IL_0085: ldloc.s V_8 - IL_0087: cgt - IL_0089: ret + IL_0065: ldloc.s V_7 + IL_0067: ldloc.s V_8 + IL_0069: cgt + IL_006b: ret .line 16707566,16707566 : 0,0 '' - IL_008a: ldc.i4.1 - IL_008b: ret + IL_006c: ldc.i4.1 + IL_006d: ret .line 16707566,16707566 : 0,0 '' - IL_008c: ldarg.1 - IL_008d: unbox.any TestFunction24/Point - IL_0092: ldnull - IL_0093: cgt.un - IL_0095: brfalse.s IL_0099 - - IL_0097: br.s IL_009b - - IL_0099: br.s IL_009d + IL_006e: ldarg.1 + IL_006f: unbox.any TestFunction24/Point + IL_0074: ldnull + IL_0075: cgt.un + IL_0077: brfalse.s IL_007b .line 16707566,16707566 : 0,0 '' - IL_009b: ldc.i4.m1 - IL_009c: ret + IL_0079: ldc.i4.m1 + IL_007a: ret .line 16707566,16707566 : 0,0 '' - IL_009d: ldc.i4.0 - IL_009e: ret + IL_007b: ldc.i4.0 + IL_007c: ret } // end of method Point::CompareTo .method public hidebysig virtual final instance int32 GetHashCode(class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 62 (0x3e) + // Code size 58 (0x3a) .maxstack 7 .locals init ([0] int32 V_0, [1] class [mscorlib]System.Collections.IEqualityComparer V_1, @@ -453,51 +397,47 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_003c - - .line 16707566,16707566 : 0,0 '' - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldc.i4 0x9e3779b9 - IL_0011: ldarg.1 - IL_0012: stloc.1 - IL_0013: ldarg.0 - IL_0014: ldfld int32 TestFunction24/Point::y@ - IL_0019: ldloc.0 - IL_001a: ldc.i4.6 - IL_001b: shl - IL_001c: ldloc.0 - IL_001d: ldc.i4.2 - IL_001e: shr - IL_001f: add - IL_0020: add - IL_0021: add - IL_0022: stloc.0 - IL_0023: ldc.i4 0x9e3779b9 - IL_0028: ldarg.1 - IL_0029: stloc.2 - IL_002a: ldarg.0 - IL_002b: ldfld int32 TestFunction24/Point::x@ - IL_0030: ldloc.0 - IL_0031: ldc.i4.6 - IL_0032: shl - IL_0033: ldloc.0 - IL_0034: ldc.i4.2 - IL_0035: shr - IL_0036: add - IL_0037: add - IL_0038: add - IL_0039: stloc.0 - IL_003a: ldloc.0 - IL_003b: ret + IL_0004: brfalse.s IL_0038 .line 16707566,16707566 : 0,0 '' - IL_003c: ldc.i4.0 - IL_003d: ret + IL_0006: ldc.i4.0 + IL_0007: stloc.0 + IL_0008: ldc.i4 0x9e3779b9 + IL_000d: ldarg.1 + IL_000e: stloc.1 + IL_000f: ldarg.0 + IL_0010: ldfld int32 TestFunction24/Point::y@ + IL_0015: ldloc.0 + IL_0016: ldc.i4.6 + IL_0017: shl + IL_0018: ldloc.0 + IL_0019: ldc.i4.2 + IL_001a: shr + IL_001b: add + IL_001c: add + IL_001d: add + IL_001e: stloc.0 + IL_001f: ldc.i4 0x9e3779b9 + IL_0024: ldarg.1 + IL_0025: stloc.2 + IL_0026: ldarg.0 + IL_0027: ldfld int32 TestFunction24/Point::x@ + IL_002c: ldloc.0 + IL_002d: ldc.i4.6 + IL_002e: shl + IL_002f: ldloc.0 + IL_0030: ldc.i4.2 + IL_0031: shr + IL_0032: add + IL_0033: add + IL_0034: add + IL_0035: stloc.0 + IL_0036: ldloc.0 + IL_0037: ret + + .line 16707566,16707566 : 0,0 '' + IL_0038: ldc.i4.0 + IL_0039: ret } // end of method Point::GetHashCode .method public hidebysig virtual final @@ -518,7 +458,7 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 77 (0x4d) + // Code size 65 (0x41) .maxstack 4 .locals init ([0] class TestFunction24/Point V_0, [1] class TestFunction24/Point V_1, @@ -528,133 +468,109 @@ IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0045 + IL_0004: brfalse.s IL_0039 .line 16707566,16707566 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: isinst TestFunction24/Point - IL_0010: stloc.0 - IL_0011: ldloc.0 - IL_0012: brfalse.s IL_0016 - - IL_0014: br.s IL_0018 - - IL_0016: br.s IL_0043 + IL_0006: ldarg.1 + IL_0007: isinst TestFunction24/Point + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: brfalse.s IL_0037 .line 16707566,16707566 : 0,0 '' - IL_0018: ldloc.0 - IL_0019: stloc.1 - IL_001a: ldarg.2 - IL_001b: stloc.2 - IL_001c: ldarg.0 - IL_001d: ldfld int32 TestFunction24/Point::x@ - IL_0022: ldloc.1 - IL_0023: ldfld int32 TestFunction24/Point::x@ - IL_0028: ceq - IL_002a: brfalse.s IL_002e - - IL_002c: br.s IL_0030 - - IL_002e: br.s IL_0041 + IL_0010: ldloc.0 + IL_0011: stloc.1 + IL_0012: ldarg.2 + IL_0013: stloc.2 + IL_0014: ldarg.0 + IL_0015: ldfld int32 TestFunction24/Point::x@ + IL_001a: ldloc.1 + IL_001b: ldfld int32 TestFunction24/Point::x@ + IL_0020: ceq + IL_0022: brfalse.s IL_0035 .line 16707566,16707566 : 0,0 '' - IL_0030: ldarg.2 - IL_0031: stloc.3 - IL_0032: ldarg.0 - IL_0033: ldfld int32 TestFunction24/Point::y@ - IL_0038: ldloc.1 - IL_0039: ldfld int32 TestFunction24/Point::y@ - IL_003e: ceq - IL_0040: ret + IL_0024: ldarg.2 + IL_0025: stloc.3 + IL_0026: ldarg.0 + IL_0027: ldfld int32 TestFunction24/Point::y@ + IL_002c: ldloc.1 + IL_002d: ldfld int32 TestFunction24/Point::y@ + IL_0032: ceq + IL_0034: ret .line 16707566,16707566 : 0,0 '' - IL_0041: ldc.i4.0 - IL_0042: ret + IL_0035: ldc.i4.0 + IL_0036: ret .line 16707566,16707566 : 0,0 '' - IL_0043: ldc.i4.0 - IL_0044: ret + IL_0037: ldc.i4.0 + IL_0038: ret .line 16707566,16707566 : 0,0 '' - IL_0045: ldarg.1 - IL_0046: ldnull - IL_0047: cgt.un - IL_0049: ldc.i4.0 - IL_004a: ceq - IL_004c: ret + IL_0039: ldarg.1 + IL_003a: ldnull + IL_003b: cgt.un + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: ret } // end of method Point::Equals .method public hidebysig virtual final instance bool Equals(class TestFunction24/Point obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 65 (0x41) - .maxstack 4 + // Code size 53 (0x35) + .maxstack 8 .line 16707566,16707566 : 0,0 '' IL_0000: ldarg.0 IL_0001: ldnull IL_0002: cgt.un - IL_0004: brfalse.s IL_0008 - - IL_0006: br.s IL_000a - - IL_0008: br.s IL_0039 + IL_0004: brfalse.s IL_002d .line 16707566,16707566 : 0,0 '' - IL_000a: ldarg.1 - IL_000b: ldnull - IL_000c: cgt.un - IL_000e: brfalse.s IL_0012 - - IL_0010: br.s IL_0014 - - IL_0012: br.s IL_0037 + IL_0006: ldarg.1 + IL_0007: ldnull + IL_0008: cgt.un + IL_000a: brfalse.s IL_002b .line 16707566,16707566 : 0,0 '' - IL_0014: ldarg.0 - IL_0015: ldfld int32 TestFunction24/Point::x@ - IL_001a: ldarg.1 - IL_001b: ldfld int32 TestFunction24/Point::x@ - IL_0020: bne.un.s IL_0024 - - IL_0022: br.s IL_0026 - - IL_0024: br.s IL_0035 + IL_000c: ldarg.0 + IL_000d: ldfld int32 TestFunction24/Point::x@ + IL_0012: ldarg.1 + IL_0013: ldfld int32 TestFunction24/Point::x@ + IL_0018: bne.un.s IL_0029 .line 16707566,16707566 : 0,0 '' - IL_0026: ldarg.0 - IL_0027: ldfld int32 TestFunction24/Point::y@ - IL_002c: ldarg.1 - IL_002d: ldfld int32 TestFunction24/Point::y@ - IL_0032: ceq - IL_0034: ret + IL_001a: ldarg.0 + IL_001b: ldfld int32 TestFunction24/Point::y@ + IL_0020: ldarg.1 + IL_0021: ldfld int32 TestFunction24/Point::y@ + IL_0026: ceq + IL_0028: ret .line 16707566,16707566 : 0,0 '' - IL_0035: ldc.i4.0 - IL_0036: ret + IL_0029: ldc.i4.0 + IL_002a: ret .line 16707566,16707566 : 0,0 '' - IL_0037: ldc.i4.0 - IL_0038: ret + IL_002b: ldc.i4.0 + IL_002c: ret .line 16707566,16707566 : 0,0 '' - IL_0039: ldarg.1 - IL_003a: ldnull - IL_003b: cgt.un - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: ret + IL_002d: ldarg.1 + IL_002e: ldnull + IL_002f: cgt.un + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: ret } // end of method Point::Equals .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 24 (0x18) + // Code size 20 (0x14) .maxstack 4 .locals init ([0] class TestFunction24/Point V_0) .line 4,4 : 6,11 '' @@ -662,21 +578,17 @@ IL_0001: isinst TestFunction24/Point IL_0006: stloc.0 IL_0007: ldloc.0 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_000e - - IL_000c: br.s IL_0016 + IL_0008: brfalse.s IL_0012 .line 16707566,16707566 : 0,0 '' - IL_000e: ldarg.0 - IL_000f: ldloc.0 - IL_0010: callvirt instance bool TestFunction24/Point::Equals(class TestFunction24/Point) - IL_0015: ret + IL_000a: ldarg.0 + IL_000b: ldloc.0 + IL_000c: callvirt instance bool TestFunction24/Point::Equals(class TestFunction24/Point) + IL_0011: ret .line 16707566,16707566 : 0,0 '' - IL_0016: ldc.i4.0 - IL_0017: ret + IL_0012: ldc.i4.0 + IL_0013: ret } // end of method Point::Equals .property instance int32 x() @@ -775,7 +687,7 @@ .method public static float64 pinArray1() cil managed { - // Code size 196 (0xc4) + // Code size 188 (0xbc) .maxstack 6 .locals init ([0] float64[] arr, [1] native int p1, @@ -817,71 +729,63 @@ IL_0067: ldloc.0 IL_0068: stloc.2 IL_0069: ldloc.2 - IL_006a: brfalse.s IL_006e - - IL_006c: br.s IL_0070 - - IL_006e: br.s IL_008e + IL_006a: brfalse.s IL_0086 .line 16707566,16707566 : 0,0 '' - IL_0070: ldloc.2 - IL_0071: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) - IL_0076: brfalse.s IL_007a - - IL_0078: br.s IL_007c - - IL_007a: br.s IL_0089 + IL_006c: ldloc.2 + IL_006d: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) + IL_0072: brfalse.s IL_0081 .line 16707566,16707566 : 0,0 '' - IL_007c: ldloc.2 - IL_007d: ldc.i4.0 - IL_007e: ldelema [mscorlib]System.Double - IL_0083: stloc.3 - IL_0084: ldloc.3 - IL_0085: conv.i + IL_0074: ldloc.2 + IL_0075: ldc.i4.0 + IL_0076: ldelema [mscorlib]System.Double + IL_007b: stloc.3 + IL_007c: ldloc.3 + IL_007d: conv.i .line 16707566,16707566 : 0,0 '' - IL_0086: nop - IL_0087: br.s IL_0091 + IL_007e: nop + IL_007f: br.s IL_0089 .line 16707566,16707566 : 0,0 '' - IL_0089: ldc.i4.0 - IL_008a: conv.i + IL_0081: ldc.i4.0 + IL_0082: conv.i .line 16707566,16707566 : 0,0 '' - IL_008b: nop - IL_008c: br.s IL_0091 + IL_0083: nop + IL_0084: br.s IL_0089 .line 16707566,16707566 : 0,0 '' - IL_008e: ldc.i4.0 - IL_008f: conv.i + IL_0086: ldc.i4.0 + IL_0087: conv.i .line 16707566,16707566 : 0,0 '' - IL_0090: nop + IL_0088: nop .line 16707566,16707566 : 0,0 '' - IL_0091: stloc.1 + IL_0089: stloc.1 .line 19,19 : 5,44 '' - IL_0092: ldloc.1 - IL_0093: stloc.s V_4 - IL_0095: ldc.i4.0 - IL_0096: stloc.s V_5 - IL_0098: ldloc.s V_4 - IL_009a: ldloc.s V_5 - IL_009c: conv.i - IL_009d: sizeof [mscorlib]System.Double - IL_00a3: mul - IL_00a4: add - IL_00a5: ldobj [mscorlib]System.Double - IL_00aa: ldloc.1 - IL_00ab: stloc.s V_6 - IL_00ad: ldc.i4.1 - IL_00ae: stloc.s V_7 - IL_00b0: ldloc.s V_6 - IL_00b2: ldloc.s V_7 - IL_00b4: conv.i - IL_00b5: sizeof [mscorlib]System.Double - IL_00bb: mul - IL_00bc: add - IL_00bd: ldobj [mscorlib]System.Double - IL_00c2: add - IL_00c3: ret + IL_008a: ldloc.1 + IL_008b: stloc.s V_4 + IL_008d: ldc.i4.0 + IL_008e: stloc.s V_5 + IL_0090: ldloc.s V_4 + IL_0092: ldloc.s V_5 + IL_0094: conv.i + IL_0095: sizeof [mscorlib]System.Double + IL_009b: mul + IL_009c: add + IL_009d: ldobj [mscorlib]System.Double + IL_00a2: ldloc.1 + IL_00a3: stloc.s V_6 + IL_00a5: ldc.i4.1 + IL_00a6: stloc.s V_7 + IL_00a8: ldloc.s V_6 + IL_00aa: ldloc.s V_7 + IL_00ac: conv.i + IL_00ad: sizeof [mscorlib]System.Double + IL_00b3: mul + IL_00b4: add + IL_00b5: ldobj [mscorlib]System.Double + IL_00ba: add + IL_00bb: ret } // end of method TestFunction24::pinArray1 .method public static float64 pinArray2() cil managed @@ -961,7 +865,7 @@ .method public static class [mscorlib]System.Tuple`2 pinString() cil managed { - // Code size 81 (0x51) + // Code size 77 (0x4d) .maxstack 6 .locals init ([0] string str, [1] native int pChar, @@ -977,53 +881,49 @@ IL_0006: ldloc.0 IL_0007: stloc.2 IL_0008: ldloc.2 - IL_0009: brfalse.s IL_000d - - IL_000b: br.s IL_000f - - IL_000d: br.s IL_001a + IL_0009: brfalse.s IL_0016 .line 16707566,16707566 : 0,0 '' - IL_000f: ldloc.2 - IL_0010: conv.i - IL_0011: call int32 [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData() - IL_0016: add + IL_000b: ldloc.2 + IL_000c: conv.i + IL_000d: call int32 [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::get_OffsetToStringData() + IL_0012: add .line 16707566,16707566 : 0,0 '' - IL_0017: nop - IL_0018: br.s IL_001c + IL_0013: nop + IL_0014: br.s IL_0018 .line 16707566,16707566 : 0,0 '' - IL_001a: ldloc.2 + IL_0016: ldloc.2 .line 16707566,16707566 : 0,0 '' - IL_001b: nop + IL_0017: nop .line 16707566,16707566 : 0,0 '' - IL_001c: stloc.1 + IL_0018: stloc.1 .line 31,31 : 5,50 '' - IL_001d: ldloc.1 - IL_001e: stloc.3 - IL_001f: ldc.i4.0 - IL_0020: stloc.s V_4 - IL_0022: ldloc.3 - IL_0023: ldloc.s V_4 - IL_0025: conv.i - IL_0026: sizeof [mscorlib]System.Char - IL_002c: mul - IL_002d: add - IL_002e: ldobj [mscorlib]System.Char - IL_0033: ldloc.1 - IL_0034: stloc.s V_5 - IL_0036: ldc.i4.1 - IL_0037: stloc.s V_6 - IL_0039: ldloc.s V_5 - IL_003b: ldloc.s V_6 - IL_003d: conv.i - IL_003e: sizeof [mscorlib]System.Char - IL_0044: mul - IL_0045: add - IL_0046: ldobj [mscorlib]System.Char - IL_004b: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, + IL_0019: ldloc.1 + IL_001a: stloc.3 + IL_001b: ldc.i4.0 + IL_001c: stloc.s V_4 + IL_001e: ldloc.3 + IL_001f: ldloc.s V_4 + IL_0021: conv.i + IL_0022: sizeof [mscorlib]System.Char + IL_0028: mul + IL_0029: add + IL_002a: ldobj [mscorlib]System.Char + IL_002f: ldloc.1 + IL_0030: stloc.s V_5 + IL_0032: ldc.i4.1 + IL_0033: stloc.s V_6 + IL_0035: ldloc.s V_5 + IL_0037: ldloc.s V_6 + IL_0039: conv.i + IL_003a: sizeof [mscorlib]System.Char + IL_0040: mul + IL_0041: add + IL_0042: ldobj [mscorlib]System.Char + IL_0047: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, !1) - IL_0050: ret + IL_004c: ret } // end of method TestFunction24::pinString } // end of class TestFunction24 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3b.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3b.il.bsl index d543e2e48bb..80497c1223d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3b.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3b.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction3b { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction3b { - // Offset: 0x00000000 Length: 0x00000200 + // Offset: 0x00000000 Length: 0x000001FC } .mresource public FSharpOptimizationData.TestFunction3b { - // Offset: 0x00000208 Length: 0x0000008A + // Offset: 0x00000200 Length: 0x0000008A } .module TestFunction3b.exe -// MVID: {59B19208-A662-4FC9-A745-03830892B159} +// MVID: {60B68B97-A662-4FC9-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00BB0000 +// Image base: 0x090C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3b.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3b.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -75,7 +75,7 @@ .method public static void TestFunction3b() cil managed { - // Code size 73 (0x49) + // Code size 69 (0x45) .maxstack 3 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_0, [1] int32 x, @@ -104,31 +104,27 @@ IL_001a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::FailurePattern(class [mscorlib]System.Exception) IL_001f: stloc.s V_4 IL_0021: ldloc.s V_4 - IL_0023: brfalse.s IL_0027 - - IL_0025: br.s IL_0029 - - IL_0027: br.s IL_003b + IL_0023: brfalse.s IL_0037 .line 14,14 : 8,23 '' - IL_0029: ldstr "World" - IL_002e: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0033: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0038: stloc.0 - IL_0039: leave.s IL_0046 + IL_0025: ldstr "World" + IL_002a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_002f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0034: stloc.0 + IL_0035: leave.s IL_0042 .line 100001,100001 : 0,0 '' - IL_003b: rethrow - IL_003d: ldnull - IL_003e: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0043: stloc.0 - IL_0044: leave.s IL_0046 + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: stloc.0 + IL_0040: leave.s IL_0042 .line 100001,100001 : 0,0 '' } // end handler - IL_0046: ldloc.0 - IL_0047: pop - IL_0048: ret + IL_0042: ldloc.0 + IL_0043: pop + IL_0044: ret } // end of method TestFunction3b::TestFunction3b } // end of class TestFunction3b diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3c.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3c.il.bsl index 25c89fbbc87..aa5d2e75dc1 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3c.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction3c.il.bsl @@ -34,20 +34,20 @@ } .mresource public FSharpSignatureData.TestFunction3c { - // Offset: 0x00000000 Length: 0x000001FA + // Offset: 0x00000000 Length: 0x000001FC } .mresource public FSharpOptimizationData.TestFunction3c { // Offset: 0x00000200 Length: 0x0000008A } .module TestFunction3c.exe -// MVID: {5F1FA088-A662-4FAC-A745-038388A01F5F} +// MVID: {60B68B97-A662-4FAC-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06AD0000 +// Image base: 0x06B00000 // =============== CLASS MEMBERS DECLARATION =================== @@ -61,7 +61,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3c.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3c.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) @@ -80,7 +80,7 @@ .method public static void TestFunction3c() cil managed { - // Code size 105 (0x69) + // Code size 101 (0x65) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_0, [1] int32 x, @@ -111,7 +111,7 @@ IL_001a: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 [FSharp.Core]Microsoft.FSharp.Core.Operators::FailurePattern(class [mscorlib]System.Exception) IL_001f: stloc.s V_4 IL_0021: ldloc.s V_4 - IL_0023: brfalse.s IL_005b + IL_0023: brfalse.s IL_0057 IL_0025: ldloc.s V_4 IL_0027: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() @@ -120,34 +120,30 @@ IL_0030: ldstr "hello" IL_0035: call bool [netstandard]System.String::Equals(string, string) - IL_003a: brfalse.s IL_003e + IL_003a: brfalse.s IL_0057 - IL_003c: br.s IL_0040 - - IL_003e: br.s IL_005b - - IL_0040: ldloc.s V_4 - IL_0042: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0047: stloc.s V_6 + IL_003c: ldloc.s V_4 + IL_003e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0043: stloc.s V_6 .line 14,14 : 8,23 '' - IL_0049: ldstr "World" - IL_004e: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0053: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0058: stloc.0 - IL_0059: leave.s IL_0066 + IL_0045: ldstr "World" + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_004f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0054: stloc.0 + IL_0055: leave.s IL_0062 .line 100001,100001 : 0,0 '' - IL_005b: rethrow - IL_005d: ldnull - IL_005e: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0063: stloc.0 - IL_0064: leave.s IL_0066 + IL_0057: rethrow + IL_0059: ldnull + IL_005a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_005f: stloc.0 + IL_0060: leave.s IL_0062 .line 100001,100001 : 0,0 '' } // end handler - IL_0066: ldloc.0 - IL_0067: pop - IL_0068: ret + IL_0062: ldloc.0 + IL_0063: pop + IL_0064: ret } // end of method TestFunction3c::TestFunction3c } // end of class TestFunction3c diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction9b4.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction9b4.il.bsl index a92010a91c4..3c3c35b89af 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction9b4.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/TestFunction9b4.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:3:0 + .ver 5:0:0:0 } .assembly TestFunction9b4 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9b4 { - // Offset: 0x00000000 Length: 0x0000024C + // Offset: 0x00000000 Length: 0x00000240 } .mresource public FSharpOptimizationData.TestFunction9b4 { - // Offset: 0x00000250 Length: 0x00000085 + // Offset: 0x00000248 Length: 0x00000085 } .module TestFunction9b4.exe -// MVID: {5B17FC67-A091-56C1-A745-038367FC175B} +// MVID: {60B68B97-A091-56C1-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x026C0000 +// Image base: 0x06CC0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -58,7 +58,7 @@ .maxstack 3 .locals init ([0] !!a V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 8,8 : 12,16 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b4.fs' + .line 8,8 : 12,16 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b4.fs' IL_0000: ldloc.0 IL_0001: ret } // end of method TestFunction9b4::Null diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction11.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction11.il.bsl index 5fc9397c162..98835e2b7b8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction11.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction11.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction11 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction11 { - // Offset: 0x00000000 Length: 0x000001E8 + // Offset: 0x00000000 Length: 0x000001E4 } .mresource public FSharpOptimizationData.TestFunction11 { - // Offset: 0x000001F0 Length: 0x00000072 + // Offset: 0x000001E8 Length: 0x00000072 } .module TestFunction11.exe -// MVID: {59B19208-A624-45E6-A745-03830892B159} +// MVID: {60B68B97-A624-45E6-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01080000 +// Image base: 0x064D0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -57,7 +57,7 @@ // Code size 30 (0x1e) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,27 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction11.fs' + .line 5,5 : 5,27 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction11.fs' IL_0000: ldarg.0 IL_0001: ldarg.0 IL_0002: ldarg.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction12.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction12.il.bsl index 2f7b3efff8e..2a841ada06d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction12.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction12.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction12 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction12 { - // Offset: 0x00000000 Length: 0x000001DB + // Offset: 0x00000000 Length: 0x000001D7 } .mresource public FSharpOptimizationData.TestFunction12 { // Offset: 0x000001E0 Length: 0x00000072 } .module TestFunction12.exe -// MVID: {59B19208-A624-4539-A745-03830892B159} +// MVID: {60B68B97-A624-4539-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002D0000 +// Image base: 0x070C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -57,7 +57,7 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,23 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction12.fs' + .line 5,5 : 5,23 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction12.fs' IL_0000: ldarg.0 IL_0001: ldarg.0 IL_0002: add diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction15.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction15.il.bsl index b71973b19e4..71b2315034b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction15.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction15.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x000001F0 Length: 0x00000072 } .module TestFunction15.exe -// MVID: {5FCFFD21-A624-4662-A745-038321FDCF5F} +// MVID: {60B68B97-A624-4662-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x06690000 +// Image base: 0x06B30000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction18.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction18.il.bsl index 80848608547..17e117dad82 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction18.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction18.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction18 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction18 { - // Offset: 0x00000000 Length: 0x000001ED + // Offset: 0x00000000 Length: 0x000001E1 } .mresource public FSharpOptimizationData.TestFunction18 { - // Offset: 0x000001F8 Length: 0x00000072 + // Offset: 0x000001E8 Length: 0x00000072 } .module TestFunction18.exe -// MVID: {59B19208-A624-4603-A745-03830892B159} +// MVID: {60B68B97-A624-4603-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x019B0000 +// Image base: 0x09850000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 11 (0xb) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,38 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction18.fs' + .line 5,5 : 5,38 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction18.fs' IL_0000: ldstr "hello" IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_000a: ret diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction2.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction2.il.bsl index 92ec82161db..21e84cf567b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction2.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction2.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction2 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction2 { - // Offset: 0x00000000 Length: 0x000001FD + // Offset: 0x00000000 Length: 0x000001F9 } .mresource public FSharpOptimizationData.TestFunction2 { - // Offset: 0x00000208 Length: 0x00000088 + // Offset: 0x00000200 Length: 0x00000088 } .module TestFunction2.exe -// MVID: {59B19208-661D-8929-A745-03830892B159} +// MVID: {60B68B97-661D-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002E0000 +// Image base: 0x071A0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction2.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction2.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22.il.bsl index 3c7a947a3b4..23600d9913f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22 { - // Offset: 0x00000000 Length: 0x0000015B + // Offset: 0x00000000 Length: 0x00000157 } .mresource public FSharpOptimizationData.Testfunction22 { // Offset: 0x00000160 Length: 0x00000055 } .module Testfunction22.exe -// MVID: {59B199CC-5AA3-4518-A745-0383CC99B159} +// MVID: {60B68B97-5AA3-4518-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002E0000 +// Image base: 0x05220000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 6 (0x6) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 1,27 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22.fs' + .line 3,3 : 1,27 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22.fs' IL_0000: call void [mscorlib]System.Console::WriteLine() IL_0005: ret } // end of method $Testfunction22::main@ diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22b.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22b.il.bsl index ac3e76f8f2e..aea4e753718 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22b.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22b.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22b { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22b { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22b { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22b.exe -// MVID: {59B19208-8504-18B7-A745-03830892B159} +// MVID: {60B68B97-8504-18B7-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002D0000 +// Image base: 0x00AF0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 6 (0x6) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,35 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22b.fs' + .line 3,3 : 9,35 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22b.fs' IL_0000: call void [mscorlib]System.Console::WriteLine() IL_0005: ret } // end of method $Testfunction22b::main@ diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22c.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22c.il.bsl index e5640da7b20..19f08efe5bf 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22c.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22c.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22c { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22c { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22c { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22c.exe -// MVID: {59B19208-459D-3DF8-A745-03830892B159} +// MVID: {60B68B97-459D-3DF8-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x03000000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 6 (0x6) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 10,36 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22c.fs' + .line 3,3 : 10,36 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22c.fs' IL_0000: call void [mscorlib]System.Console::WriteLine() IL_0005: ret } // end of method $Testfunction22c::main@ diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22d.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22d.il.bsl index 06dc2c7b954..1621b79b127 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22d.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22d.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22d { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22d { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22d { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22d.exe -// MVID: {59B19208-FDCA-89B1-A745-03830892B159} +// MVID: {60B68B97-FDCA-89B1-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00720000 +// Image base: 0x00E60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 6 (0x6) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 4,30 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22d.fs' + .line 3,3 : 4,30 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22d.fs' IL_0000: call void [mscorlib]System.Console::WriteLine() IL_0005: ret } // end of method $Testfunction22d::main@ diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22e.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22e.il.bsl index ed2dae30740..d3e72f97117 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22e.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22e.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22e { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22e { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22e { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22e.exe -// MVID: {59B19208-C83B-1CB9-A745-03830892B159} +// MVID: {60B68B97-C83B-1CB9-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002D0000 +// Image base: 0x05440000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 12 (0xc) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 1,11 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22e.fs' + .line 3,3 : 1,11 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22e.fs' IL_0000: ldc.i4.1 IL_0001: brfalse.s IL_000b diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22f.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22f.il.bsl index a3761172da8..1e52b731760 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22f.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22f.il.bsl @@ -34,20 +34,20 @@ } .mresource public FSharpSignatureData.Testfunction22f { - // Offset: 0x00000000 Length: 0x00000157 + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22f { // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22f.exe -// MVID: {5F1FA088-C040-2523-A745-038388A01F5F} +// MVID: {60B68B97-C040-2523-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x067F0000 +// Image base: 0x06DC0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -68,34 +68,30 @@ .method public static void main@() cil managed { .entrypoint - // Code size 38 (0x26) + // Code size 34 (0x22) .maxstack 4 .locals init ([0] string V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 1,15 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22f.fs' + .line 3,3 : 1,15 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22f.fs' IL_0000: ldstr "A" IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldstr "A" IL_000c: call bool [netstandard]System.String::Equals(string, string) - IL_0011: brfalse.s IL_0015 - - IL_0013: br.s IL_0017 - - IL_0015: br.s IL_001f + IL_0011: brfalse.s IL_001b .line 4,4 : 12,38 '' - IL_0017: call void [mscorlib]System.Console::WriteLine() + IL_0013: call void [mscorlib]System.Console::WriteLine() .line 100001,100001 : 0,0 '' - IL_001c: nop - IL_001d: br.s IL_0025 + IL_0018: nop + IL_0019: br.s IL_0021 .line 5,5 : 10,36 '' - IL_001f: call void [mscorlib]System.Console::WriteLine() + IL_001b: call void [mscorlib]System.Console::WriteLine() .line 100001,100001 : 0,0 '' - IL_0024: nop - IL_0025: ret + IL_0020: nop + IL_0021: ret } // end of method $Testfunction22f::main@ } // end of class ''.$Testfunction22f diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22g.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22g.il.bsl index 629593f6e0a..9553805a4c2 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22g.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22g.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22g { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22g { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22g { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22g.exe -// MVID: {59B19208-CA89-74DB-A745-03830892B159} +// MVID: {60B68B97-CA89-74DB-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x012F0000 +// Image base: 0x06FA0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -63,28 +63,24 @@ .method public static void main@() cil managed { .entrypoint - // Code size 22 (0x16) + // Code size 18 (0x12) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 1,13 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22g.fs' + .line 3,3 : 1,13 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22g.fs' IL_0000: ldc.i4.1 - IL_0001: brfalse.s IL_0005 - - IL_0003: br.s IL_0007 - - IL_0005: br.s IL_000f + IL_0001: brfalse.s IL_000b .line 3,3 : 14,40 '' - IL_0007: call void [mscorlib]System.Console::WriteLine() + IL_0003: call void [mscorlib]System.Console::WriteLine() .line 100001,100001 : 0,0 '' - IL_000c: nop - IL_000d: br.s IL_0015 + IL_0008: nop + IL_0009: br.s IL_0011 .line 3,3 : 46,72 '' - IL_000f: call void [mscorlib]System.Console::WriteLine() + IL_000b: call void [mscorlib]System.Console::WriteLine() .line 100001,100001 : 0,0 '' - IL_0014: nop - IL_0015: ret + IL_0010: nop + IL_0011: ret } // end of method $Testfunction22g::main@ } // end of class ''.$Testfunction22g diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22h.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22h.il.bsl index 7fcae895abd..192a1d04752 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22h.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction22h.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Testfunction22h { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Testfunction22h { - // Offset: 0x00000000 Length: 0x0000015D + // Offset: 0x00000000 Length: 0x00000159 } .mresource public FSharpOptimizationData.Testfunction22h { - // Offset: 0x00000168 Length: 0x00000056 + // Offset: 0x00000160 Length: 0x00000056 } .module Testfunction22h.exe -// MVID: {59B19208-0266-39F6-A745-03830892B159} +// MVID: {60B68B97-0266-39F6-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00370000 +// Image base: 0x00C90000 // =============== CLASS MEMBERS DECLARATION =================== @@ -68,7 +68,7 @@ .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.Unit V_0, [1] class [mscorlib]System.Exception V_1) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 4,4 : 4,30 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22h.fs' + .line 4,4 : 4,30 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\Testfunction22h.fs' .try { IL_0000: call void [mscorlib]System.Console::WriteLine() diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction3.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction3.il.bsl index 2a64c727d05..31cb50e6a6b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction3.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction3.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction3 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction3 { - // Offset: 0x00000000 Length: 0x000001FD + // Offset: 0x00000000 Length: 0x000001F9 } .mresource public FSharpOptimizationData.TestFunction3 { - // Offset: 0x00000208 Length: 0x00000088 + // Offset: 0x00000200 Length: 0x00000088 } .module TestFunction3.exe -// MVID: {59B19208-663A-8929-A745-03830892B159} +// MVID: {60B68B97-663A-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x013E0000 +// Image base: 0x06F20000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction3.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction4.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction4.il.bsl index 0b9818bebb3..9089ec85b99 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction4.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction4.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction4 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction4 { - // Offset: 0x00000000 Length: 0x000001FD + // Offset: 0x00000000 Length: 0x000001F9 } .mresource public FSharpOptimizationData.TestFunction4 { - // Offset: 0x00000208 Length: 0x00000088 + // Offset: 0x00000200 Length: 0x00000088 } .module TestFunction4.exe -// MVID: {59B19208-665B-8929-A745-03830892B159} +// MVID: {60B68B97-665B-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x026C0000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction4.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction4.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction5.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction5.il.bsl index fb983f1af1e..f03b113a1f8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction5.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction5.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction5 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction5 { - // Offset: 0x00000000 Length: 0x000001FD + // Offset: 0x00000000 Length: 0x000001F9 } .mresource public FSharpOptimizationData.TestFunction5 { - // Offset: 0x00000208 Length: 0x00000088 + // Offset: 0x00000200 Length: 0x00000088 } .module TestFunction5.exe -// MVID: {59B19208-6570-8929-A745-03830892B159} +// MVID: {60B68B97-6570-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x010A0000 +// Image base: 0x00AB0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -56,7 +56,7 @@ // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction5.fs' + .line 5,5 : 5,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction5.fs' IL_0000: ldstr "Hello" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction6.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction6.il.bsl index 88bcb600fc8..90d8b294ee0 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction6.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction6.il.bsl @@ -36,13 +36,13 @@ // Offset: 0x00000200 Length: 0x00000088 } .module TestFunction6.exe -// MVID: {5FCFFD21-6591-8929-A745-038321FDCF5F} +// MVID: {60B68B97-6591-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x05A30000 +// Image base: 0x072D0000 // =============== CLASS MEMBERS DECLARATION =================== diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction7.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction7.il.bsl index a9af9b236e4..be6eb321a0b 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction7.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction7.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction7 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction7 { - // Offset: 0x00000000 Length: 0x000001BF + // Offset: 0x00000000 Length: 0x000001BB } .mresource public FSharpOptimizationData.TestFunction7 { - // Offset: 0x000001C8 Length: 0x00000070 + // Offset: 0x000001C0 Length: 0x00000070 } .module TestFunction7.exe -// MVID: {59B19208-65AE-8929-A745-03830892B159} +// MVID: {60B68B97-65AE-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00E30000 +// Image base: 0x051F0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -57,7 +57,7 @@ .maxstack 4 .locals init ([0] int32 r) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,22 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction7.fs' + .line 5,5 : 5,22 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction7.fs' IL_0000: ldc.i4.0 IL_0001: stloc.0 .line 6,6 : 5,16 '' diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction8.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction8.il.bsl index 328e4809402..75cd37c6650 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction8.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction8.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction8 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction8 { - // Offset: 0x00000000 Length: 0x000001C8 + // Offset: 0x00000000 Length: 0x000001C4 } .mresource public FSharpOptimizationData.TestFunction8 { - // Offset: 0x000001D0 Length: 0x00000070 + // Offset: 0x000001C8 Length: 0x00000070 } .module TestFunction8.exe -// MVID: {59B19208-65CF-8929-A745-03830892B159} +// MVID: {60B68B97-65CF-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01010000 +// Image base: 0x07330000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,29 +53,25 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static int32 TestFunction8(int32 x) cil managed { - // Code size 16 (0x10) + // Code size 12 (0xc) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,18 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction8.fs' + .line 5,5 : 5,18 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction8.fs' IL_0000: ldarg.0 IL_0001: ldc.i4.3 - IL_0002: ble.s IL_0006 - - IL_0004: br.s IL_0008 - - IL_0006: br.s IL_000c + IL_0002: ble.s IL_0008 .line 6,6 : 9,12 '' + IL_0004: ldarg.0 + IL_0005: ldc.i4.4 + IL_0006: add + IL_0007: ret + + .line 7,7 : 10,13 '' IL_0008: ldarg.0 IL_0009: ldc.i4.4 - IL_000a: add + IL_000a: sub IL_000b: ret - - .line 7,7 : 10,13 '' - IL_000c: ldarg.0 - IL_000d: ldc.i4.4 - IL_000e: sub - IL_000f: ret } // end of method TestFunction8::TestFunction8 } // end of class TestFunction8 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9.il.bsl index b7e4921fdc3..aa1372d9a4d 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction9 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9 { - // Offset: 0x00000000 Length: 0x000001D6 + // Offset: 0x00000000 Length: 0x000001D2 } .mresource public FSharpOptimizationData.TestFunction9 { - // Offset: 0x000001E0 Length: 0x00000070 + // Offset: 0x000001D8 Length: 0x00000070 } .module TestFunction9.exe -// MVID: {59B19208-64F4-8929-A745-03830892B159} +// MVID: {60B68B97-64F4-8929-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x016E0000 +// Image base: 0x06B70000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,33 +53,29 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static string TestFunction9(int32 x) cil managed { - // Code size 40 (0x28) + // Code size 36 (0x24) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9.fs' + .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9.fs' IL_0000: ldarg.0 IL_0001: ldc.i4.3 IL_0002: sub IL_0003: switch ( IL_0012, - IL_0014) - IL_0010: br.s IL_0022 - - IL_0012: br.s IL_0016 - - IL_0014: br.s IL_001c + IL_0018) + IL_0010: br.s IL_001e .line 6,6 : 12,19 '' - IL_0016: ldstr "three" - IL_001b: ret + IL_0012: ldstr "three" + IL_0017: ret .line 7,7 : 12,18 '' - IL_001c: ldstr "four" - IL_0021: ret + IL_0018: ldstr "four" + IL_001d: ret .line 8,8 : 12,18 '' - IL_0022: ldstr "five" - IL_0027: ret + IL_001e: ldstr "five" + IL_0023: ret } // end of method TestFunction9::TestFunction9 } // end of class TestFunction9 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b.il.bsl index a4168bde720..49d2757735a 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction9b { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9b { - // Offset: 0x00000000 Length: 0x000001F6 + // Offset: 0x00000000 Length: 0x000001F2 } .mresource public FSharpOptimizationData.TestFunction9b { - // Offset: 0x00000200 Length: 0x00000072 + // Offset: 0x000001F8 Length: 0x00000072 } .module TestFunction9b.exe -// MVID: {59B19208-A52C-4FC9-A745-03830892B159} +// MVID: {60B68B97-A52C-4FC9-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01AA0000 +// Image base: 0x00DB0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static string TestFunction9b(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 x) cil managed { - // Code size 411 (0x19b) + // Code size 409 (0x199) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, @@ -69,12 +69,12 @@ [11] int32 V_11, [12] int32 V_12) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b.fs' + .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0008: brfalse IL_0195 + IL_0008: brfalse IL_0193 IL_000d: ldloc.0 IL_000e: stloc.1 @@ -83,17 +83,17 @@ IL_0015: ldc.i4.1 IL_0016: sub IL_0017: switch ( - IL_00ff) + IL_00fd) IL_0020: ldloc.1 IL_0021: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0026: ldc.i4.3 IL_0027: sub IL_0028: switch ( - IL_007a) + IL_0078) IL_0031: ldloc.1 IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0037: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003c: brfalse IL_0195 + IL_003c: brfalse IL_0193 IL_0041: ldloc.1 IL_0042: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() @@ -101,7 +101,7 @@ IL_0048: ldloc.2 IL_0049: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_004e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0053: brtrue IL_0195 + IL_0053: brtrue IL_0193 IL_0058: ldloc.2 IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() @@ -114,126 +114,124 @@ IL_006a: add IL_006b: ldc.i4.4 IL_006c: ceq - IL_006e: brfalse.s IL_0075 - - IL_0070: br IL_017f - - IL_0075: br IL_0195 - - IL_007a: ldloc.1 - IL_007b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: brfalse IL_0195 - - IL_008a: ldloc.1 - IL_008b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0090: stloc.s V_7 - IL_0092: ldloc.s V_7 - IL_0094: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0099: ldc.i4.4 - IL_009a: sub - IL_009b: switch ( - IL_00e9) - IL_00a4: ldloc.s V_7 - IL_00a6: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ab: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00b0: brtrue IL_0195 - - IL_00b5: ldloc.s V_7 - IL_00b7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00bc: stloc.s V_8 - IL_00be: ldloc.1 - IL_00bf: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c4: stloc.s V_9 - IL_00c6: ldloc.s V_9 - IL_00c8: ldloc.s V_8 - IL_00ca: add - IL_00cb: ldc.i4.4 - IL_00cc: ceq - IL_00ce: brfalse IL_0195 - - IL_00d3: ldloc.s V_7 - IL_00d5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00da: ldloc.1 - IL_00db: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00e0: stloc.s V_6 - IL_00e2: stloc.s V_5 - IL_00e4: br IL_018f - - IL_00e9: ldloc.s V_7 - IL_00eb: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f5: brtrue IL_0195 - - IL_00fa: br IL_0179 - - IL_00ff: ldloc.1 - IL_0100: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: brfalse IL_0195 - - IL_010f: ldloc.1 - IL_0110: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0115: stloc.s V_10 - IL_0117: ldloc.s V_10 - IL_0119: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011e: ldc.i4.2 - IL_011f: sub - IL_0120: switch ( - IL_0165) - IL_0129: ldloc.s V_10 - IL_012b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0130: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0135: brtrue.s IL_0195 - - IL_0137: ldloc.s V_10 - IL_0139: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_013e: stloc.s V_11 - IL_0140: ldloc.1 - IL_0141: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0146: stloc.s V_12 - IL_0148: ldloc.s V_12 - IL_014a: ldloc.s V_11 - IL_014c: add - IL_014d: ldc.i4.4 - IL_014e: ceq - IL_0150: brfalse.s IL_0195 - - IL_0152: ldloc.s V_10 - IL_0154: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0159: ldloc.1 - IL_015a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_015f: stloc.s V_6 - IL_0161: stloc.s V_5 - IL_0163: br.s IL_018f - - IL_0165: ldloc.s V_10 - IL_0167: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_016c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0171: brtrue.s IL_0195 + IL_006e: brfalse IL_0193 + + IL_0073: br IL_017d + + IL_0078: ldloc.1 + IL_0079: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_007e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0083: brfalse IL_0193 + + IL_0088: ldloc.1 + IL_0089: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_008e: stloc.s V_7 + IL_0090: ldloc.s V_7 + IL_0092: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0097: ldc.i4.4 + IL_0098: sub + IL_0099: switch ( + IL_00e7) + IL_00a2: ldloc.s V_7 + IL_00a4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ae: brtrue IL_0193 + + IL_00b3: ldloc.s V_7 + IL_00b5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ba: stloc.s V_8 + IL_00bc: ldloc.1 + IL_00bd: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c2: stloc.s V_9 + IL_00c4: ldloc.s V_9 + IL_00c6: ldloc.s V_8 + IL_00c8: add + IL_00c9: ldc.i4.4 + IL_00ca: ceq + IL_00cc: brfalse IL_0193 + + IL_00d1: ldloc.s V_7 + IL_00d3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00d8: ldloc.1 + IL_00d9: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00de: stloc.s V_6 + IL_00e0: stloc.s V_5 + IL_00e2: br IL_018d + + IL_00e7: ldloc.s V_7 + IL_00e9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ee: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f3: brtrue IL_0193 + + IL_00f8: br IL_0177 + + IL_00fd: ldloc.1 + IL_00fe: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0103: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0108: brfalse IL_0193 + + IL_010d: ldloc.1 + IL_010e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0113: stloc.s V_10 + IL_0115: ldloc.s V_10 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: ldc.i4.2 + IL_011d: sub + IL_011e: switch ( + IL_0163) + IL_0127: ldloc.s V_10 + IL_0129: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_012e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0133: brtrue.s IL_0193 + + IL_0135: ldloc.s V_10 + IL_0137: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_013c: stloc.s V_11 + IL_013e: ldloc.1 + IL_013f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0144: stloc.s V_12 + IL_0146: ldloc.s V_12 + IL_0148: ldloc.s V_11 + IL_014a: add + IL_014b: ldc.i4.4 + IL_014c: ceq + IL_014e: brfalse.s IL_0193 + + IL_0150: ldloc.s V_10 + IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0157: ldloc.1 + IL_0158: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_015d: stloc.s V_6 + IL_015f: stloc.s V_5 + IL_0161: br.s IL_018d + + IL_0163: ldloc.s V_10 + IL_0165: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016f: brtrue.s IL_0193 .line 6,6 : 16,23 '' - IL_0173: ldstr "three" - IL_0178: ret + IL_0171: ldstr "three" + IL_0176: ret .line 7,7 : 16,23 '' - IL_0179: ldstr "seven" - IL_017e: ret + IL_0177: ldstr "seven" + IL_017c: ret .line 5,5 : 5,17 '' - IL_017f: ldloc.2 - IL_0180: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0185: stloc.s V_5 - IL_0187: ldloc.1 - IL_0188: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_018d: stloc.s V_6 + IL_017d: ldloc.2 + IL_017e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0183: stloc.s V_5 + IL_0185: ldloc.1 + IL_0186: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_018b: stloc.s V_6 .line 8,8 : 29,35 '' - IL_018f: ldstr "four" - IL_0194: ret + IL_018d: ldstr "four" + IL_0192: ret .line 9,9 : 12,17 '' - IL_0195: ldstr "big" - IL_019a: ret + IL_0193: ldstr "big" + IL_0198: ret } // end of method TestFunction9b::TestFunction9b } // end of class TestFunction9b diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b1.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b1.il.bsl index 28857893620..03e2dd29718 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b1.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b1.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction9b1 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9b1 { - // Offset: 0x00000000 Length: 0x00000208 + // Offset: 0x00000000 Length: 0x00000204 } .mresource public FSharpOptimizationData.TestFunction9b1 { - // Offset: 0x00000210 Length: 0x00000083 + // Offset: 0x00000208 Length: 0x00000083 } .module TestFunction9b1.exe -// MVID: {59B19208-A406-DAF4-A745-03830892B159} +// MVID: {60B68B97-A406-DAF4-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02730000 +// Image base: 0x072C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static string TestFunction9b(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 x) cil managed { - // Code size 411 (0x19b) + // Code size 409 (0x199) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, @@ -69,12 +69,12 @@ [11] int32 V_11, [12] int32 V_12) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b1.fs' + .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b1.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0008: brfalse IL_0195 + IL_0008: brfalse IL_0193 IL_000d: ldloc.0 IL_000e: stloc.1 @@ -83,17 +83,17 @@ IL_0015: ldc.i4.1 IL_0016: sub IL_0017: switch ( - IL_00ff) + IL_00fd) IL_0020: ldloc.1 IL_0021: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0026: ldc.i4.3 IL_0027: sub IL_0028: switch ( - IL_007a) + IL_0078) IL_0031: ldloc.1 IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0037: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003c: brfalse IL_0195 + IL_003c: brfalse IL_0193 IL_0041: ldloc.1 IL_0042: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() @@ -101,7 +101,7 @@ IL_0048: ldloc.2 IL_0049: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_004e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0053: brtrue IL_0195 + IL_0053: brtrue IL_0193 IL_0058: ldloc.2 IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() @@ -114,126 +114,124 @@ IL_006a: add IL_006b: ldc.i4.4 IL_006c: ceq - IL_006e: brfalse.s IL_0075 - - IL_0070: br IL_017f - - IL_0075: br IL_0195 - - IL_007a: ldloc.1 - IL_007b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: brfalse IL_0195 - - IL_008a: ldloc.1 - IL_008b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0090: stloc.s V_7 - IL_0092: ldloc.s V_7 - IL_0094: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0099: ldc.i4.4 - IL_009a: sub - IL_009b: switch ( - IL_00e9) - IL_00a4: ldloc.s V_7 - IL_00a6: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ab: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00b0: brtrue IL_0195 - - IL_00b5: ldloc.s V_7 - IL_00b7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00bc: stloc.s V_8 - IL_00be: ldloc.1 - IL_00bf: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c4: stloc.s V_9 - IL_00c6: ldloc.s V_9 - IL_00c8: ldloc.s V_8 - IL_00ca: add - IL_00cb: ldc.i4.4 - IL_00cc: ceq - IL_00ce: brfalse IL_0195 - - IL_00d3: ldloc.s V_7 - IL_00d5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00da: ldloc.1 - IL_00db: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00e0: stloc.s V_6 - IL_00e2: stloc.s V_5 - IL_00e4: br IL_018f - - IL_00e9: ldloc.s V_7 - IL_00eb: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f5: brtrue IL_0195 - - IL_00fa: br IL_0179 - - IL_00ff: ldloc.1 - IL_0100: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: brfalse IL_0195 - - IL_010f: ldloc.1 - IL_0110: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0115: stloc.s V_10 - IL_0117: ldloc.s V_10 - IL_0119: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011e: ldc.i4.2 - IL_011f: sub - IL_0120: switch ( - IL_0165) - IL_0129: ldloc.s V_10 - IL_012b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0130: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0135: brtrue.s IL_0195 - - IL_0137: ldloc.s V_10 - IL_0139: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_013e: stloc.s V_11 - IL_0140: ldloc.1 - IL_0141: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0146: stloc.s V_12 - IL_0148: ldloc.s V_12 - IL_014a: ldloc.s V_11 - IL_014c: add - IL_014d: ldc.i4.4 - IL_014e: ceq - IL_0150: brfalse.s IL_0195 - - IL_0152: ldloc.s V_10 - IL_0154: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0159: ldloc.1 - IL_015a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_015f: stloc.s V_6 - IL_0161: stloc.s V_5 - IL_0163: br.s IL_018f - - IL_0165: ldloc.s V_10 - IL_0167: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_016c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0171: brtrue.s IL_0195 + IL_006e: brfalse IL_0193 + + IL_0073: br IL_017d + + IL_0078: ldloc.1 + IL_0079: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_007e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0083: brfalse IL_0193 + + IL_0088: ldloc.1 + IL_0089: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_008e: stloc.s V_7 + IL_0090: ldloc.s V_7 + IL_0092: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0097: ldc.i4.4 + IL_0098: sub + IL_0099: switch ( + IL_00e7) + IL_00a2: ldloc.s V_7 + IL_00a4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ae: brtrue IL_0193 + + IL_00b3: ldloc.s V_7 + IL_00b5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ba: stloc.s V_8 + IL_00bc: ldloc.1 + IL_00bd: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c2: stloc.s V_9 + IL_00c4: ldloc.s V_9 + IL_00c6: ldloc.s V_8 + IL_00c8: add + IL_00c9: ldc.i4.4 + IL_00ca: ceq + IL_00cc: brfalse IL_0193 + + IL_00d1: ldloc.s V_7 + IL_00d3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00d8: ldloc.1 + IL_00d9: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00de: stloc.s V_6 + IL_00e0: stloc.s V_5 + IL_00e2: br IL_018d + + IL_00e7: ldloc.s V_7 + IL_00e9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ee: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f3: brtrue IL_0193 + + IL_00f8: br IL_0177 + + IL_00fd: ldloc.1 + IL_00fe: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0103: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0108: brfalse IL_0193 + + IL_010d: ldloc.1 + IL_010e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0113: stloc.s V_10 + IL_0115: ldloc.s V_10 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: ldc.i4.2 + IL_011d: sub + IL_011e: switch ( + IL_0163) + IL_0127: ldloc.s V_10 + IL_0129: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_012e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0133: brtrue.s IL_0193 + + IL_0135: ldloc.s V_10 + IL_0137: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_013c: stloc.s V_11 + IL_013e: ldloc.1 + IL_013f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0144: stloc.s V_12 + IL_0146: ldloc.s V_12 + IL_0148: ldloc.s V_11 + IL_014a: add + IL_014b: ldc.i4.4 + IL_014c: ceq + IL_014e: brfalse.s IL_0193 + + IL_0150: ldloc.s V_10 + IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0157: ldloc.1 + IL_0158: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_015d: stloc.s V_6 + IL_015f: stloc.s V_5 + IL_0161: br.s IL_018d + + IL_0163: ldloc.s V_10 + IL_0165: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016f: brtrue.s IL_0193 .line 6,6 : 16,23 '' - IL_0173: ldstr "three" - IL_0178: ret + IL_0171: ldstr "three" + IL_0176: ret .line 7,7 : 16,23 '' - IL_0179: ldstr "seven" - IL_017e: ret + IL_0177: ldstr "seven" + IL_017c: ret .line 5,5 : 5,17 '' - IL_017f: ldloc.2 - IL_0180: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0185: stloc.s V_5 - IL_0187: ldloc.1 - IL_0188: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_018d: stloc.s V_6 + IL_017d: ldloc.2 + IL_017e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0183: stloc.s V_5 + IL_0185: ldloc.1 + IL_0186: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_018b: stloc.s V_6 .line 8,8 : 29,35 '' - IL_018f: ldstr "four" - IL_0194: ret + IL_018d: ldstr "four" + IL_0192: ret .line 9,9 : 12,17 '' - IL_0195: ldstr "big" - IL_019a: ret + IL_0193: ldstr "big" + IL_0198: ret } // end of method TestFunction9b1::TestFunction9b } // end of class TestFunction9b1 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b2.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b2.il.bsl index 005b49c3081..1fa79b615e8 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b2.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b2.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction9b2 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9b2 { - // Offset: 0x00000000 Length: 0x00000208 + // Offset: 0x00000000 Length: 0x00000204 } .mresource public FSharpOptimizationData.TestFunction9b2 { - // Offset: 0x00000210 Length: 0x00000083 + // Offset: 0x00000208 Length: 0x00000083 } .module TestFunction9b2.exe -// MVID: {59B19208-9C0B-E35E-A745-03830892B159} +// MVID: {60B68B97-9C0B-E35E-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00730000 +// Image base: 0x07220000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static string TestFunction9b(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 x) cil managed { - // Code size 411 (0x19b) + // Code size 409 (0x199) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, @@ -69,12 +69,12 @@ [11] int32 V_11, [12] int32 V_12) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b2.fs' + .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b2.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0008: brfalse IL_0195 + IL_0008: brfalse IL_0193 IL_000d: ldloc.0 IL_000e: stloc.1 @@ -83,17 +83,17 @@ IL_0015: ldc.i4.1 IL_0016: sub IL_0017: switch ( - IL_00ff) + IL_00fd) IL_0020: ldloc.1 IL_0021: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0026: ldc.i4.3 IL_0027: sub IL_0028: switch ( - IL_007a) + IL_0078) IL_0031: ldloc.1 IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0037: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003c: brfalse IL_0195 + IL_003c: brfalse IL_0193 IL_0041: ldloc.1 IL_0042: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() @@ -101,7 +101,7 @@ IL_0048: ldloc.2 IL_0049: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_004e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0053: brtrue IL_0195 + IL_0053: brtrue IL_0193 IL_0058: ldloc.2 IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() @@ -114,126 +114,124 @@ IL_006a: add IL_006b: ldc.i4.4 IL_006c: ceq - IL_006e: brfalse.s IL_0075 - - IL_0070: br IL_017f - - IL_0075: br IL_0195 - - IL_007a: ldloc.1 - IL_007b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: brfalse IL_0195 - - IL_008a: ldloc.1 - IL_008b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0090: stloc.s V_7 - IL_0092: ldloc.s V_7 - IL_0094: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0099: ldc.i4.4 - IL_009a: sub - IL_009b: switch ( - IL_00e9) - IL_00a4: ldloc.s V_7 - IL_00a6: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ab: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00b0: brtrue IL_0195 - - IL_00b5: ldloc.s V_7 - IL_00b7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00bc: stloc.s V_8 - IL_00be: ldloc.1 - IL_00bf: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c4: stloc.s V_9 - IL_00c6: ldloc.s V_9 - IL_00c8: ldloc.s V_8 - IL_00ca: add - IL_00cb: ldc.i4.4 - IL_00cc: ceq - IL_00ce: brfalse IL_0195 - - IL_00d3: ldloc.s V_7 - IL_00d5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00da: ldloc.1 - IL_00db: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00e0: stloc.s V_6 - IL_00e2: stloc.s V_5 - IL_00e4: br IL_018f - - IL_00e9: ldloc.s V_7 - IL_00eb: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f5: brtrue IL_0195 - - IL_00fa: br IL_0179 - - IL_00ff: ldloc.1 - IL_0100: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: brfalse IL_0195 - - IL_010f: ldloc.1 - IL_0110: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0115: stloc.s V_10 - IL_0117: ldloc.s V_10 - IL_0119: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011e: ldc.i4.2 - IL_011f: sub - IL_0120: switch ( - IL_0165) - IL_0129: ldloc.s V_10 - IL_012b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0130: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0135: brtrue.s IL_0195 - - IL_0137: ldloc.s V_10 - IL_0139: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_013e: stloc.s V_11 - IL_0140: ldloc.1 - IL_0141: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0146: stloc.s V_12 - IL_0148: ldloc.s V_12 - IL_014a: ldloc.s V_11 - IL_014c: add - IL_014d: ldc.i4.4 - IL_014e: ceq - IL_0150: brfalse.s IL_0195 - - IL_0152: ldloc.s V_10 - IL_0154: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0159: ldloc.1 - IL_015a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_015f: stloc.s V_6 - IL_0161: stloc.s V_5 - IL_0163: br.s IL_018f - - IL_0165: ldloc.s V_10 - IL_0167: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_016c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0171: brtrue.s IL_0195 + IL_006e: brfalse IL_0193 + + IL_0073: br IL_017d + + IL_0078: ldloc.1 + IL_0079: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_007e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0083: brfalse IL_0193 + + IL_0088: ldloc.1 + IL_0089: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_008e: stloc.s V_7 + IL_0090: ldloc.s V_7 + IL_0092: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0097: ldc.i4.4 + IL_0098: sub + IL_0099: switch ( + IL_00e7) + IL_00a2: ldloc.s V_7 + IL_00a4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ae: brtrue IL_0193 + + IL_00b3: ldloc.s V_7 + IL_00b5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ba: stloc.s V_8 + IL_00bc: ldloc.1 + IL_00bd: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c2: stloc.s V_9 + IL_00c4: ldloc.s V_9 + IL_00c6: ldloc.s V_8 + IL_00c8: add + IL_00c9: ldc.i4.4 + IL_00ca: ceq + IL_00cc: brfalse IL_0193 + + IL_00d1: ldloc.s V_7 + IL_00d3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00d8: ldloc.1 + IL_00d9: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00de: stloc.s V_6 + IL_00e0: stloc.s V_5 + IL_00e2: br IL_018d + + IL_00e7: ldloc.s V_7 + IL_00e9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ee: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f3: brtrue IL_0193 + + IL_00f8: br IL_0177 + + IL_00fd: ldloc.1 + IL_00fe: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0103: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0108: brfalse IL_0193 + + IL_010d: ldloc.1 + IL_010e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0113: stloc.s V_10 + IL_0115: ldloc.s V_10 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: ldc.i4.2 + IL_011d: sub + IL_011e: switch ( + IL_0163) + IL_0127: ldloc.s V_10 + IL_0129: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_012e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0133: brtrue.s IL_0193 + + IL_0135: ldloc.s V_10 + IL_0137: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_013c: stloc.s V_11 + IL_013e: ldloc.1 + IL_013f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0144: stloc.s V_12 + IL_0146: ldloc.s V_12 + IL_0148: ldloc.s V_11 + IL_014a: add + IL_014b: ldc.i4.4 + IL_014c: ceq + IL_014e: brfalse.s IL_0193 + + IL_0150: ldloc.s V_10 + IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0157: ldloc.1 + IL_0158: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_015d: stloc.s V_6 + IL_015f: stloc.s V_5 + IL_0161: br.s IL_018d + + IL_0163: ldloc.s V_10 + IL_0165: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016f: brtrue.s IL_0193 .line 6,6 : 16,23 '' - IL_0173: ldstr "three" - IL_0178: ret + IL_0171: ldstr "three" + IL_0176: ret .line 7,7 : 16,23 '' - IL_0179: ldstr "seven" - IL_017e: ret + IL_0177: ldstr "seven" + IL_017c: ret .line 5,5 : 5,17 '' - IL_017f: ldloc.2 - IL_0180: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0185: stloc.s V_5 - IL_0187: ldloc.1 - IL_0188: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_018d: stloc.s V_6 + IL_017d: ldloc.2 + IL_017e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0183: stloc.s V_5 + IL_0185: ldloc.1 + IL_0186: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_018b: stloc.s V_6 .line 8,8 : 29,35 '' - IL_018f: ldstr "four" - IL_0194: ret + IL_018d: ldstr "four" + IL_0192: ret .line 9,9 : 12,17 '' - IL_0195: ldstr "big" - IL_019a: ret + IL_0193: ldstr "big" + IL_0198: ret } // end of method TestFunction9b2::TestFunction9b } // end of class TestFunction9b2 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b3.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b3.il.bsl index dc4f68ffb80..855fe60eaf0 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b3.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/TestFunctions/Testfunction9b3.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TestFunction9b3 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TestFunction9b3 { - // Offset: 0x00000000 Length: 0x00000208 + // Offset: 0x00000000 Length: 0x00000204 } .mresource public FSharpOptimizationData.TestFunction9b3 { - // Offset: 0x00000210 Length: 0x00000083 + // Offset: 0x00000208 Length: 0x00000083 } .module TestFunction9b3.exe -// MVID: {59B19208-C1A4-612A-A745-03830892B159} +// MVID: {60B68B97-C1A4-612A-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00680000 +// Image base: 0x068C0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -53,7 +53,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 ) .method public static string TestFunction9b(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 x) cil managed { - // Code size 411 (0x19b) + // Code size 409 (0x199) .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, [1] class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, @@ -69,12 +69,12 @@ [11] int32 V_11, [12] int32 V_12) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b3.fs' + .line 5,5 : 5,17 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\TestFunctions\\TestFunction9b3.fs' IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0008: brfalse IL_0195 + IL_0008: brfalse IL_0193 IL_000d: ldloc.0 IL_000e: stloc.1 @@ -83,17 +83,17 @@ IL_0015: ldc.i4.1 IL_0016: sub IL_0017: switch ( - IL_00ff) + IL_00fd) IL_0020: ldloc.1 IL_0021: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0026: ldc.i4.3 IL_0027: sub IL_0028: switch ( - IL_007a) + IL_0078) IL_0031: ldloc.1 IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_0037: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003c: brfalse IL_0195 + IL_003c: brfalse IL_0193 IL_0041: ldloc.1 IL_0042: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() @@ -101,7 +101,7 @@ IL_0048: ldloc.2 IL_0049: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() IL_004e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0053: brtrue IL_0195 + IL_0053: brtrue IL_0193 IL_0058: ldloc.2 IL_0059: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() @@ -114,126 +114,124 @@ IL_006a: add IL_006b: ldc.i4.4 IL_006c: ceq - IL_006e: brfalse.s IL_0075 - - IL_0070: br IL_017f - - IL_0075: br IL_0195 - - IL_007a: ldloc.1 - IL_007b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: brfalse IL_0195 - - IL_008a: ldloc.1 - IL_008b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0090: stloc.s V_7 - IL_0092: ldloc.s V_7 - IL_0094: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0099: ldc.i4.4 - IL_009a: sub - IL_009b: switch ( - IL_00e9) - IL_00a4: ldloc.s V_7 - IL_00a6: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ab: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00b0: brtrue IL_0195 - - IL_00b5: ldloc.s V_7 - IL_00b7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00bc: stloc.s V_8 - IL_00be: ldloc.1 - IL_00bf: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c4: stloc.s V_9 - IL_00c6: ldloc.s V_9 - IL_00c8: ldloc.s V_8 - IL_00ca: add - IL_00cb: ldc.i4.4 - IL_00cc: ceq - IL_00ce: brfalse IL_0195 - - IL_00d3: ldloc.s V_7 - IL_00d5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00da: ldloc.1 - IL_00db: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00e0: stloc.s V_6 - IL_00e2: stloc.s V_5 - IL_00e4: br IL_018f - - IL_00e9: ldloc.s V_7 - IL_00eb: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f5: brtrue IL_0195 - - IL_00fa: br IL_0179 - - IL_00ff: ldloc.1 - IL_0100: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: brfalse IL_0195 - - IL_010f: ldloc.1 - IL_0110: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0115: stloc.s V_10 - IL_0117: ldloc.s V_10 - IL_0119: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011e: ldc.i4.2 - IL_011f: sub - IL_0120: switch ( - IL_0165) - IL_0129: ldloc.s V_10 - IL_012b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0130: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0135: brtrue.s IL_0195 - - IL_0137: ldloc.s V_10 - IL_0139: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_013e: stloc.s V_11 - IL_0140: ldloc.1 - IL_0141: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0146: stloc.s V_12 - IL_0148: ldloc.s V_12 - IL_014a: ldloc.s V_11 - IL_014c: add - IL_014d: ldc.i4.4 - IL_014e: ceq - IL_0150: brfalse.s IL_0195 - - IL_0152: ldloc.s V_10 - IL_0154: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0159: ldloc.1 - IL_015a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_015f: stloc.s V_6 - IL_0161: stloc.s V_5 - IL_0163: br.s IL_018f - - IL_0165: ldloc.s V_10 - IL_0167: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_016c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0171: brtrue.s IL_0195 + IL_006e: brfalse IL_0193 + + IL_0073: br IL_017d + + IL_0078: ldloc.1 + IL_0079: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_007e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0083: brfalse IL_0193 + + IL_0088: ldloc.1 + IL_0089: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_008e: stloc.s V_7 + IL_0090: ldloc.s V_7 + IL_0092: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0097: ldc.i4.4 + IL_0098: sub + IL_0099: switch ( + IL_00e7) + IL_00a2: ldloc.s V_7 + IL_00a4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ae: brtrue IL_0193 + + IL_00b3: ldloc.s V_7 + IL_00b5: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ba: stloc.s V_8 + IL_00bc: ldloc.1 + IL_00bd: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c2: stloc.s V_9 + IL_00c4: ldloc.s V_9 + IL_00c6: ldloc.s V_8 + IL_00c8: add + IL_00c9: ldc.i4.4 + IL_00ca: ceq + IL_00cc: brfalse IL_0193 + + IL_00d1: ldloc.s V_7 + IL_00d3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00d8: ldloc.1 + IL_00d9: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00de: stloc.s V_6 + IL_00e0: stloc.s V_5 + IL_00e2: br IL_018d + + IL_00e7: ldloc.s V_7 + IL_00e9: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00ee: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f3: brtrue IL_0193 + + IL_00f8: br IL_0177 + + IL_00fd: ldloc.1 + IL_00fe: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0103: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0108: brfalse IL_0193 + + IL_010d: ldloc.1 + IL_010e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0113: stloc.s V_10 + IL_0115: ldloc.s V_10 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: ldc.i4.2 + IL_011d: sub + IL_011e: switch ( + IL_0163) + IL_0127: ldloc.s V_10 + IL_0129: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_012e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0133: brtrue.s IL_0193 + + IL_0135: ldloc.s V_10 + IL_0137: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_013c: stloc.s V_11 + IL_013e: ldloc.1 + IL_013f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0144: stloc.s V_12 + IL_0146: ldloc.s V_12 + IL_0148: ldloc.s V_11 + IL_014a: add + IL_014b: ldc.i4.4 + IL_014c: ceq + IL_014e: brfalse.s IL_0193 + + IL_0150: ldloc.s V_10 + IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0157: ldloc.1 + IL_0158: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_015d: stloc.s V_6 + IL_015f: stloc.s V_5 + IL_0161: br.s IL_018d + + IL_0163: ldloc.s V_10 + IL_0165: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_016f: brtrue.s IL_0193 .line 6,6 : 16,23 '' - IL_0173: ldstr "three" - IL_0178: ret + IL_0171: ldstr "three" + IL_0176: ret .line 7,7 : 16,23 '' - IL_0179: ldstr "seven" - IL_017e: ret + IL_0177: ldstr "seven" + IL_017c: ret .line 5,5 : 5,17 '' - IL_017f: ldloc.2 - IL_0180: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0185: stloc.s V_5 - IL_0187: ldloc.1 - IL_0188: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_018d: stloc.s V_6 + IL_017d: ldloc.2 + IL_017e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0183: stloc.s V_5 + IL_0185: ldloc.1 + IL_0186: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_018b: stloc.s V_6 .line 8,8 : 29,35 '' - IL_018f: ldstr "four" - IL_0194: ret + IL_018d: ldstr "four" + IL_0192: ret .line 9,9 : 12,17 '' - IL_0195: ldstr "big" - IL_019a: ret + IL_0193: ldstr "big" + IL_0198: ret } // end of method TestFunction9b3::TestFunction9b } // end of class TestFunction9b3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl index 4474ab67ae3..92b9f88d01f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/OptionalArg01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.7.3081.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:6:0:0 + .ver 5:0:0:0 } .assembly OptionalArg01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.OptionalArg01 { - // Offset: 0x00000000 Length: 0x00000466 + // Offset: 0x00000000 Length: 0x0000045A } .mresource public FSharpOptimizationData.OptionalArg01 { - // Offset: 0x00000470 Length: 0x00000445 + // Offset: 0x00000460 Length: 0x00000445 } .module OptionalArg01.exe -// MVID: {5CB489E1-4F48-B5AF-A745-0383E189B45C} +// MVID: {60B68B97-4F48-B5AF-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x067B0000 +// Image base: 0x05C20000 // =============== CLASS MEMBERS DECLARATION =================== @@ -61,7 +61,7 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 16707566,16707566 : 0,0 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\OptionalArg01.fs' + .line 16707566,16707566 : 0,0 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\OptionalArg01.fs' IL_0000: ldarg.0 IL_0001: callvirt instance void [mscorlib]System.Object::.ctor() IL_0006: ldarg.0 @@ -98,7 +98,7 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) .param [2] .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 83 (0x53) + // Code size 91 (0x5b) .maxstack 4 .locals init ([0] int32 count, [1] int32 V_1, @@ -107,85 +107,95 @@ [4] class OptionalArg01/A v2) .line 10,10 : 9,44 '' IL_0000: ldarg.0 - IL_0001: brfalse.s IL_0007 + IL_0001: brfalse.s IL_0005 - .line 8,8 : 61,70 '' - IL_0003: ldc.i4.1 - .line 16707566,16707566 : 0,0 '' - IL_0004: nop - IL_0005: br.s IL_0009 + IL_0003: br.s IL_0009 .line 8,8 : 43,48 '' - IL_0007: ldc.i4.0 + IL_0005: ldc.i4.0 + .line 16707566,16707566 : 0,0 '' + IL_0006: nop + IL_0007: br.s IL_000b + + .line 8,8 : 61,70 '' + IL_0009: ldc.i4.1 .line 16707566,16707566 : 0,0 '' - IL_0008: nop + IL_000a: nop .line 16707566,16707566 : 0,0 '' - IL_0009: stloc.0 + IL_000b: stloc.0 .line 10,10 : 9,44 '' - IL_000a: ldarg.1 - IL_000b: brfalse.s IL_0013 + IL_000c: ldarg.1 + IL_000d: brfalse.s IL_0011 - .line 9,9 : 61,70 '' - IL_000d: ldloc.0 - IL_000e: ldc.i4.1 - IL_000f: add - .line 16707566,16707566 : 0,0 '' - IL_0010: nop - IL_0011: br.s IL_0015 + IL_000f: br.s IL_0015 .line 9,9 : 43,48 '' - IL_0013: ldloc.0 + IL_0011: ldloc.0 .line 16707566,16707566 : 0,0 '' - IL_0014: nop + IL_0012: nop + IL_0013: br.s IL_0019 + + .line 9,9 : 61,70 '' + IL_0015: ldloc.0 + IL_0016: ldc.i4.1 + IL_0017: add .line 16707566,16707566 : 0,0 '' - IL_0015: stloc.1 - .line 10,10 : 9,44 '' - IL_0016: ldloc.1 - IL_0017: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) - IL_001c: stloc.2 - IL_001d: ldarg.0 - IL_001e: brfalse.s IL_0035 - - IL_0020: ldarg.0 - IL_0021: stloc.3 - IL_0022: ldloc.3 - IL_0023: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0028: stloc.s v2 - .line 11,11 : 47,62 '' - IL_002a: ldloc.2 - IL_002b: ldloc.s v2 - IL_002d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0018: nop .line 16707566,16707566 : 0,0 '' - IL_0032: nop - IL_0033: br.s IL_0037 + IL_0019: stloc.1 + .line 10,10 : 9,44 '' + IL_001a: ldloc.1 + IL_001b: newobj instance void class [mscorlib]System.Collections.Generic.List`1::.ctor(int32) + IL_0020: stloc.2 + IL_0021: ldarg.0 + IL_0022: brfalse.s IL_0026 + + IL_0024: br.s IL_002a .line 11,11 : 31,33 '' - IL_0035: nop + IL_0026: nop .line 16707566,16707566 : 0,0 '' - IL_0036: nop - IL_0037: ldarg.1 - IL_0038: brfalse.s IL_004f - - IL_003a: ldarg.1 - IL_003b: stloc.3 - IL_003c: ldloc.3 - IL_003d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0042: stloc.s v2 - .line 12,12 : 47,62 '' - IL_0044: ldloc.2 - IL_0045: ldloc.s v2 - IL_0047: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) + IL_0027: nop + IL_0028: br.s IL_003d + + .line 10,10 : 9,44 '' + IL_002a: ldarg.0 + IL_002b: stloc.3 + IL_002c: ldloc.3 + IL_002d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0032: stloc.s v2 + .line 11,11 : 47,62 '' + IL_0034: ldloc.2 + IL_0035: ldloc.s v2 + IL_0037: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) .line 16707566,16707566 : 0,0 '' - IL_004c: nop - IL_004d: br.s IL_0051 + IL_003c: nop + IL_003d: ldarg.1 + IL_003e: brfalse.s IL_0042 + + IL_0040: br.s IL_0046 .line 12,12 : 31,33 '' - IL_004f: nop + IL_0042: nop + .line 16707566,16707566 : 0,0 '' + IL_0043: nop + IL_0044: br.s IL_0059 + + .line 11,11 : 47,62 '' + IL_0046: ldarg.1 + IL_0047: stloc.3 + IL_0048: ldloc.3 + IL_0049: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004e: stloc.s v2 + .line 12,12 : 47,62 '' + IL_0050: ldloc.2 + IL_0051: ldloc.s v2 + IL_0053: callvirt instance void class [mscorlib]System.Collections.Generic.List`1::Add(!0) .line 16707566,16707566 : 0,0 '' - IL_0050: nop + IL_0058: nop .line 13,13 : 9,16 '' - IL_0051: ldloc.2 - IL_0052: ret + IL_0059: ldloc.2 + IL_005a: ret } // end of method C::F } // end of class C diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl index 36d04a11dc5..6b7cc9c8d49 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple01 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple01 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple01 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple01.exe -// MVID: {59B19208-6FDB-3E0B-A745-03830892B159} +// MVID: {60B68B97-6FDB-3E0B-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x002E0000 +// Image base: 0x07270000 // =============== CLASS MEMBERS DECLARATION =================== @@ -62,7 +62,7 @@ // Code size 1 (0x1) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,10 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple01.fs' + .line 3,3 : 9,10 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple01.fs' IL_0000: ret } // end of method $Tuple01::main@ diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl index a668638daa3..3f0835a20bc 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple02.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple02 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple02 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple02 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple02.exe -// MVID: {59B19208-ECCC-7D58-A745-03830892B159} +// MVID: {60B68B97-ECCC-7D58-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02C00000 +// Image base: 0x070F0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,12 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple02.fs' + .line 3,3 : 9,12 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple02.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0, diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl index db8af4b0cfa..694e959cf21 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple03.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple03 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple03 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple03 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple03.exe -// MVID: {59B19208-AD65-A299-A745-03830892B159} +// MVID: {60B68B97-AD65-A299-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00AF0000 +// Image base: 0x05690000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 10 (0xa) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,14 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple03.fs' + .line 3,3 : 9,14 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple03.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl index a35c62c665d..67ffcf00724 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple04.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple04 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple04 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple04 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple04.exe -// MVID: {59B19208-6A2E-9E97-A745-03830892B159} +// MVID: {60B68B97-6A2E-9E97-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x001E0000 +// Image base: 0x06E90000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 11 (0xb) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,16 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple04.fs' + .line 3,3 : 9,16 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple04.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl index 07388eb7f39..0626f63d7be 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple05.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple05 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple05 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple05 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple05.exe -// MVID: {59B19208-349F-319F-A745-03830892B159} +// MVID: {60B68B97-349F-319F-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00730000 +// Image base: 0x06BA0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 12 (0xc) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,18 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple05.fs' + .line 3,3 : 9,18 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple05.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl index adbe519a887..26e99d88dca 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple06.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple06 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple06 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple06 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple06.exe -// MVID: {59B19208-67E0-4675-A745-03830892B159} +// MVID: {60B68B97-67E0-4675-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x02A20000 +// Image base: 0x06A80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 13 (0xd) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,20 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple06.fs' + .line 3,3 : 9,20 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple06.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl index e42f75990a8..c4d97daf2ef 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple07.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple07 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple07 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple07 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple07.exe -// MVID: {59B19208-7229-962D-A745-03830892B159} +// MVID: {60B68B97-7229-962D-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x017A0000 +// Image base: 0x00F10000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 14 (0xe) .maxstack 9 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,22 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple07.fs' + .line 3,3 : 9,22 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple07.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl index d029623cf32..72e7d3feed7 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/Tuple08.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly Tuple08 { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.Tuple08 { - // Offset: 0x00000000 Length: 0x0000013F + // Offset: 0x00000000 Length: 0x0000013B } .mresource public FSharpOptimizationData.Tuple08 { - // Offset: 0x00000148 Length: 0x0000004E + // Offset: 0x00000140 Length: 0x0000004E } .module Tuple08.exe -// MVID: {59B19208-E542-67B3-A745-03830892B159} +// MVID: {60B68B97-E542-67B3-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x00390000 +// Image base: 0x00E80000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 20 (0x14) .maxstack 10 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,24 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\Tuple08.fs' + .line 3,3 : 9,24 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\Tuple08.fs' IL_0000: ldc.i4.1 IL_0001: ldc.i4.2 IL_0002: ldc.i4.3 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl index 40147b5627c..28f5492c716 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleElimination.il.bsl @@ -34,20 +34,20 @@ } .mresource public FSharpSignatureData.TupleElimination { - // Offset: 0x00000000 Length: 0x00000228 + // Offset: 0x00000000 Length: 0x0000022A } .mresource public FSharpOptimizationData.TupleElimination { // Offset: 0x00000230 Length: 0x0000007B } .module TupleElimination.exe -// MVID: {5F1FA088-DFDD-92DF-A745-038388A01F5F} +// MVID: {60B68B97-DFDD-92DF-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x07100000 +// Image base: 0x05760000 // =============== CLASS MEMBERS DECLARATION =================== @@ -62,7 +62,7 @@ .maxstack 4 .locals init ([0] class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit> V_0) .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 5,5 : 15,27 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\TupleElimination.fs' + .line 5,5 : 15,27 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\TupleElimination.fs' IL_0000: ldstr "%A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [mscorlib]System.IO.TextWriter,class [FSharp.Core]Microsoft.FSharp.Core.Unit,class [FSharp.Core]Microsoft.FSharp.Core.Unit,!!a>::.ctor(string) IL_000a: stloc.0 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl index 1626f867b9d..0a2af12cc38 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/TupleMonster.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:1:0 + .ver 5:0:0:0 } .assembly TupleMonster { @@ -29,20 +29,20 @@ } .mresource public FSharpSignatureData.TupleMonster { - // Offset: 0x00000000 Length: 0x00000149 + // Offset: 0x00000000 Length: 0x00000145 } .mresource public FSharpOptimizationData.TupleMonster { // Offset: 0x00000150 Length: 0x00000053 } .module TupleMonster.exe -// MVID: {59B19208-1552-41D8-A745-03830892B159} +// MVID: {60B68B97-1552-41D8-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x010B0000 +// Image base: 0x07110000 // =============== CLASS MEMBERS DECLARATION =================== @@ -66,7 +66,7 @@ // Code size 74 (0x4a) .maxstack 28 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,137 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\TupleMonster.fs' + .line 3,3 : 9,137 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\TupleMonster.fs' IL_0000: ldc.i4.s 97 IL_0002: ldc.i4.s 98 IL_0004: ldc.i4.s 99 diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl index 768deb722a1..7682c8bfd4f 100644 --- a/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl +++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/Tuples/ValueTupleAliasConstructor.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,12 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:5:0:0 -} -.assembly extern System.ValueTuple -{ - .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q - .ver 4:0:1:0 + .ver 5:0:0:0 } .assembly ValueTupleAliasConstructor { @@ -34,20 +29,20 @@ } .mresource public FSharpSignatureData.ValueTupleAliasConstructor { - // Offset: 0x00000000 Length: 0x000001EA + // Offset: 0x00000000 Length: 0x000001E0 } .mresource public FSharpOptimizationData.ValueTupleAliasConstructor { - // Offset: 0x000001F0 Length: 0x00000061 + // Offset: 0x000001E8 Length: 0x00000061 } .module ValueTupleAliasConstructor.exe -// MVID: {5B9C53DD-A8CF-BB34-A745-0383DD539C5B} +// MVID: {60B68B97-A8CF-BB34-A745-0383978BB660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x01B00000 +// Image base: 0x00B60000 // =============== CLASS MEMBERS DECLARATION =================== @@ -71,11 +66,11 @@ // Code size 9 (0x9) .maxstack 8 .language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}' - .line 3,3 : 9,22 'c:\\kevinransom\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\Tuples\\ValueTupleAliasConstructor.fs' + .line 3,3 : 9,22 'C:\\GitHub\\dsyme\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\Tuples\\ValueTupleAliasConstructor.fs' IL_0000: ldc.i4.2 IL_0001: ldc.i4.2 - IL_0002: newobj instance void valuetype [System.ValueTuple]System.ValueTuple`2::.ctor(!0, - !1) + IL_0002: newobj instance void valuetype [mscorlib]System.ValueTuple`2::.ctor(!0, + !1) IL_0007: pop IL_0008: ret } // end of method $ValueTupleAliasConstructor::main@ From 64b763a108d6a969815be0c9aea8924d138c5811 Mon Sep 17 00:00:00 2001 From: Don Syme Date: Wed, 2 Jun 2021 01:44:46 +0100 Subject: [PATCH 06/10] update large tests, reenable one --- .../fsharp/Compiler/Stress/LargeExprTests.fs | 64 +--- .../Inlining/StructUnion01.il.bsl | 276 +++++++++--------- 2 files changed, 145 insertions(+), 195 deletions(-) diff --git a/tests/fsharp/Compiler/Stress/LargeExprTests.fs b/tests/fsharp/Compiler/Stress/LargeExprTests.fs index 5eaf926ef6d..c0c8e69cdaa 100644 --- a/tests/fsharp/Compiler/Stress/LargeExprTests.fs +++ b/tests/fsharp/Compiler/Stress/LargeExprTests.fs @@ -9,9 +9,6 @@ open FSharp.Test.Utilities module LargeExprTests = [] -#if NETCOREAPP - [] -#endif let LargeRecordDoesNotStackOverflow() = CompilerAssert.CompileExe """ @@ -987,36 +984,6 @@ type TestRecord = test968: int test969: int test970: int - test971: int - test972: int - test973: int - test974: int - test975: int - test976: int - test977: int - test978: int - test979: int - test980: int - test981: int - test982: int - test983: int - test984: int - test985: int - test986: int - test987: int - test988: int - test989: int - test990: int - test991: int - test992: int - test993: int - test994: int - test995: int - test996: int - test997: int - test998: int - test999: int - test1000: int } [] @@ -1999,36 +1966,7 @@ type TestRecord = test968: string test969: string test970: string - test971: string - test972: string - test973: string - test974: string - test975: string - test976: string - test977: string - test978: string - test979: string - test980: string - test981: string - test982: string - test983: string - test984: string - test985: string - test986: string - test987: string - test988: string - test989: string - test990: string - test991: string - test992: string - test993: string - test994: string - test995: string - test996: string - test997: string - test998: string - test999: string - test1000: string + } [] diff --git a/tests/fsharpqa/Source/Optimizations/Inlining/StructUnion01.il.bsl b/tests/fsharpqa/Source/Optimizations/Inlining/StructUnion01.il.bsl index 7e07ff48ffd..164a3ee6567 100644 --- a/tests/fsharpqa/Source/Optimizations/Inlining/StructUnion01.il.bsl +++ b/tests/fsharpqa/Source/Optimizations/Inlining/StructUnion01.il.bsl @@ -1,5 +1,5 @@ -// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0 +// Microsoft (R) .NET Framework IL Disassembler. Version 4.8.3928.0 // Copyright (c) Microsoft Corporation. All rights reserved. @@ -13,7 +13,7 @@ .assembly extern FSharp.Core { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:4:3:0 + .ver 5:0:0:0 } .assembly StructUnion01 { @@ -25,20 +25,20 @@ } .mresource public FSharpSignatureData.StructUnion01 { - // Offset: 0x00000000 Length: 0x0000087E + // Offset: 0x00000000 Length: 0x0000087A } .mresource public FSharpOptimizationData.StructUnion01 { - // Offset: 0x00000888 Length: 0x00000421 + // Offset: 0x00000880 Length: 0x00000421 } .module StructUnion01.dll -// MVID: {5B1ED843-D3E9-6B24-A745-038343D81E5B} +// MVID: {60B6A4C9-D3E9-6B24-A745-0383C9A4B660} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY -// Image base: 0x017F0000 +// Image base: 0x06CE0000 // =============== CLASS MEMBERS DECLARATION =================== @@ -374,15 +374,14 @@ class [mscorlib]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 52 (0x34) + // Code size 54 (0x36) .maxstack 4 .locals init (valuetype StructUnion01/U V_0) IL_0000: ldarg.1 IL_0001: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::TypeTestGeneric(object) IL_0006: brtrue.s IL_000a - IL_0008: ldc.i4.0 - IL_0009: ret + IL_0008: br.s IL_0034 IL_000a: ldarg.1 IL_000b: unbox.any StructUnion01/U @@ -404,6 +403,9 @@ IL_0032: ldc.i4.0 IL_0033: ret + + IL_0034: ldc.i4.0 + IL_0035: ret } // end of method U::Equals .method public hidebysig virtual final @@ -435,20 +437,22 @@ instance bool Equals(object obj) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - // Code size 23 (0x17) + // Code size 25 (0x19) .maxstack 8 IL_0000: ldarg.1 IL_0001: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::TypeTestGeneric(object) IL_0006: brtrue.s IL_000a - IL_0008: ldc.i4.0 - IL_0009: ret + IL_0008: br.s IL_0017 IL_000a: ldarg.0 IL_000b: ldarg.1 IL_000c: unbox.any StructUnion01/U IL_0011: call instance bool StructUnion01/U::Equals(valuetype StructUnion01/U) IL_0016: ret + + IL_0017: ldc.i4.0 + IL_0018: ret } // end of method U::Equals .property instance int32 Tag() @@ -504,31 +508,33 @@ .method public static int32 g3(valuetype StructUnion01/U x) cil managed { - // Code size 42 (0x2a) + // Code size 44 (0x2c) .maxstack 8 IL_0000: ldarga.s x IL_0002: ldfld int32 StructUnion01/U::item1 IL_0007: ldc.i4.3 IL_0008: sub IL_0009: switch ( - IL_0022) - IL_0012: ldarga.s x - IL_0014: ldfld int32 StructUnion01/U::item1 - IL_0019: ldarga.s x - IL_001b: ldfld int32 StructUnion01/U::item2 - IL_0020: add - IL_0021: ret - - IL_0022: ldarga.s x - IL_0024: ldfld int32 StructUnion01/U::item2 - IL_0029: ret + IL_0014) + IL_0012: br.s IL_001c + + IL_0014: ldarga.s x + IL_0016: ldfld int32 StructUnion01/U::item2 + IL_001b: ret + + IL_001c: ldarga.s x + IL_001e: ldfld int32 StructUnion01/U::item1 + IL_0023: ldarga.s x + IL_0025: ldfld int32 StructUnion01/U::item2 + IL_002a: add + IL_002b: ret } // end of method StructUnion01::g3 .method public static int32 g4(valuetype StructUnion01/U x, valuetype StructUnion01/U y) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) - // Code size 126 (0x7e) + // Code size 128 (0x80) .maxstack 6 .locals init (int32 V_0, int32 V_1, @@ -539,54 +545,56 @@ IL_0007: ldc.i4.3 IL_0008: sub IL_0009: switch ( - IL_003a) - IL_0012: ldarga.s y - IL_0014: ldfld int32 StructUnion01/U::item2 - IL_0019: stloc.0 - IL_001a: ldarga.s y - IL_001c: ldfld int32 StructUnion01/U::item1 - IL_0021: stloc.1 - IL_0022: ldarga.s x - IL_0024: ldfld int32 StructUnion01/U::item2 - IL_0029: stloc.2 - IL_002a: ldarga.s x - IL_002c: ldfld int32 StructUnion01/U::item1 - IL_0031: stloc.3 - IL_0032: ldloc.3 - IL_0033: ldloc.2 - IL_0034: add - IL_0035: ldloc.1 - IL_0036: add - IL_0037: ldloc.0 - IL_0038: add - IL_0039: ret - - IL_003a: ldarga.s y - IL_003c: ldfld int32 StructUnion01/U::item1 - IL_0041: ldc.i4.5 - IL_0042: sub - IL_0043: switch ( - IL_006e) - IL_004c: ldarga.s y - IL_004e: ldfld int32 StructUnion01/U::item2 - IL_0053: ldarga.s y - IL_0055: ldfld int32 StructUnion01/U::item1 - IL_005a: ldarga.s x - IL_005c: ldfld int32 StructUnion01/U::item2 - IL_0061: ldarga.s x - IL_0063: ldfld int32 StructUnion01/U::item1 - IL_0068: stloc.3 - IL_0069: stloc.2 - IL_006a: stloc.1 - IL_006b: stloc.0 - IL_006c: br.s IL_0032 - - IL_006e: ldarga.s x - IL_0070: ldfld int32 StructUnion01/U::item2 - IL_0075: ldarga.s y - IL_0077: ldfld int32 StructUnion01/U::item2 + IL_0014) + IL_0012: br.s IL_0058 + + IL_0014: ldarga.s y + IL_0016: ldfld int32 StructUnion01/U::item1 + IL_001b: ldc.i4.5 + IL_001c: sub + IL_001d: switch ( + IL_0048) + IL_0026: ldarga.s y + IL_0028: ldfld int32 StructUnion01/U::item2 + IL_002d: ldarga.s y + IL_002f: ldfld int32 StructUnion01/U::item1 + IL_0034: ldarga.s x + IL_0036: ldfld int32 StructUnion01/U::item2 + IL_003b: ldarga.s x + IL_003d: ldfld int32 StructUnion01/U::item1 + IL_0042: stloc.3 + IL_0043: stloc.2 + IL_0044: stloc.1 + IL_0045: stloc.0 + IL_0046: br.s IL_0078 + + IL_0048: ldarga.s x + IL_004a: ldfld int32 StructUnion01/U::item2 + IL_004f: ldarga.s y + IL_0051: ldfld int32 StructUnion01/U::item2 + IL_0056: add + IL_0057: ret + + IL_0058: ldarga.s y + IL_005a: ldfld int32 StructUnion01/U::item2 + IL_005f: stloc.0 + IL_0060: ldarga.s y + IL_0062: ldfld int32 StructUnion01/U::item1 + IL_0067: stloc.1 + IL_0068: ldarga.s x + IL_006a: ldfld int32 StructUnion01/U::item2 + IL_006f: stloc.2 + IL_0070: ldarga.s x + IL_0072: ldfld int32 StructUnion01/U::item1 + IL_0077: stloc.3 + IL_0078: ldloc.3 + IL_0079: ldloc.2 + IL_007a: add + IL_007b: ldloc.1 IL_007c: add - IL_007d: ret + IL_007d: ldloc.0 + IL_007e: add + IL_007f: ret } // end of method StructUnion01::g4 .method public static int32 f1(valuetype StructUnion01/U& x) cil managed @@ -615,31 +623,33 @@ .method public static int32 f3(valuetype StructUnion01/U& x) cil managed { - // Code size 38 (0x26) + // Code size 40 (0x28) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldfld int32 StructUnion01/U::item1 IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch ( - IL_001f) - IL_0011: ldarg.0 - IL_0012: ldfld int32 StructUnion01/U::item1 - IL_0017: ldarg.0 - IL_0018: ldfld int32 StructUnion01/U::item2 - IL_001d: add - IL_001e: ret - - IL_001f: ldarg.0 - IL_0020: ldfld int32 StructUnion01/U::item2 - IL_0025: ret + IL_0013) + IL_0011: br.s IL_001a + + IL_0013: ldarg.0 + IL_0014: ldfld int32 StructUnion01/U::item2 + IL_0019: ret + + IL_001a: ldarg.0 + IL_001b: ldfld int32 StructUnion01/U::item1 + IL_0020: ldarg.0 + IL_0021: ldfld int32 StructUnion01/U::item2 + IL_0026: add + IL_0027: ret } // end of method StructUnion01::f3 .method public static int32 f4(valuetype StructUnion01/U& x, valuetype StructUnion01/U& y) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) - // Code size 146 (0x92) + // Code size 148 (0x94) .maxstack 6 .locals init (valuetype StructUnion01/U V_0, valuetype StructUnion01/U V_1, @@ -658,54 +668,56 @@ IL_0015: ldc.i4.3 IL_0016: sub IL_0017: switch ( - IL_004c) - IL_0020: ldloca.s V_1 - IL_0022: ldfld int32 StructUnion01/U::item2 - IL_0027: stloc.2 - IL_0028: ldloca.s V_1 - IL_002a: ldfld int32 StructUnion01/U::item1 - IL_002f: stloc.3 - IL_0030: ldloca.s V_0 - IL_0032: ldfld int32 StructUnion01/U::item2 - IL_0037: stloc.s V_4 - IL_0039: ldloca.s V_0 - IL_003b: ldfld int32 StructUnion01/U::item1 - IL_0040: stloc.s V_5 - IL_0042: ldloc.s V_5 - IL_0044: ldloc.s V_4 - IL_0046: add - IL_0047: ldloc.3 - IL_0048: add - IL_0049: ldloc.2 - IL_004a: add - IL_004b: ret - - IL_004c: ldloca.s V_1 - IL_004e: ldfld int32 StructUnion01/U::item1 - IL_0053: ldc.i4.5 - IL_0054: sub - IL_0055: switch ( - IL_0082) - IL_005e: ldloca.s V_1 - IL_0060: ldfld int32 StructUnion01/U::item2 - IL_0065: ldloca.s V_1 - IL_0067: ldfld int32 StructUnion01/U::item1 - IL_006c: ldloca.s V_0 - IL_006e: ldfld int32 StructUnion01/U::item2 - IL_0073: ldloca.s V_0 - IL_0075: ldfld int32 StructUnion01/U::item1 - IL_007a: stloc.s V_5 - IL_007c: stloc.s V_4 - IL_007e: stloc.3 - IL_007f: stloc.2 - IL_0080: br.s IL_0042 - - IL_0082: ldloca.s V_0 - IL_0084: ldfld int32 StructUnion01/U::item2 - IL_0089: ldloca.s V_1 - IL_008b: ldfld int32 StructUnion01/U::item2 + IL_0022) + IL_0020: br.s IL_0068 + + IL_0022: ldloca.s V_1 + IL_0024: ldfld int32 StructUnion01/U::item1 + IL_0029: ldc.i4.5 + IL_002a: sub + IL_002b: switch ( + IL_0058) + IL_0034: ldloca.s V_1 + IL_0036: ldfld int32 StructUnion01/U::item2 + IL_003b: ldloca.s V_1 + IL_003d: ldfld int32 StructUnion01/U::item1 + IL_0042: ldloca.s V_0 + IL_0044: ldfld int32 StructUnion01/U::item2 + IL_0049: ldloca.s V_0 + IL_004b: ldfld int32 StructUnion01/U::item1 + IL_0050: stloc.s V_5 + IL_0052: stloc.s V_4 + IL_0054: stloc.3 + IL_0055: stloc.2 + IL_0056: br.s IL_008a + + IL_0058: ldloca.s V_0 + IL_005a: ldfld int32 StructUnion01/U::item2 + IL_005f: ldloca.s V_1 + IL_0061: ldfld int32 StructUnion01/U::item2 + IL_0066: add + IL_0067: ret + + IL_0068: ldloca.s V_1 + IL_006a: ldfld int32 StructUnion01/U::item2 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: ldfld int32 StructUnion01/U::item1 + IL_0077: stloc.3 + IL_0078: ldloca.s V_0 + IL_007a: ldfld int32 StructUnion01/U::item2 + IL_007f: stloc.s V_4 + IL_0081: ldloca.s V_0 + IL_0083: ldfld int32 StructUnion01/U::item1 + IL_0088: stloc.s V_5 + IL_008a: ldloc.s V_5 + IL_008c: ldloc.s V_4 + IL_008e: add + IL_008f: ldloc.3 IL_0090: add - IL_0091: ret + IL_0091: ldloc.2 + IL_0092: add + IL_0093: ret } // end of method StructUnion01::f4 } // end of class StructUnion01 From 4e9c4b8dd8f2b90f57bd342f920001ca3153b458 Mon Sep 17 00:00:00 2001 From: Don Syme Date: Wed, 2 Jun 2021 14:28:10 +0100 Subject: [PATCH 07/10] add MicroPerf --- VisualFSharp.sln | 50 +++++++++++++++++++ tests/benchmarks/Benchmarks.sln | 44 ---------------- .../CompilerServiceBenchmarks.fsproj | 14 ++---- .../CompilerServiceBenchmarks/Program.fs | 46 +++++++++-------- tests/benchmarks/MicroPerf/Benchmarks.fs | 49 ++++++++++++++++++ .../MicroPerf/CS/MicroPerfCSharp.cs | 17 +++++++ .../MicroPerf/CS/MicroPerfCSharp.csproj | 13 +++++ tests/benchmarks/MicroPerf/MicroPerf.fsproj | 28 +++++++++++ 8 files changed, 186 insertions(+), 75 deletions(-) delete mode 100644 tests/benchmarks/Benchmarks.sln create mode 100644 tests/benchmarks/MicroPerf/Benchmarks.fs create mode 100644 tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.cs create mode 100644 tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.csproj create mode 100644 tests/benchmarks/MicroPerf/MicroPerf.fsproj diff --git a/VisualFSharp.sln b/VisualFSharp.sln index 633235f7a70..4ab8ee853dc 100644 --- a/VisualFSharp.sln +++ b/VisualFSharp.sln @@ -160,6 +160,16 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Service.Tes EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualFSharpDebug", "vsintegration\Vsix\VisualFSharpFull\VisualFSharpDebug.csproj", "{A422D673-8E3B-4924-821B-DD3174173426}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", "{DFB6ADD7-3149-43D9-AFA0-FC4A818B472B}" +EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "CompilerServiceBenchmarks", "tests\benchmarks\CompilerServiceBenchmarks\CompilerServiceBenchmarks.fsproj", "{564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicroPerfCSharp", "tests\benchmarks\MicroPerf\CS\MicroPerfCSharp.csproj", "{208E36EE-665C-42D2-B767-C6DB03C4FEB2}" +EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "MicroPerf", "tests\benchmarks\MicroPerf\MicroPerf.fsproj", "{EE08E954-AE91-4EFA-8595-10931D29E628}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MicroPerf", "MicroPerf", "{47112E07-9FF1-43E7-8021-F2A21D6A19A0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -938,6 +948,42 @@ Global {A422D673-8E3B-4924-821B-DD3174173426}.Release|Any CPU.Build.0 = Release|Any CPU {A422D673-8E3B-4924-821B-DD3174173426}.Release|x86.ActiveCfg = Release|Any CPU {A422D673-8E3B-4924-821B-DD3174173426}.Release|x86.Build.0 = Release|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Debug|x86.ActiveCfg = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Debug|x86.Build.0 = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Proto|Any CPU.ActiveCfg = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Proto|Any CPU.Build.0 = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Proto|x86.ActiveCfg = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Proto|x86.Build.0 = Debug|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Release|Any CPU.Build.0 = Release|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Release|x86.ActiveCfg = Release|Any CPU + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61}.Release|x86.Build.0 = Release|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Debug|x86.ActiveCfg = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Debug|x86.Build.0 = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Proto|Any CPU.ActiveCfg = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Proto|Any CPU.Build.0 = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Proto|x86.ActiveCfg = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Proto|x86.Build.0 = Debug|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Release|Any CPU.Build.0 = Release|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Release|x86.ActiveCfg = Release|Any CPU + {208E36EE-665C-42D2-B767-C6DB03C4FEB2}.Release|x86.Build.0 = Release|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Debug|x86.ActiveCfg = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Debug|x86.Build.0 = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Proto|Any CPU.ActiveCfg = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Proto|Any CPU.Build.0 = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Proto|x86.ActiveCfg = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Proto|x86.Build.0 = Debug|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Release|Any CPU.Build.0 = Release|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Release|x86.ActiveCfg = Release|Any CPU + {EE08E954-AE91-4EFA-8595-10931D29E628}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1013,6 +1059,10 @@ Global {B5A9BBD9-2F45-4722-A6CA-BAE3C64CD4E2} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77} {14F3D3D6-5C8E-43C2-98A2-17EA704D4DEA} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449} {A422D673-8E3B-4924-821B-DD3174173426} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D} + {564E7DC5-11CB-4FCF-ABDD-23AD93AF3A61} = {DFB6ADD7-3149-43D9-AFA0-FC4A818B472B} + {208E36EE-665C-42D2-B767-C6DB03C4FEB2} = {47112E07-9FF1-43E7-8021-F2A21D6A19A0} + {EE08E954-AE91-4EFA-8595-10931D29E628} = {47112E07-9FF1-43E7-8021-F2A21D6A19A0} + {47112E07-9FF1-43E7-8021-F2A21D6A19A0} = {DFB6ADD7-3149-43D9-AFA0-FC4A818B472B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {48EDBBBE-C8EE-4E3C-8B19-97184A487B37} diff --git a/tests/benchmarks/Benchmarks.sln b/tests/benchmarks/Benchmarks.sln deleted file mode 100644 index b2a35f33b01..00000000000 --- a/tests/benchmarks/Benchmarks.sln +++ /dev/null @@ -1,44 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28407.52 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "CompilerServiceBenchmarks", "CompilerServiceBenchmarks\CompilerServiceBenchmarks.fsproj", "{9A3C565C-B514-4AE0-8B01-CA80E8453EB0}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Service", "..\..\src\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj", "{0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core", "..\..\src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{A2E3D114-10EE-4438-9C1D-2E15046607F3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Proto|Any CPU = Proto|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Proto|Any CPU.ActiveCfg = Release|Any CPU - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Proto|Any CPU.Build.0 = Release|Any CPU - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A3C565C-B514-4AE0-8B01-CA80E8453EB0}.Release|Any CPU.Build.0 = Release|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Proto|Any CPU.ActiveCfg = Debug|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Proto|Any CPU.Build.0 = Debug|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BD3108C-8CDC-48E3-8CD3-B50E4F2E72A4}.Release|Any CPU.Build.0 = Release|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Proto|Any CPU.ActiveCfg = Debug|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Proto|Any CPU.Build.0 = Debug|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2E3D114-10EE-4438-9C1D-2E15046607F3}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {049A4D02-709F-418C-AD59-7FB0DBE956B1} - EndGlobalSection -EndGlobal diff --git a/tests/benchmarks/CompilerServiceBenchmarks/CompilerServiceBenchmarks.fsproj b/tests/benchmarks/CompilerServiceBenchmarks/CompilerServiceBenchmarks.fsproj index a2a51fc3519..27336d1c50e 100644 --- a/tests/benchmarks/CompilerServiceBenchmarks/CompilerServiceBenchmarks.fsproj +++ b/tests/benchmarks/CompilerServiceBenchmarks/CompilerServiceBenchmarks.fsproj @@ -1,19 +1,11 @@  - - $(MSBuildProjectDirectory)\..\..\src - - Exe - net472 + net5.0 true - - AnyCPU - - @@ -22,8 +14,8 @@ - - + + diff --git a/tests/benchmarks/CompilerServiceBenchmarks/Program.fs b/tests/benchmarks/CompilerServiceBenchmarks/Program.fs index ad17306ce10..28c42defebf 100644 --- a/tests/benchmarks/CompilerServiceBenchmarks/Program.fs +++ b/tests/benchmarks/CompilerServiceBenchmarks/Program.fs @@ -2,9 +2,12 @@ open System.IO open System.Text open FSharp.Compiler.ErrorLogger -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.CodeAnalysis +open FSharp.Compiler.Diagnostics +open FSharp.Compiler.Syntax +open FSharp.Compiler.Symbols +open FSharp.Compiler.EditorServices open FSharp.Compiler.Text -open FSharp.Compiler.Range open FSharp.Compiler.AbstractIL open FSharp.Compiler.AbstractIL.IL open FSharp.Compiler.AbstractIL.ILBinaryReader @@ -95,14 +98,13 @@ module Helpers = Array.append [|"--optimize+"; "--target:library" |] (referencedProjects |> Array.ofList |> Array.map (fun x -> "-r:" + x.ProjectFileName)) ReferencedProjects = referencedProjects - |> List.map (fun x -> (x.ProjectFileName, x)) + |> List.map (fun x -> FSharpReferencedProject.CreateFSharp (x.ProjectFileName, x)) |> Array.ofList IsIncompleteTypeCheckEnvironment = false UseScriptResolutionRules = false LoadTime = DateTime() UnresolvedReferences = None OriginalLoadReferences = [] - ExtraProjectInfo = None Stamp = Some 0L (* set the stamp to 0L on each run so we don't evaluate the whole project again *) } @@ -137,7 +139,7 @@ type CompilerService() = { SourceFiles = [|"CheckExpressions.fs"|] ConditionalCompilationDefines = [] - ErrorSeverityOptions = FSharpDiagnosticSeverityOptions.Default + ErrorSeverityOptions = FSharpDiagnosticOptions.Default IsInteractive = false LightSyntax = None CompilingFsLib = false @@ -190,7 +192,7 @@ type CompilerService() = | _, None -> failwith "no source" | Some(checker), Some(source) -> let results = checker.ParseFile("CheckExpressions.fs", source.ToFSharpSourceText(), parsingOptions) |> Async.RunSynchronously - if results.ParseHadErrors then failwithf "parse had errors: %A" results.Errors + if results.ParseHadErrors then failwithf "parse had errors: %A" results.Diagnostics [] member __.ParsingTypeCheckerFsSetup() = @@ -272,15 +274,15 @@ type CompilerService() = checker.ParseAndCheckFileInProject(file, 0, SourceText.ofString (File.ReadAllText(file)), options) |> Async.RunSynchronously - if parseResult.Errors.Length > 0 then - failwithf "%A" parseResult.Errors + if parseResult.Diagnostics.Length > 0 then + failwithf "%A" parseResult.Diagnostics match checkResult with | FSharpCheckFileAnswer.Aborted -> failwith "aborted" | FSharpCheckFileAnswer.Succeeded checkFileResult -> - if checkFileResult.Errors.Length > 0 then - failwithf "%A" checkFileResult.Errors + if checkFileResult.Diagnostics.Length > 0 then + failwithf "%A" checkFileResult.Diagnostics [] member this.TypeCheckFileWith100ReferencedProjectsSetup() = @@ -290,11 +292,13 @@ type CompilerService() = ) this.TypeCheckFileWith100ReferencedProjectsOptions.ReferencedProjects - |> Seq.iter (fun (_, referencedProjectOptions) -> - referencedProjectOptions.SourceFiles - |> Seq.iter (fun file -> - File.WriteAllText(file, generateSourceCode (Path.GetFileNameWithoutExtension(file))) - ) + |> Seq.iter (function + | FSharpReferencedProject.FSharpReference(_, referencedProjectOptions) -> + referencedProjectOptions.SourceFiles + |> Seq.iter (fun file -> + File.WriteAllText(file, generateSourceCode (Path.GetFileNameWithoutExtension(file))) + ) + | _ -> () ) this.TypeCheckFileWith100ReferencedProjectsRun() @@ -315,11 +319,13 @@ type CompilerService() = ) this.TypeCheckFileWith100ReferencedProjectsOptions.ReferencedProjects - |> Seq.iter (fun (_, referencedProjectOptions) -> - referencedProjectOptions.SourceFiles - |> Seq.iter (fun file -> - try File.Delete(file) with | _ -> () - ) + |> Seq.iter (function + | FSharpReferencedProject.FSharpReference(_, referencedProjectOptions) -> + referencedProjectOptions.SourceFiles + |> Seq.iter (fun file -> + try File.Delete(file) with | _ -> () + ) + | _ -> () ) match checkerOpt with diff --git a/tests/benchmarks/MicroPerf/Benchmarks.fs b/tests/benchmarks/MicroPerf/Benchmarks.fs new file mode 100644 index 00000000000..cb264e065e3 --- /dev/null +++ b/tests/benchmarks/MicroPerf/Benchmarks.fs @@ -0,0 +1,49 @@ +(* +msbuild tests\fsharp\perf\tasks\FS\TaskPerf.fsproj /p:Configuration=Release +dotnet artifacts\bin\TaskPerf\Release\netcoreapp2.1\TaskPerf.dll +*) + +namespace TaskPerf + +//open FSharp.Control.Tasks +open BenchmarkDotNet.Attributes +open BenchmarkDotNet.Running +open BenchmarkDotNet.Configs +open BenchmarkDotNet.Diagnosers +open System.Runtime.CompilerServices + +module Code = + [] + let condition_2 x = + if (x = 1 || x = 2) then 1 + elif(x = 3 || x = 4) then 2 + + else 8 + +[] +[] +type Benchmarks() = + + [] + [] + [] + [] + [] + member _.CSharp(x: int) = + MicroPerfCSharp.Cond(x) + + [] + [] + [] + [] + [] + member _.FSharp(x: int) = + Code.condition_2(x) + +module Main = + + [] + let main argv = + printfn "Running benchmarks..." + let results = BenchmarkRunner.Run() + 0 diff --git a/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.cs b/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.cs new file mode 100644 index 00000000000..409ed07ac55 --- /dev/null +++ b/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.cs @@ -0,0 +1,17 @@ + +using System.Runtime.CompilerServices; + +public class MicroPerfCSharp +{ + // + // FSharp will not inline the code so we shouldn't eiter. + // + [MethodImpl(MethodImplOptions.NoInlining)] + public static int Cond(int x) + { + if (x == 1 || x == 2) return 1; + else if (x == 3 || x == 4) return 2; + + else return 8; + } +} \ No newline at end of file diff --git a/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.csproj b/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.csproj new file mode 100644 index 00000000000..32ae4d1b867 --- /dev/null +++ b/tests/benchmarks/MicroPerf/CS/MicroPerfCSharp.csproj @@ -0,0 +1,13 @@ + + + + net5.0 + Library + 8.0 + + + + + + + \ No newline at end of file diff --git a/tests/benchmarks/MicroPerf/MicroPerf.fsproj b/tests/benchmarks/MicroPerf/MicroPerf.fsproj new file mode 100644 index 00000000000..535fc3b3cd8 --- /dev/null +++ b/tests/benchmarks/MicroPerf/MicroPerf.fsproj @@ -0,0 +1,28 @@ + + + + net5.0 + Exe + true + + $(OtherFlags) --nowarn:1204 + + $(OtherFlags) --nowarn:57 + $(OtherFlags) --langversion:preview + $(OtherFlags) --define:PREVIEW + + + C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp + fsc.exe + + + + + + + + + + + + From 608c1f58d7393eb734966a6d1fcdbe75d5d9f26c Mon Sep 17 00:00:00 2001 From: Don Syme Date: Wed, 2 Jun 2021 14:30:09 +0100 Subject: [PATCH 08/10] add MicroPerf --- tests/benchmarks/MicroPerf/MicroPerf.fsproj | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/benchmarks/MicroPerf/MicroPerf.fsproj b/tests/benchmarks/MicroPerf/MicroPerf.fsproj index 535fc3b3cd8..6e9e411e438 100644 --- a/tests/benchmarks/MicroPerf/MicroPerf.fsproj +++ b/tests/benchmarks/MicroPerf/MicroPerf.fsproj @@ -11,10 +11,13 @@ $(OtherFlags) --langversion:preview $(OtherFlags) --define:PREVIEW - + + + From bf2d20e038f4a7f09faef53c719b5860cc6aea20 Mon Sep 17 00:00:00 2001 From: Don Syme Date: Wed, 2 Jun 2021 19:58:37 +0100 Subject: [PATCH 09/10] update baselines --- .../EmittedIL/ComputedListExpressions.fs | 217 +++++++++--------- 1 file changed, 108 insertions(+), 109 deletions(-) diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/ComputedListExpressions.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/ComputedListExpressions.fs index 434618a7195..4938f7b2a7e 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/ComputedListExpressions.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/ComputedListExpressions.fs @@ -221,7 +221,7 @@ let ListExpressionSteppingTest5 () = """ (fun verifier -> verifier.VerifyIL [ """ - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ListExpressionSteppingTest5() cil managed { @@ -261,7 +261,7 @@ let ListExpressionSteppingTest5 () = IL_0039: ldnull IL_003a: stloc.2 - IL_003b: leave.s IL_005a + IL_003b: leave.s IL_0056 } finally @@ -270,17 +270,23 @@ let ListExpressionSteppingTest5 () = IL_003e: isinst [runtime]System.IDisposable IL_0043: stloc.s V_4 IL_0045: ldloc.s V_4 - IL_0047: brfalse.s IL_004b - - IL_0049: br.s IL_004d - - IL_004b: br.s IL_0057 + IL_0047: brfalse.s IL_0053 - IL_004d: ldloc.s V_4 - IL_004f: callvirt instance void [runtime]System.IDisposable::Dispose() - IL_0054: ldnull - IL_0055: pop - IL_0056: endfinally + IL_0049: ldloc.s V_4 + IL_004b: callvirt instance void [runtime]System.IDisposable::Dispose() + IL_0050: ldnull + IL_0051: pop + IL_0052: endfinally + IL_0053: ldnull + IL_0054: pop + IL_0055: endfinally + } + IL_0056: ldloc.2 + IL_0057: pop + IL_0058: ldloca.s V_0 + IL_005a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_005f: ret + } """ ]) @@ -305,104 +311,97 @@ let ListExpressionSteppingTest6 () = (fun verifier -> verifier.VerifyIL [ """ .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - ListExpressionSteppingTest6() cil managed -{ - - .maxstack 5 - .locals init (valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_0, - class [runtime]System.Collections.Generic.IEnumerator`1 V_1, - class [runtime]System.Collections.Generic.IEnumerable`1 V_2, - int32 V_3, - class [runtime]System.IDisposable V_4) - IL_0000: ldc.i4.1 - IL_0001: ldc.i4.1 - IL_0002: ldc.i4.4 - IL_0003: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, - int32, - int32) - IL_0008: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_000d: stloc.1 - .try + ListExpressionSteppingTest6() cil managed { - IL_000e: ldloc.1 - IL_000f: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() - IL_0014: brfalse.s IL_0077 - - IL_0016: ldloc.1 - IL_0017: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() - IL_001c: stloc.3 - IL_001d: ldloc.3 - IL_001e: ldc.i4.1 - IL_001f: sub - IL_0020: switch ( - IL_002f, - IL_0031) - IL_002d: br.s IL_006b - - IL_002f: br.s IL_0033 - - IL_0031: br.s IL_004f - - IL_0033: ldstr "hello" - IL_0038: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_003d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0042: pop - IL_0043: ldloca.s V_0 - IL_0045: ldloc.3 - IL_0046: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_004b: nop - IL_004c: nop - IL_004d: br.s IL_000e - - IL_004f: ldstr "hello" - IL_0054: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0059: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_005e: pop - IL_005f: ldloca.s V_0 - IL_0061: ldloc.3 - IL_0062: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0067: nop - IL_0068: nop - IL_0069: br.s IL_000e - - IL_006b: ldloca.s V_0 - IL_006d: ldloc.3 - IL_006e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0073: nop - IL_0074: nop - IL_0075: br.s IL_000e - - IL_0077: ldnull - IL_0078: stloc.2 - IL_0079: leave.s IL_0098 - } - finally - { - IL_007b: ldloc.1 - IL_007c: isinst [runtime]System.IDisposable - IL_0081: stloc.s V_4 - IL_0083: ldloc.s V_4 - IL_0085: brfalse.s IL_0089 - - IL_0087: br.s IL_008b - - IL_0089: br.s IL_0095 - - IL_008b: ldloc.s V_4 - IL_008d: callvirt instance void [runtime]System.IDisposable::Dispose() - IL_0092: ldnull - IL_0093: pop - IL_0094: endfinally - IL_0095: ldnull - IL_0096: pop - IL_0097: endfinally - } - IL_0098: ldloc.2 - IL_0099: pop - IL_009a: ldloca.s V_0 - IL_009c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_00a1: ret -} + .maxstack 5 + .locals init (valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_0, + class [runtime]System.Collections.Generic.IEnumerator`1 V_1, + class [runtime]System.Collections.Generic.IEnumerable`1 V_2, + int32 V_3, + class [runtime]System.IDisposable V_4) + IL_0000: ldc.i4.1 + IL_0001: ldc.i4.1 + IL_0002: ldc.i4.4 + IL_0003: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + int32, + int32) + IL_0008: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_000d: stloc.1 + .try + { + IL_000e: ldloc.1 + IL_000f: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() + IL_0014: brfalse.s IL_0073 + + IL_0016: ldloc.1 + IL_0017: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() + IL_001c: stloc.3 + IL_001d: ldloc.3 + IL_001e: ldc.i4.1 + IL_001f: sub + IL_0020: switch ( + IL_002f, + IL_004b) + IL_002d: br.s IL_0067 + + IL_002f: ldstr "hello" + IL_0034: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0039: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_003e: pop + IL_003f: ldloca.s V_0 + IL_0041: ldloc.3 + IL_0042: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0047: nop + IL_0048: nop + IL_0049: br.s IL_000e + + IL_004b: ldstr "hello" + IL_0050: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0055: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_005a: pop + IL_005b: ldloca.s V_0 + IL_005d: ldloc.3 + IL_005e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0063: nop + IL_0064: nop + IL_0065: br.s IL_000e + + IL_0067: ldloca.s V_0 + IL_0069: ldloc.3 + IL_006a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_006f: nop + IL_0070: nop + IL_0071: br.s IL_000e + + IL_0073: ldnull + IL_0074: stloc.2 + IL_0075: leave.s IL_0090 + + } + finally + { + IL_0077: ldloc.1 + IL_0078: isinst [runtime]System.IDisposable + IL_007d: stloc.s V_4 + IL_007f: ldloc.s V_4 + IL_0081: brfalse.s IL_008d + + IL_0083: ldloc.s V_4 + IL_0085: callvirt instance void [runtime]System.IDisposable::Dispose() + IL_008a: ldnull + IL_008b: pop + IL_008c: endfinally + IL_008d: ldnull + IL_008e: pop + IL_008f: endfinally + } + IL_0090: ldloc.2 + IL_0091: pop + IL_0092: ldloca.s V_0 + IL_0094: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0099: ret + } + """ ]) From fd20ef51397fc41ae22fc30b3387872550b5032b Mon Sep 17 00:00:00 2001 From: Don Syme Date: Wed, 2 Jun 2021 20:33:23 +0100 Subject: [PATCH 10/10] add test case --- .../CodeGen/EmittedIL/BooleanLogic.fs | 55 +++++++++++++++++++ tests/fsharp/FSharpSuite.Tests.fsproj | 1 + 2 files changed, 56 insertions(+) create mode 100644 tests/fsharp/Compiler/CodeGen/EmittedIL/BooleanLogic.fs diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/BooleanLogic.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/BooleanLogic.fs new file mode 100644 index 00000000000..7268da013ee --- /dev/null +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/BooleanLogic.fs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. + +namespace FSharp.Compiler.UnitTests.CodeGen.EmittedIL + +open FSharp.Test.Utilities +open NUnit.Framework + +[] +module ``BooleanLogic`` = + + [] + let ``BooleanOrs``() = + CompilerAssert.CompileLibraryAndVerifyILWithOptions [|"-g"; "--optimize+"|] + """ +module BooleanOrs +let compute (x: int) = + if (x = 1 || x = 2) then 2 + elif (x = 3 || x = 4) then 3 + else 4 + """ + (fun verifier -> verifier.VerifyIL [ + """ +.method public static int32 compute(int32 x) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: beq.s IL_0008 + + IL_0004: ldarg.0 + IL_0005: ldc.i4.2 + IL_0006: bne.un.s IL_000a + + IL_0008: ldc.i4.2 + IL_0009: ret + + IL_000a: ldarg.0 + IL_000b: ldc.i4.3 + IL_000c: beq.s IL_0012 + + IL_000e: ldarg.0 + IL_000f: ldc.i4.4 + IL_0010: bne.un.s IL_0014 + + IL_0012: ldc.i4.3 + IL_0013: ret + + IL_0014: ldc.i4.4 + IL_0015: ret +} + + """ + ]) + diff --git a/tests/fsharp/FSharpSuite.Tests.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj index 39f600f5e2a..8f1f79d409e 100644 --- a/tests/fsharp/FSharpSuite.Tests.fsproj +++ b/tests/fsharp/FSharpSuite.Tests.fsproj @@ -30,6 +30,7 @@ +