From a55b90db8f7ff570a1cee2a9861254bf0b938b0d Mon Sep 17 00:00:00 2001 From: Jakub Majocha <1760221+majocha@users.noreply.github.com> Date: Sat, 13 Dec 2025 01:21:04 +0100 Subject: [PATCH 1/3] fix and a test --- src/Compiler/Interactive/fsi.fs | 3 +- src/Compiler/TypedTree/TypedTreeOps.fs | 5 +++- .../Scripting/Interactive.fs | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Interactive/fsi.fs b/src/Compiler/Interactive/fsi.fs index ca96324426a..f817a5519f1 100644 --- a/src/Compiler/Interactive/fsi.fs +++ b/src/Compiler/Interactive/fsi.fs @@ -2131,7 +2131,8 @@ type internal FsiDynamicCompiler if tcConfig.printAst then for input in declaredImpls do fprintfn fsiConsoleOutput.Out "AST:" - fprintfn fsiConsoleOutput.Out "%+A" input + let layout = DebugPrint.implFileL input + fprintfn fsiConsoleOutput.Out "%s" (LayoutRender.showL layout) #endif diagnosticsLogger.AbortOnError(fsiConsoleOutput) diff --git a/src/Compiler/TypedTree/TypedTreeOps.fs b/src/Compiler/TypedTree/TypedTreeOps.fs index b50c5153886..75fd61a7382 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.fs @@ -11225,13 +11225,16 @@ let mkOptimizedRangeLoop (g: TcGlobals) (mBody, mFor, mIn, spInWhile) (rangeTy, | RangeCount.PossiblyOversize calc -> calc (fun count wouldOvf -> buildLoop count (fun mkBody -> + // mkBody creates expressions that may contain lambdas with unique stamps. + // We need to copy the expression for the second branch to avoid duplicate type names. + let mkBodyCopied idxVar loopVar = copyExpr g CloneAll (mkBody idxVar loopVar) mkCond DebugPointAtBinding.NoneAtInvisible mIn g.unit_ty wouldOvf (mkCountUpInclusive mkBody (tyOfExpr g count)) - (mkCompGenLetIn mIn (nameof count) (tyOfExpr g count) count (fun (_, count) -> mkCountUpExclusive mkBody count)))) + (mkCompGenLetIn mIn (nameof count) (tyOfExpr g count) count (fun (_, count) -> mkCountUpExclusive mkBodyCopied count)))) ) let mkDebugPoint m expr = diff --git a/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs b/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs index 7580dae0925..68b37b5eded 100644 --- a/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs +++ b/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs @@ -141,3 +141,31 @@ module MultiEmit = """if A.v <> 7.2 then failwith $"8: Failed {A.v} <> 7.2" """ """if B.v <> 9.3 then failwith $"9: Failed {A.v} <> 9.3" """ |] |> Seq.iter(fun item -> item |> scriptIt) + + // https://github.com/dotnet/fsharp/issues/19156 + [] + [] + [] + let ``Generic list comprehension with nested lambda should not cause duplicate entry in type index table`` (useMultiEmit) = + + let args : string array = [| + if useMultiEmit then "--multiemit+" else "--multiemit-" + "--ast" + |] + use session = new FSharpScript(additionalArgs=args) + + let code = """ +open System + +let f (start: DateTime) (stop: DateTime) (input: (DateTime * 'a) list) = + [ + for i in start.Ticks .. stop.Ticks -> + input |> List.where (fun (k, v) -> true) + ] +""" + + let result, errors = session.Eval(code) + Assert.Empty(errors) + match result with + | Ok _ -> () + | Result.Error ex -> Assert.Fail($"Eval failed with: {ex.Message}") From 3e72c981e6b5ea855e9f7e565beb7a674e366a77 Mon Sep 17 00:00:00 2001 From: Jakub Majocha <1760221+majocha@users.noreply.github.com> Date: Sat, 13 Dec 2025 09:55:04 +0100 Subject: [PATCH 2/3] move test --- .../Language/RegressionTests.fs | 34 +++++++++++++++++++ .../Scripting/Interactive.fs | 28 --------------- .../TheBigFileOfDebugStepping.fsx | 8 +++++ 3 files changed, 42 insertions(+), 28 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Language/RegressionTests.fs b/tests/FSharp.Compiler.ComponentTests/Language/RegressionTests.fs index b29311ba33b..39396d06a71 100644 --- a/tests/FSharp.Compiler.ComponentTests/Language/RegressionTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/Language/RegressionTests.fs @@ -19,3 +19,37 @@ type TestItemSeq = |> compile |> withErrorCodes [39] |> ignore + + // https://github.com/dotnet/fsharp/issues/19156 + [] + let ``Generic list comprehension with nested lambda should not cause duplicate entry in type index table``() = + FSharp """ +module Test +open System + +let f (start: DateTime) (stop: DateTime) (input: (DateTime * 'a) list) = + [ + for i in start.Ticks .. stop.Ticks -> + input |> List.where (fun (k, v) -> true) + ] + """ + |> compile + |> shouldSucceed + |> ignore + + // https://github.com/dotnet/fsharp/issues/19156 + [] + let ``Generic array comprehension with nested lambda should not cause duplicate entry in type index table``() = + FSharp """ +module Test +open System + +let f (start: DateTime) (stop: DateTime) (input: (DateTime * 'a) list) = + [| + for i in start.Ticks .. stop.Ticks -> + input |> List.where (fun (k, v) -> true) + |] + """ + |> compile + |> shouldSucceed + |> ignore diff --git a/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs b/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs index 68b37b5eded..7580dae0925 100644 --- a/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs +++ b/tests/FSharp.Compiler.ComponentTests/Scripting/Interactive.fs @@ -141,31 +141,3 @@ module MultiEmit = """if A.v <> 7.2 then failwith $"8: Failed {A.v} <> 7.2" """ """if B.v <> 9.3 then failwith $"9: Failed {A.v} <> 9.3" """ |] |> Seq.iter(fun item -> item |> scriptIt) - - // https://github.com/dotnet/fsharp/issues/19156 - [] - [] - [] - let ``Generic list comprehension with nested lambda should not cause duplicate entry in type index table`` (useMultiEmit) = - - let args : string array = [| - if useMultiEmit then "--multiemit+" else "--multiemit-" - "--ast" - |] - use session = new FSharpScript(additionalArgs=args) - - let code = """ -open System - -let f (start: DateTime) (stop: DateTime) (input: (DateTime * 'a) list) = - [ - for i in start.Ticks .. stop.Ticks -> - input |> List.where (fun (k, v) -> true) - ] -""" - - let result, errors = session.Eval(code) - Assert.Empty(errors) - match result with - | Ok _ -> () - | Result.Error ex -> Assert.Fail($"Eval failed with: {ex.Message}") diff --git a/tests/walkthroughs/DebugStepping/TheBigFileOfDebugStepping.fsx b/tests/walkthroughs/DebugStepping/TheBigFileOfDebugStepping.fsx index 346761cc478..b4cb494c81d 100644 --- a/tests/walkthroughs/DebugStepping/TheBigFileOfDebugStepping.fsx +++ b/tests/walkthroughs/DebugStepping/TheBigFileOfDebugStepping.fsx @@ -190,6 +190,13 @@ let ListExpressionSteppingTest8 () = yield x ] +// Test case from https://github.com/dotnet/fsharp/issues/19156 +let ListExpressionSteppingTest9 () = + [ + for i in DateTime.Now.Ticks .. DateTime.Now.Ticks + 1L -> + ['a', 1] |> List.where (fun (k, v) -> true) + ] + let SeqExpressionSteppingTest1 () = seq { yield 1 } @@ -842,6 +849,7 @@ ListExpressionSteppingTest5() ListExpressionSteppingTest6() ListExpressionSteppingTest7() ListExpressionSteppingTest8() +ListExpressionSteppingTest9 () |> ignore SeqExpressionSteppingTest1()|> Seq.length SeqExpressionSteppingTest2()|> Seq.length SeqExpressionSteppingTest3()|> Seq.length From d8f14eeda75339f18e93946c6b8c5f9cbcc43b8c Mon Sep 17 00:00:00 2001 From: Brian Rourke Boll Date: Sat, 13 Dec 2025 13:22:16 -0500 Subject: [PATCH 3/3] Add emitted IL tests for more kinds of possibly-overflowing mappings --- .../ComputedCollections/ForNInRangeArrays.fs | 7 +- .../ForNInRangeArrays.fs.il.bsl | 762 ++++++++++++++++++ .../ComputedCollections/ForNInRangeLists.fs | 7 +- .../ForNInRangeLists.fs.il.bsl | 739 ++++++++++++++++- 4 files changed, 1477 insertions(+), 38 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs index b7fe4dddd21..519cd274d29 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs @@ -1,4 +1,4 @@ -let f0 f = [|for n in 1..10 do f (); yield n|] +let f0 f = [|for n in 1..10 do f (); yield n|] let f00 f g = [|for n in 1..10 do f (); g (); yield n|] let f000 f = [|for n in 1..10 do f (); yield n; yield n + 1|] let f0000 () = [|for n in 1..10 do yield n|] @@ -42,3 +42,8 @@ let f29 f g = [|let y = f () in let z = g () in for x in 1..2..10 -> x + y + z|] let f30 f g = [|let y = f () in g (); for x in 1..2..10 -> x + y|] let f31 f g = [|f (); g (); for x in 1..2..10 -> x|] let f32 f g = [|f (); let y = g () in for x in 1..2..10 -> x + y|] + +// https://github.com/dotnet/fsharp/issues/19156 +let f33 (start : int) (finish : int) f = [|for _ in start..finish -> id id ()|] +let f34 (start : int64) (finish : int64) f = [|for _ in start..finish -> id id ()|] +let f35 (start : uint64) (finish : uint64) f = [|for _ in start..finish -> id id ()|] diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl index 681768099ef..29d94148d27 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl @@ -43,6 +43,356 @@ extends [runtime]System.Object { .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 ) + .class auto ansi serializable sealed nested assembly beforefieldinit f33@47 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f33@47 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f33@47::.ctor() + IL_0005: stsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f33@47-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f33@47-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f33@47-1'::.ctor() + IL_0005: stsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit f34@48 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f34@48 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f34@48::.ctor() + IL_0005: stsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f34@48-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-1'::.ctor() + IL_0005: stsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-2' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/'f34@48-2' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-2'::.ctor() + IL_0005: stsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-3' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f34@48-3' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-3'::.ctor() + IL_0005: stsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit f35@49 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f35@49 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f35@49::.ctor() + IL_0005: stsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f35@49-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-1'::.ctor() + IL_0005: stsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-2' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/'f35@49-2' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-2'::.ctor() + IL_0005: stsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-3' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f35@49-3' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-3'::.ctor() + IL_0005: stsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_000a: ret + } + + } + .method public static int32[] f0(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed { @@ -3039,6 +3389,418 @@ IL_003b: ret } + .method public static class [FSharp.Core]Microsoft.FSharp.Core.Unit[] + f33(int32 start, + int32 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 7 + .locals init (uint64 V_0, + uint64 V_1, + class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_2, + uint64 V_3, + int32 V_4, + int32 V_5) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0012 + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: conv.i8 + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldloc.0 + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brtrue.s IL_001e + + IL_0018: call !!0[] [runtime]System.Array::Empty() + IL_001d: ret + + IL_001e: ldloc.1 + IL_001f: conv.ovf.i.un + IL_0020: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0025: stloc.2 + IL_0026: ldc.i4.0 + IL_0027: conv.i8 + IL_0028: stloc.3 + IL_0029: ldarg.0 + IL_002a: stloc.s V_4 + IL_002c: br.s IL_0055 + + IL_002e: ldloc.2 + IL_002f: ldloc.3 + IL_0030: conv.i + IL_0031: ldloc.s V_4 + IL_0033: stloc.s V_5 + IL_0035: ldsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_003a: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_003f: ldnull + IL_0040: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_0045: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_004a: ldloc.s V_4 + IL_004c: ldc.i4.1 + IL_004d: add + IL_004e: stloc.s V_4 + IL_0050: ldloc.3 + IL_0051: ldc.i4.1 + IL_0052: conv.i8 + IL_0053: add + IL_0054: stloc.3 + IL_0055: ldloc.3 + IL_0056: ldloc.0 + IL_0057: blt.un.s IL_002e + + IL_0059: ldloc.2 + IL_005a: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Core.Unit[] + f34(int64 start, + int64 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 7 + .locals init (uint64 V_0, + bool V_1, + uint64 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_3, + bool V_4, + uint64 V_5, + int64 V_6, + int64 V_7, + uint64 V_8) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_000e + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: nop + IL_000e: stloc.0 + IL_000f: ldloc.0 + IL_0010: ldc.i4.m1 + IL_0011: conv.i8 + IL_0012: ceq + IL_0014: stloc.1 + IL_0015: ldarg.1 + IL_0016: ldarg.0 + IL_0017: bge.s IL_001e + + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: nop + IL_001c: br.s IL_0025 + + IL_001e: ldarg.1 + IL_001f: ldarg.0 + IL_0020: sub + IL_0021: ldc.i4.1 + IL_0022: conv.i8 + IL_0023: add.ovf.un + IL_0024: nop + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: brtrue.s IL_002f + + IL_0029: call !!0[] [runtime]System.Array::Empty() + IL_002e: ret + + IL_002f: ldloc.2 + IL_0030: conv.ovf.i.un + IL_0031: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0036: stloc.3 + IL_0037: ldloc.1 + IL_0038: brfalse.s IL_0080 + + IL_003a: ldc.i4.1 + IL_003b: stloc.s V_4 + IL_003d: ldc.i4.0 + IL_003e: conv.i8 + IL_003f: stloc.s V_5 + IL_0041: ldarg.0 + IL_0042: stloc.s V_6 + IL_0044: br.s IL_0079 + + IL_0046: ldloc.3 + IL_0047: ldloc.s V_5 + IL_0049: conv.i + IL_004a: ldloc.s V_6 + IL_004c: stloc.s V_7 + IL_004e: ldsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_0053: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_0058: ldnull + IL_0059: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_005e: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0063: ldloc.s V_6 + IL_0065: ldc.i4.1 + IL_0066: conv.i8 + IL_0067: add + IL_0068: stloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: ldc.i4.1 + IL_006d: conv.i8 + IL_006e: add + IL_006f: stloc.s V_5 + IL_0071: ldloc.s V_5 + IL_0073: ldc.i4.0 + IL_0074: conv.i8 + IL_0075: cgt.un + IL_0077: stloc.s V_4 + IL_0079: ldloc.s V_4 + IL_007b: brtrue.s IL_0046 + + IL_007d: nop + IL_007e: br.s IL_00cd + + IL_0080: ldarg.1 + IL_0081: ldarg.0 + IL_0082: bge.s IL_0089 + + IL_0084: ldc.i4.0 + IL_0085: conv.i8 + IL_0086: nop + IL_0087: br.s IL_0090 + + IL_0089: ldarg.1 + IL_008a: ldarg.0 + IL_008b: sub + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.s V_5 + IL_0092: ldc.i4.0 + IL_0093: conv.i8 + IL_0094: stloc.s V_8 + IL_0096: ldarg.0 + IL_0097: stloc.s V_6 + IL_0099: br.s IL_00c6 + + IL_009b: ldloc.3 + IL_009c: ldloc.s V_8 + IL_009e: conv.i + IL_009f: ldloc.s V_6 + IL_00a1: stloc.s V_7 + IL_00a3: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_00a8: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_00ad: ldnull + IL_00ae: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_00b3: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_00b8: ldloc.s V_6 + IL_00ba: ldc.i4.1 + IL_00bb: conv.i8 + IL_00bc: add + IL_00bd: stloc.s V_6 + IL_00bf: ldloc.s V_8 + IL_00c1: ldc.i4.1 + IL_00c2: conv.i8 + IL_00c3: add + IL_00c4: stloc.s V_8 + IL_00c6: ldloc.s V_8 + IL_00c8: ldloc.s V_5 + IL_00ca: blt.un.s IL_009b + + IL_00cc: nop + IL_00cd: ldloc.3 + IL_00ce: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Core.Unit[] + f35(uint64 start, + uint64 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 7 + .locals init (uint64 V_0, + bool V_1, + uint64 V_2, + class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_3, + bool V_4, + uint64 V_5, + uint64 V_6, + uint64 V_7, + uint64 V_8) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.un.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_000e + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: nop + IL_000e: stloc.0 + IL_000f: ldloc.0 + IL_0010: ldc.i4.m1 + IL_0011: conv.i8 + IL_0012: ceq + IL_0014: stloc.1 + IL_0015: ldarg.1 + IL_0016: ldarg.0 + IL_0017: bge.un.s IL_001e + + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: nop + IL_001c: br.s IL_0025 + + IL_001e: ldarg.1 + IL_001f: ldarg.0 + IL_0020: sub + IL_0021: ldc.i4.1 + IL_0022: conv.i8 + IL_0023: add.ovf.un + IL_0024: nop + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: brtrue.s IL_002f + + IL_0029: call !!0[] [runtime]System.Array::Empty() + IL_002e: ret + + IL_002f: ldloc.2 + IL_0030: conv.ovf.i.un + IL_0031: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0036: stloc.3 + IL_0037: ldloc.1 + IL_0038: brfalse.s IL_0080 + + IL_003a: ldc.i4.1 + IL_003b: stloc.s V_4 + IL_003d: ldc.i4.0 + IL_003e: conv.i8 + IL_003f: stloc.s V_5 + IL_0041: ldarg.0 + IL_0042: stloc.s V_6 + IL_0044: br.s IL_0079 + + IL_0046: ldloc.3 + IL_0047: ldloc.s V_5 + IL_0049: conv.i + IL_004a: ldloc.s V_6 + IL_004c: stloc.s V_7 + IL_004e: ldsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_0053: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_0058: ldnull + IL_0059: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_005e: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0063: ldloc.s V_6 + IL_0065: ldc.i4.1 + IL_0066: conv.i8 + IL_0067: add + IL_0068: stloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: ldc.i4.1 + IL_006d: conv.i8 + IL_006e: add + IL_006f: stloc.s V_5 + IL_0071: ldloc.s V_5 + IL_0073: ldc.i4.0 + IL_0074: conv.i8 + IL_0075: cgt.un + IL_0077: stloc.s V_4 + IL_0079: ldloc.s V_4 + IL_007b: brtrue.s IL_0046 + + IL_007d: nop + IL_007e: br.s IL_00cd + + IL_0080: ldarg.1 + IL_0081: ldarg.0 + IL_0082: bge.un.s IL_0089 + + IL_0084: ldc.i4.0 + IL_0085: conv.i8 + IL_0086: nop + IL_0087: br.s IL_0090 + + IL_0089: ldarg.1 + IL_008a: ldarg.0 + IL_008b: sub + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.s V_5 + IL_0092: ldc.i4.0 + IL_0093: conv.i8 + IL_0094: stloc.s V_6 + IL_0096: ldarg.0 + IL_0097: stloc.s V_7 + IL_0099: br.s IL_00c6 + + IL_009b: ldloc.3 + IL_009c: ldloc.s V_6 + IL_009e: conv.i + IL_009f: ldloc.s V_7 + IL_00a1: stloc.s V_8 + IL_00a3: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_00a8: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_00ad: ldnull + IL_00ae: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_00b3: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_00b8: ldloc.s V_7 + IL_00ba: ldc.i4.1 + IL_00bb: conv.i8 + IL_00bc: add + IL_00bd: stloc.s V_7 + IL_00bf: ldloc.s V_6 + IL_00c1: ldc.i4.1 + IL_00c2: conv.i8 + IL_00c3: add + IL_00c4: stloc.s V_6 + IL_00c6: ldloc.s V_6 + IL_00c8: ldloc.s V_5 + IL_00ca: blt.un.s IL_009b + + IL_00cc: nop + IL_00cd: ldloc.3 + IL_00ce: ret + } + } .class private abstract auto ansi sealed ''.$assembly diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs index 277b51060c8..12b42cd5bff 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs @@ -1,4 +1,4 @@ -let f0 f = [for n in 1..10 do f (); yield n] +let f0 f = [for n in 1..10 do f (); yield n] let f00 f g = [|for n in 1..10 do f (); g (); yield n|] let f000 f = [for n in 1..10 do f (); yield n; yield n + 1] let f0000 () = [for n in 1..10 do yield n] @@ -42,3 +42,8 @@ let f29 f g = [let y = f () in let z = g () in for x in 1..2..10 -> x + y + z] let f30 f g = [let y = f () in g (); for x in 1..2..10 -> x + y] let f31 f g = [f (); g (); for x in 1..2..10 -> x] let f32 f g = [f (); let y = g () in for x in 1..2..10 -> x + y] + +// https://github.com/dotnet/fsharp/issues/19156 +let f33 (start : int) (finish : int) f = [for _ in start..finish -> id id ()] +let f34 (start : int64) (finish : int64) f = [for _ in start..finish -> id id ()] +let f35 (start : uint64) (finish : uint64) f = [for _ in start..finish -> id id ()] diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl index e4145ab1e12..1fb59872872 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl @@ -43,6 +43,356 @@ extends [runtime]System.Object { .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 ) + .class auto ansi serializable sealed nested assembly beforefieldinit f33@47 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f33@47 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f33@47::.ctor() + IL_0005: stsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f33@47-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f33@47-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f33@47-1'::.ctor() + IL_0005: stsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit f34@48 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f34@48 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f34@48::.ctor() + IL_0005: stsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f34@48-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-1'::.ctor() + IL_0005: stsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-2' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/'f34@48-2' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-2'::.ctor() + IL_0005: stsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f34@48-3' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f34@48-3' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f34@48-3'::.ctor() + IL_0005: stsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit f35@49 + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/f35@49 @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/f35@49::.ctor() + IL_0005: stsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-1' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f35@49-1' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-1'::.ctor() + IL_0005: stsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-2' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2> + { + .field static assembly initonly class assembly/'f35@49-2' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 Invoke(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: tail. + IL_0003: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Identity>(!!0) + IL_0008: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-2'::.ctor() + IL_0005: stsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_000a: ret + } + + } + + .class auto ansi serializable sealed nested assembly beforefieldinit 'f35@49-3' + extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 + { + .field static assembly initonly class assembly/'f35@49-3' @_instance + .method assembly specialname rtspecialname instance void .ctor() cil managed + { + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() + IL_0006: ret + } + + .method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Core.Unit Invoke(class [FSharp.Core]Microsoft.FSharp.Core.Unit x) cil managed + { + + .maxstack 8 + IL_0000: ldarg.1 + IL_0001: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 10 + IL_0000: newobj instance void assembly/'f35@49-3'::.ctor() + IL_0005: stsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_000a: ret + } + + } + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f0(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed { @@ -414,9 +764,7 @@ IL_002a: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f000000000(int32 x, - int32 y) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f000000000(int32 x, int32 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 ) @@ -471,9 +819,7 @@ IL_0038: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f0000000000(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f0000000000(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -522,9 +868,7 @@ IL_0038: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f00000000000(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f00000000000(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -937,9 +1281,7 @@ IL_003b: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f11(int32 start, - int32 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f11(int32 start, int32 finish) 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 ) @@ -1220,9 +1562,7 @@ IL_003b: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f15(int32 start, - int32 step) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f15(int32 start, int32 step) 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 ) @@ -1326,9 +1666,7 @@ IL_006e: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f16(int32 start, - int32 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f16(int32 start, int32 finish) 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 ) @@ -1388,9 +1726,7 @@ IL_003b: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f17(int32 step, - int32 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f17(int32 step, int32 finish) 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 ) @@ -1728,9 +2064,7 @@ IL_0046: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f21(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f21(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -2489,9 +2823,7 @@ IL_006d: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f29(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f29(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -2547,9 +2879,7 @@ IL_0042: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f30(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f30(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -2602,9 +2932,7 @@ IL_003c: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f31(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f31(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -2654,9 +2982,7 @@ IL_0038: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 - f32(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f32(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) 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 ) @@ -2709,6 +3035,347 @@ IL_003c: ret } + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 + f33(int32 start, + int32 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 6 + .locals init (uint64 V_0, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, + uint64 V_2, + int32 V_3, + int32 V_4) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0012 + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: conv.i8 + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldc.i4.0 + IL_0014: conv.i8 + IL_0015: stloc.2 + IL_0016: ldarg.0 + IL_0017: stloc.3 + IL_0018: br.s IL_003e + + IL_001a: ldloca.s V_1 + IL_001c: ldloc.3 + IL_001d: stloc.s V_4 + IL_001f: ldsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_0024: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_0029: ldnull + IL_002a: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_002f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0034: nop + IL_0035: ldloc.3 + IL_0036: ldc.i4.1 + IL_0037: add + IL_0038: stloc.3 + IL_0039: ldloc.2 + IL_003a: ldc.i4.1 + IL_003b: conv.i8 + IL_003c: add + IL_003d: stloc.2 + IL_003e: ldloc.2 + IL_003f: ldloc.0 + IL_0040: blt.un.s IL_001a + + IL_0042: ldloca.s V_1 + IL_0044: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0049: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 + f34(int64 start, + int64 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 6 + .locals init (uint64 V_0, + bool V_1, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, + bool V_3, + uint64 V_4, + int64 V_5, + int64 V_6, + uint64 V_7) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_000e + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: nop + IL_000e: stloc.0 + IL_000f: ldloc.0 + IL_0010: ldc.i4.m1 + IL_0011: conv.i8 + IL_0012: ceq + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_005a + + IL_0018: ldc.i4.1 + IL_0019: stloc.3 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: stloc.s V_4 + IL_001e: ldarg.0 + IL_001f: stloc.s V_5 + IL_0021: br.s IL_0054 + + IL_0023: ldloca.s V_2 + IL_0025: ldloc.s V_5 + IL_0027: stloc.s V_6 + IL_0029: ldsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_002e: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_0033: ldnull + IL_0034: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_0039: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_003e: nop + IL_003f: ldloc.s V_5 + IL_0041: ldc.i4.1 + IL_0042: conv.i8 + IL_0043: add + IL_0044: stloc.s V_5 + IL_0046: ldloc.s V_4 + IL_0048: ldc.i4.1 + IL_0049: conv.i8 + IL_004a: add + IL_004b: stloc.s V_4 + IL_004d: ldloc.s V_4 + IL_004f: ldc.i4.0 + IL_0050: conv.i8 + IL_0051: cgt.un + IL_0053: stloc.3 + IL_0054: ldloc.3 + IL_0055: brtrue.s IL_0023 + + IL_0057: nop + IL_0058: br.s IL_00a6 + + IL_005a: ldarg.1 + IL_005b: ldarg.0 + IL_005c: bge.s IL_0063 + + IL_005e: ldc.i4.0 + IL_005f: conv.i8 + IL_0060: nop + IL_0061: br.s IL_006a + + IL_0063: ldarg.1 + IL_0064: ldarg.0 + IL_0065: sub + IL_0066: ldc.i4.1 + IL_0067: conv.i8 + IL_0068: add.ovf.un + IL_0069: nop + IL_006a: stloc.s V_4 + IL_006c: ldc.i4.0 + IL_006d: conv.i8 + IL_006e: stloc.s V_7 + IL_0070: ldarg.0 + IL_0071: stloc.s V_5 + IL_0073: br.s IL_009f + + IL_0075: ldloca.s V_2 + IL_0077: ldloc.s V_5 + IL_0079: stloc.s V_6 + IL_007b: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_0080: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_0085: ldnull + IL_0086: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_008b: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0090: nop + IL_0091: ldloc.s V_5 + IL_0093: ldc.i4.1 + IL_0094: conv.i8 + IL_0095: add + IL_0096: stloc.s V_5 + IL_0098: ldloc.s V_7 + IL_009a: ldc.i4.1 + IL_009b: conv.i8 + IL_009c: add + IL_009d: stloc.s V_7 + IL_009f: ldloc.s V_7 + IL_00a1: ldloc.s V_4 + IL_00a3: blt.un.s IL_0075 + + IL_00a5: nop + IL_00a6: ldloca.s V_2 + IL_00a8: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_00ad: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 + f35(uint64 start, + uint64 finish, + !!a f) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 6 + .locals init (uint64 V_0, + bool V_1, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, + bool V_3, + uint64 V_4, + uint64 V_5, + uint64 V_6, + uint64 V_7) + IL_0000: nop + IL_0001: ldarg.1 + IL_0002: ldarg.0 + IL_0003: bge.un.s IL_000a + + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_000e + + IL_000a: ldarg.1 + IL_000b: ldarg.0 + IL_000c: sub + IL_000d: nop + IL_000e: stloc.0 + IL_000f: ldloc.0 + IL_0010: ldc.i4.m1 + IL_0011: conv.i8 + IL_0012: ceq + IL_0014: stloc.1 + IL_0015: ldloc.1 + IL_0016: brfalse.s IL_005a + + IL_0018: ldc.i4.1 + IL_0019: stloc.3 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: stloc.s V_4 + IL_001e: ldarg.0 + IL_001f: stloc.s V_5 + IL_0021: br.s IL_0054 + + IL_0023: ldloca.s V_2 + IL_0025: ldloc.s V_5 + IL_0027: stloc.s V_6 + IL_0029: ldsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_002e: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_0033: ldnull + IL_0034: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_0039: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_003e: nop + IL_003f: ldloc.s V_5 + IL_0041: ldc.i4.1 + IL_0042: conv.i8 + IL_0043: add + IL_0044: stloc.s V_5 + IL_0046: ldloc.s V_4 + IL_0048: ldc.i4.1 + IL_0049: conv.i8 + IL_004a: add + IL_004b: stloc.s V_4 + IL_004d: ldloc.s V_4 + IL_004f: ldc.i4.0 + IL_0050: conv.i8 + IL_0051: cgt.un + IL_0053: stloc.3 + IL_0054: ldloc.3 + IL_0055: brtrue.s IL_0023 + + IL_0057: nop + IL_0058: br.s IL_00a6 + + IL_005a: ldarg.1 + IL_005b: ldarg.0 + IL_005c: bge.un.s IL_0063 + + IL_005e: ldc.i4.0 + IL_005f: conv.i8 + IL_0060: nop + IL_0061: br.s IL_006a + + IL_0063: ldarg.1 + IL_0064: ldarg.0 + IL_0065: sub + IL_0066: ldc.i4.1 + IL_0067: conv.i8 + IL_0068: add.ovf.un + IL_0069: nop + IL_006a: stloc.s V_4 + IL_006c: ldc.i4.0 + IL_006d: conv.i8 + IL_006e: stloc.s V_5 + IL_0070: ldarg.0 + IL_0071: stloc.s V_6 + IL_0073: br.s IL_009f + + IL_0075: ldloca.s V_2 + IL_0077: ldloc.s V_6 + IL_0079: stloc.s V_7 + IL_007b: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_0080: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_0085: ldnull + IL_0086: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + !0, + !1) + IL_008b: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0090: nop + IL_0091: ldloc.s V_6 + IL_0093: ldc.i4.1 + IL_0094: conv.i8 + IL_0095: add + IL_0096: stloc.s V_6 + IL_0098: ldloc.s V_5 + IL_009a: ldc.i4.1 + IL_009b: conv.i8 + IL_009c: add + IL_009d: stloc.s V_5 + IL_009f: ldloc.s V_5 + IL_00a1: ldloc.s V_4 + IL_00a3: blt.un.s IL_0075 + + IL_00a5: nop + IL_00a6: ldloca.s V_2 + IL_00a8: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_00ad: ret + } + } .class private abstract auto ansi sealed ''.$assembly