diff --git a/eng/Versions.props b/eng/Versions.props
index 2ec16822aa9..9bc5e185e36 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -14,17 +14,17 @@
beta
4.7
$(FSLanguageVersion)
- $(FSCoreMajorVersion).2
+ $(FSCoreMajorVersion).3
$(FSCoreMajorVersion).0
$(FSCoreVersionPrefix).0
- 4.7.1
+ 4.7.2
$(FSCorePackageVersion)-$(PreReleaseVersionLabel).*
- 10.9
- $(FSPackageMajorVersion).1
+ 10.10
+ $(FSPackageMajorVersion).0
$(FSPackageVersion)
$(FSPackageVersion).0
diff --git a/src/absil/ilread.fs b/src/absil/ilread.fs
index c5338db90f4..6a0c2ffdfa1 100644
--- a/src/absil/ilread.fs
+++ b/src/absil/ilread.fs
@@ -199,17 +199,17 @@ let seekReadUInt16AsInt32 mdv addr = int32 (seekReadUInt16 mdv addr)
let seekReadCompressedUInt32 mdv addr =
let b0 = seekReadByte mdv addr
- if b0 <= 0x7Fuy then int b0, addr+1
+ if b0 <= 0x7Fuy then struct (int b0, addr+1)
elif b0 <= 0xBFuy then
let b0 = b0 &&& 0x7Fuy
let b1 = seekReadByteAsInt32 mdv (addr+1)
- (int b0 <<< 8) ||| int b1, addr+2
+ struct ((int b0 <<< 8) ||| int b1, addr+2)
else
let b0 = b0 &&& 0x3Fuy
let b1 = seekReadByteAsInt32 mdv (addr+1)
let b2 = seekReadByteAsInt32 mdv (addr+2)
let b3 = seekReadByteAsInt32 mdv (addr+3)
- (int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, addr+4
+ struct ((int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, addr+4)
let seekReadSByte mdv addr = sbyte (seekReadByte mdv addr)
let seekReadSingle mdv addr = singleOfBits (seekReadInt32 mdv addr)
@@ -226,11 +226,11 @@ let seekReadUTF8String mdv addr =
System.Text.Encoding.UTF8.GetString (bytes, 0, bytes.Length)
let seekReadBlob mdv addr =
- let len, addr = seekReadCompressedUInt32 mdv addr
+ let struct (len, addr) = seekReadCompressedUInt32 mdv addr
seekReadBytes mdv addr len
let seekReadUserString mdv addr =
- let len, addr = seekReadCompressedUInt32 mdv addr
+ let struct (len, addr) = seekReadCompressedUInt32 mdv addr
let bytes = seekReadBytes mdv addr (len - 1)
Encoding.Unicode.GetString(bytes, 0, bytes.Length)
@@ -1550,11 +1550,10 @@ and readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx) =
and seekReadTypeDefRowExtents (ctxt: ILMetadataReader) _info (idx: int) =
if idx >= ctxt.getNumRows TableNames.TypeDef then
- ctxt.getNumRows TableNames.Field + 1,
- ctxt.getNumRows TableNames.Method + 1
+ struct (ctxt.getNumRows TableNames.Field + 1, ctxt.getNumRows TableNames.Method + 1)
else
let (_, _, _, _, fieldsIdx, methodsIdx) = seekReadTypeDefRow ctxt (idx + 1)
- fieldsIdx, methodsIdx
+ struct (fieldsIdx, methodsIdx )
and seekReadTypeDefRowWithExtents ctxt (idx: int) =
let info= seekReadTypeDefRow ctxt idx
@@ -1578,7 +1577,7 @@ and typeDefReader ctxtH: ILTypeDefStored =
let ((flags, nameIdx, namespaceIdx, extendsIdx, fieldsIdx, methodsIdx) as info) = seekReadTypeDefRow ctxt idx
let nm = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
- let (endFieldsIdx, endMethodsIdx) = seekReadTypeDefRowExtents ctxt info idx
+ let struct (endFieldsIdx, endMethodsIdx) = seekReadTypeDefRowExtents ctxt info idx
let typars = seekReadGenericParams ctxt 0 (tomd_TypeDef, idx)
let numtypars = typars.Length
let super = seekReadOptionalTypeDefOrRef ctxt numtypars AsObject extendsIdx
diff --git a/src/fsharp/CompileOps.fs b/src/fsharp/CompileOps.fs
index 1ae2d315076..50a8c9481ec 100644
--- a/src/fsharp/CompileOps.fs
+++ b/src/fsharp/CompileOps.fs
@@ -821,7 +821,7 @@ let OutputPhasedErrorR (os: StringBuilder) (err: PhasedDiagnostic) (canSuggestNa
let nameOrOneBasedIndexMessage =
x.calledArg.NameOpt
|> Option.map (fun n -> FSComp.SR.csOverloadCandidateNamedArgumentTypeMismatch n.idText)
- |> Option.defaultValue (FSComp.SR.csOverloadCandidateIndexedArgumentTypeMismatch ((snd x.calledArg.Position) + 1))
+ |> Option.defaultValue (FSComp.SR.csOverloadCandidateIndexedArgumentTypeMismatch ((Lib.vsnd x.calledArg.Position) + 1)) //snd
sprintf " // %s" nameOrOneBasedIndexMessage
| _ -> ""
diff --git a/src/fsharp/FSharp.Build/Fsc.fs b/src/fsharp/FSharp.Build/Fsc.fs
index a6e262089b5..2b491c73837 100644
--- a/src/fsharp/FSharp.Build/Fsc.fs
+++ b/src/fsharp/FSharp.Build/Fsc.fs
@@ -589,7 +589,7 @@ type public Fsc () as this =
override fsc.GenerateResponseFileCommands() =
let builder = generateCommandLineBuilder ()
- builder.GetCapturedArguments() |> Seq.fold(fun acc f -> acc + f + Environment.NewLine) ""
+ builder.GetCapturedArguments() |> String.concat Environment.NewLine
// expose this to internal components (for nunit testing)
member internal fsc.InternalGenerateCommandLineCommands() =
diff --git a/src/fsharp/FSharp.Build/Fsi.fs b/src/fsharp/FSharp.Build/Fsi.fs
index ed1aae5e132..1b893cbac60 100644
--- a/src/fsharp/FSharp.Build/Fsi.fs
+++ b/src/fsharp/FSharp.Build/Fsi.fs
@@ -322,7 +322,7 @@ type public Fsi () as this =
override fsi.GenerateResponseFileCommands() =
let builder = generateCommandLineBuilder ()
- builder.GetCapturedArguments() |> Seq.fold(fun acc f -> acc + f + Environment.NewLine) ""
+ builder.GetCapturedArguments() |> String.concat Environment.NewLine
// expose this to internal components (for nunit testing)
member internal fsi.InternalGenerateCommandLineCommands() =
diff --git a/src/fsharp/FSharp.Core/prim-types.fs b/src/fsharp/FSharp.Core/prim-types.fs
index 78441e75df8..d4838419faf 100644
--- a/src/fsharp/FSharp.Core/prim-types.fs
+++ b/src/fsharp/FSharp.Core/prim-types.fs
@@ -1045,6 +1045,7 @@ namespace Microsoft.FSharp.Core
// gives reliable results on null values.
System.String.CompareOrdinal((# "" x : string #),(# "" y : string #))
when 'T : decimal = System.Decimal.Compare((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = System.DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #))
/// Generic comparison. Implements ER mode (where "0" is returned when NaNs are compared)
@@ -1123,6 +1124,7 @@ namespace Microsoft.FSharp.Core
// gives reliable results on null values.
System.String.CompareOrdinal((# "" x : string #),(# "" y : string #))
when 'T : decimal = System.Decimal.Compare((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = System.DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #))
/// Generic less-than with static optimizations for some well-known cases.
let inline GenericLessThanFast (x:'T) (y:'T) =
@@ -1142,6 +1144,7 @@ namespace Microsoft.FSharp.Core
when 'T : float32= (# "clt" x y : bool #)
when 'T : char = (# "clt" x y : bool #)
when 'T : decimal = System.Decimal.op_LessThan ((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #)) < 0
/// Generic greater-than with static optimizations for some well-known cases.
let inline GenericGreaterThanFast (x:'T) (y:'T) =
@@ -1161,6 +1164,7 @@ namespace Microsoft.FSharp.Core
when 'T : float32 = (# "cgt" x y : bool #)
when 'T : char = (# "cgt" x y : bool #)
when 'T : decimal = System.Decimal.op_GreaterThan ((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #)) > 0
/// Generic less-than-or-equal with static optimizations for some well-known cases.
let inline GenericLessOrEqualFast (x:'T) (y:'T) =
@@ -1180,6 +1184,7 @@ namespace Microsoft.FSharp.Core
when 'T : float32 = not (# "cgt.un" x y : bool #)
when 'T : char = not(# "cgt" x y : bool #)
when 'T : decimal = System.Decimal.op_LessThanOrEqual ((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #)) <= 0
/// Generic greater-than-or-equal with static optimizations for some well-known cases.
let inline GenericGreaterOrEqualFast (x:'T) (y:'T) =
@@ -1199,6 +1204,8 @@ namespace Microsoft.FSharp.Core
when 'T : float32 = not (# "clt.un" x y : bool #)
when 'T : char = not (# "clt" x y : bool #)
when 'T : decimal = System.Decimal.op_GreaterThanOrEqual ((# "" x:decimal #), (# "" y:decimal #))
+
+ when 'T : DateTime = DateTime.Compare((# "" x : DateTime #), (# "" y : DateTime #)) >= 0
//-------------------------------------------------------------------------
@@ -1482,6 +1489,7 @@ namespace Microsoft.FSharp.Core
when 'T : char = (# "ceq" x y : bool #)
when 'T : string = System.String.Equals((# "" x : string #),(# "" y : string #))
when 'T : decimal = System.Decimal.op_Equality((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Equals((# "" x : DateTime #), (# "" y : DateTime #))
/// Implements generic equality between two values, with PER semantics for NaN (so equality on two NaN values returns false)
//
@@ -1504,6 +1512,8 @@ namespace Microsoft.FSharp.Core
when 'T : unativeint = (# "ceq" x y : bool #)
when 'T : string = System.String.Equals((# "" x : string #),(# "" y : string #))
when 'T : decimal = System.Decimal.op_Equality((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Equals((# "" x : DateTime #), (# "" y : DateTime #))
+
/// A compiler intrinsic generated during optimization of calls to GenericEqualityIntrinsic on tuple values.
//
@@ -1530,6 +1540,7 @@ namespace Microsoft.FSharp.Core
when 'T : unativeint = (# "ceq" x y : bool #)
when 'T : string = System.String.Equals((# "" x : string #),(# "" y : string #))
when 'T : decimal = System.Decimal.op_Equality((# "" x:decimal #), (# "" y:decimal #))
+ when 'T : DateTime = DateTime.Equals((# "" x : DateTime #), (# "" y : DateTime #))
let inline GenericInequalityFast (x:'T) (y:'T) = (not(GenericEqualityFast x y) : bool)
diff --git a/src/fsharp/MethodCalls.fs b/src/fsharp/MethodCalls.fs
index 1d2d8910301..f3fc512511f 100644
--- a/src/fsharp/MethodCalls.fs
+++ b/src/fsharp/MethodCalls.fs
@@ -61,7 +61,7 @@ type CallerArg<'T> =
/// Represents the information about an argument in the method being called
type CalledArg =
- { Position: (int * int)
+ { Position: struct (int * int)
IsParamArray : bool
OptArgInfo : OptionalArgInfo
CallerInfo : CallerInfo
@@ -303,7 +303,7 @@ let MakeCalledArgs amap m (minfo: MethInfo) minst =
// Mark up the arguments with their position, so we can sort them back into order later
let paramDatas = minfo.GetParamDatas(amap, m, minst)
paramDatas |> List.mapiSquared (fun i j (ParamData(isParamArrayArg, isInArg, isOutArg, optArgInfo, callerInfoFlags, nmOpt, reflArgInfo, typeOfCalledArg)) ->
- { Position=(i,j)
+ { Position=struct(i,j)
IsParamArray=isParamArrayArg
OptArgInfo=optArgInfo
CallerInfo = callerInfoFlags
diff --git a/src/fsharp/lib.fs b/src/fsharp/lib.fs
index 596cd1a2f0a..5d8649d561f 100755
--- a/src/fsharp/lib.fs
+++ b/src/fsharp/lib.fs
@@ -564,3 +564,4 @@ type MaybeLazy<'T> =
| Strict x -> x
| Lazy x -> x.Force()
+let inline vsnd ((_, y): struct('T * 'T)) = y
\ No newline at end of file
diff --git a/src/fsharp/service/ServiceLexing.fs b/src/fsharp/service/ServiceLexing.fs
index 2b223e8a8ab..8e93e37205c 100755
--- a/src/fsharp/service/ServiceLexing.fs
+++ b/src/fsharp/service/ServiceLexing.fs
@@ -616,7 +616,7 @@ type FSharpLineTokenizer(lexbuf: UnicodeLexing.Lexbuf,
| Some mx when rightp.Line > leftp.Line -> mx
| _ -> rightp.Column
let rightc = rightc - 1
- leftc, rightc
+ struct (leftc, rightc)
// Get the token & position - either from a stack or from the lexer
try
@@ -624,7 +624,7 @@ type FSharpLineTokenizer(lexbuf: UnicodeLexing.Lexbuf,
else
// Choose which lexer entry point to call and call it
let token = LexerStateEncoding.callLexCont lexcontInitial lexargs skip lexbuf
- let leftc, rightc = ColumnsOfCurrentToken()
+ let struct (leftc, rightc) = ColumnsOfCurrentToken()
// Splits tokens like ">." into multiple tokens - this duplicates behavior from the 'lexfilter'
// which cannot be (easily) used from the language service. The rules here are not always valid,
diff --git a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl
index 8afae23a726..09112a769f4 100644
--- a/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.il.bsl
+++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Linq101Select01.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 4:7:0:0
}
.assembly extern Utils
{
@@ -33,20 +33,20 @@
}
.mresource public FSharpSignatureData.Linq101Select01
{
- // Offset: 0x00000000 Length: 0x00000663
+ // Offset: 0x00000000 Length: 0x00000655
}
.mresource public FSharpOptimizationData.Linq101Select01
{
- // Offset: 0x00000668 Length: 0x00000204
+ // Offset: 0x00000660 Length: 0x00000204
}
.module Linq101Select01.exe
-// MVID: {5B9A632A-6057-8F80-A745-03832A639A5B}
+// MVID: {5ECD8279-6057-8F80-A745-03837982CD5E}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
-// Image base: 0x00FF0000
+// Image base: 0x058D0000
// =============== CLASS MEMBERS DECLARATION ===================
@@ -77,7 +77,7 @@
.maxstack 5
.locals init ([0] int32 n)
.language '{AB4F38C9-B6E6-43BA-BE3B-58080B2CCCE3}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}'
- .line 12,12 : 9,28 'C:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\QueryExpressionStepping\\Linq101Select01.fs'
+ .line 12,12 : 9,28 'C:\\kevinransom\\fsharp\\tests\\fsharpqa\\source\\CodeGen\\EmittedIL\\QueryExpressionStepping\\Linq101Select01.fs'
IL_0000: ldarg.1
IL_0001: stloc.0
.line 13,13 : 9,23 ''
@@ -2535,7 +2535,7 @@
} // end of class 'pairs@75-3'
- .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@83-3'
+ .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@83-1'
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,object>>
{
.field public class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder builder@
@@ -2555,12 +2555,12 @@
IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,object>>::.ctor()
IL_0006: ldarg.0
IL_0007: ldarg.1
- IL_0008: stfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@83-3'::builder@
+ IL_0008: stfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@83-1'::builder@
IL_000d: ldarg.0
IL_000e: ldarg.2
- IL_000f: stfld class [Utils]Utils/Customer Linq101Select01/'orders@83-3'::c
+ IL_000f: stfld class [Utils]Utils/Customer Linq101Select01/'orders@83-1'::c
IL_0014: ret
- } // end of method 'orders@83-3'::.ctor
+ } // end of method 'orders@83-1'::.ctor
.method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,object>
Invoke(class [Utils]Utils/Order _arg2) cil managed
@@ -2573,20 +2573,20 @@
IL_0001: stloc.0
.line 84,84 : 9,34 ''
IL_0002: ldarg.0
- IL_0003: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@83-3'::builder@
+ IL_0003: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@83-1'::builder@
IL_0008: ldarg.0
- IL_0009: ldfld class [Utils]Utils/Customer Linq101Select01/'orders@83-3'::c
+ IL_0009: ldfld class [Utils]Utils/Customer Linq101Select01/'orders@83-1'::c
IL_000e: ldloc.0
IL_000f: newobj instance void class [mscorlib]System.Tuple`2::.ctor(!0,
!1)
IL_0014: tail.
IL_0016: callvirt instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2 [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder::Yield,object>(!!0)
IL_001b: ret
- } // end of method 'orders@83-3'::Invoke
+ } // end of method 'orders@83-1'::Invoke
- } // end of class 'orders@83-3'
+ } // end of class 'orders@83-1'
- .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@82-2'
+ .class auto ansi serializable sealed nested assembly beforefieldinit orders@82
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [mscorlib]System.Collections.IEnumerable>>
{
.field public class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder builder@
@@ -2604,9 +2604,9 @@
IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [mscorlib]System.Collections.IEnumerable>>::.ctor()
IL_0006: ldarg.0
IL_0007: ldarg.1
- IL_0008: stfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@82-2'::builder@
+ IL_0008: stfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/orders@82::builder@
IL_000d: ret
- } // end of method 'orders@82-2'::.ctor
+ } // end of method orders@82::.ctor
.method public strict virtual instance class [FSharp.Core]Microsoft.FSharp.Linq.QuerySource`2,class [mscorlib]System.Collections.IEnumerable>
Invoke(class [Utils]Utils/Customer _arg1) cil managed
@@ -2619,26 +2619,26 @@
IL_0001: stloc.0
.line 83,83 : 9,29 ''
IL_0002: ldarg.0
- IL_0003: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@82-2'::builder@
+ IL_0003: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/orders@82::builder@
IL_0008: ldarg.0
- IL_0009: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@82-2'::builder@
+ IL_0009: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/orders@82::builder@
IL_000e: ldloc.0
IL_000f: callvirt instance class [Utils]Utils/Order[] [Utils]Utils/Customer::get_Orders()
IL_0014: 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_0019: ldarg.0
- IL_001a: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/'orders@82-2'::builder@
+ IL_001a: ldfld class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder Linq101Select01/orders@82::builder@
IL_001f: ldloc.0
- IL_0020: newobj instance void Linq101Select01/'orders@83-3'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder,
+ IL_0020: newobj instance void Linq101Select01/'orders@83-1'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder,
class [Utils]Utils/Customer)
IL_0025: tail.
IL_0027: 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_002c: ret
- } // end of method 'orders@82-2'::Invoke
+ } // end of method orders@82::Invoke
- } // end of class 'orders@82-2'
+ } // end of class orders@82
- .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@84-4'
+ .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@84-2'
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,bool>
{
.method assembly specialname rtspecialname
@@ -2651,7 +2651,7 @@
IL_0000: ldarg.0
IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,bool>::.ctor()
IL_0006: ret
- } // end of method 'orders@84-4'::.ctor
+ } // end of method 'orders@84-2'::.ctor
.method public strict virtual instance bool
Invoke(class [mscorlib]System.Tuple`2 tupledArg) cil managed
@@ -2683,11 +2683,11 @@
IL_0022: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal,
valuetype [mscorlib]System.Decimal)
IL_0027: ret
- } // end of method 'orders@84-4'::Invoke
+ } // end of method 'orders@84-2'::Invoke
- } // end of class 'orders@84-4'
+ } // end of class 'orders@84-2'
- .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@85-5'
+ .class auto ansi serializable sealed nested assembly beforefieldinit 'orders@85-3'
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [mscorlib]System.Tuple`3>
{
.method assembly specialname rtspecialname
@@ -2700,7 +2700,7 @@
IL_0000: ldarg.0
IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [mscorlib]System.Tuple`3>::.ctor()
IL_0006: ret
- } // end of method 'orders@85-5'::.ctor
+ } // end of method 'orders@85-3'::.ctor
.method public strict virtual instance class [mscorlib]System.Tuple`3
Invoke(class [mscorlib]System.Tuple`2 tupledArg) cil managed
@@ -2727,9 +2727,9 @@
!1,
!2)
IL_0025: ret
- } // end of method 'orders@85-5'::Invoke
+ } // end of method 'orders@85-3'::Invoke
- } // end of class 'orders@85-5'
+ } // end of class 'orders@85-3'
.class auto ansi serializable sealed nested assembly beforefieldinit 'orders2@92-1'
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,object>>
@@ -2852,10 +2852,12 @@
.method public strict virtual instance bool
Invoke(class [mscorlib]System.Tuple`2 tupledArg) cil managed
{
- // Code size 40 (0x28)
- .maxstack 8
+ // Code size 48 (0x30)
+ .maxstack 7
.locals init ([0] class [Utils]Utils/Customer c,
- [1] class [Utils]Utils/Order o)
+ [1] class [Utils]Utils/Order o,
+ [2] valuetype [mscorlib]System.DateTime V_2,
+ [3] valuetype [mscorlib]System.DateTime V_3)
.line 100001,100001 : 0,0 ''
IL_0000: ldarg.1
IL_0001: call instance !0 class [mscorlib]System.Tuple`2::get_Item1()
@@ -2866,16 +2868,23 @@
.line 93,93 : 16,50 ''
IL_000e: ldloc.1
IL_000f: callvirt instance valuetype [mscorlib]System.DateTime [Utils]Utils/Order::get_OrderDate()
- IL_0014: ldc.i4 0x7ce
- IL_0019: ldc.i4.1
+ IL_0014: stloc.2
+ IL_0015: ldc.i4 0x7ce
IL_001a: ldc.i4.1
- IL_001b: newobj instance void [mscorlib]System.DateTime::.ctor(int32,
+ IL_001b: ldc.i4.1
+ IL_001c: newobj instance void [mscorlib]System.DateTime::.ctor(int32,
int32,
int32)
- IL_0020: tail.
- IL_0022: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericGreaterOrEqualIntrinsic(!!0,
- !!0)
- IL_0027: ret
+ IL_0021: stloc.3
+ IL_0022: ldloc.2
+ IL_0023: ldloc.3
+ IL_0024: call int32 [mscorlib]System.DateTime::Compare(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_0029: ldc.i4.0
+ IL_002a: clt
+ IL_002c: ldc.i4.0
+ IL_002d: ceq
+ IL_002f: ret
} // end of method 'orders2@93-2'::Invoke
} // end of class 'orders2@93-2'
@@ -3313,10 +3322,12 @@
.method public strict virtual instance bool
Invoke(class [mscorlib]System.Tuple`2 tupledArg) cil managed
{
- // Code size 33 (0x21)
+ // Code size 41 (0x29)
.maxstack 6
.locals init ([0] class [Utils]Utils/Customer c,
- [1] class [Utils]Utils/Order o)
+ [1] class [Utils]Utils/Order o,
+ [2] valuetype [mscorlib]System.DateTime V_2,
+ [3] valuetype [mscorlib]System.DateTime V_3)
.line 100001,100001 : 0,0 ''
IL_0000: ldarg.1
IL_0001: call instance !0 class [mscorlib]System.Tuple`2::get_Item1()
@@ -3327,11 +3338,18 @@
.line 114,114 : 16,41 ''
IL_000e: ldloc.1
IL_000f: callvirt instance valuetype [mscorlib]System.DateTime [Utils]Utils/Order::get_OrderDate()
- IL_0014: call valuetype [mscorlib]System.DateTime Linq101Select01::get_cutOffDate()
- IL_0019: tail.
- IL_001b: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericGreaterOrEqualIntrinsic(!!0,
- !!0)
- IL_0020: ret
+ IL_0014: stloc.2
+ IL_0015: call valuetype [mscorlib]System.DateTime Linq101Select01::get_cutOffDate()
+ IL_001a: stloc.3
+ IL_001b: ldloc.2
+ IL_001c: ldloc.3
+ IL_001d: call int32 [mscorlib]System.DateTime::Compare(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_0022: ldc.i4.0
+ IL_0023: clt
+ IL_0025: ldc.i4.0
+ IL_0026: ceq
+ IL_0028: ret
} // end of method 'orders4@114-4'::Invoke
} // end of class 'orders4@114-4'
@@ -3382,7 +3400,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'numbers@7-9'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbers@7
IL_0005: ret
} // end of method Linq101Select01::get_numbers
@@ -3400,7 +3418,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'products@17-12'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::products@17
IL_0005: ret
} // end of method Linq101Select01::get_products
@@ -3418,7 +3436,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'strings@26-2'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::strings@26
IL_0005: ret
} // end of method Linq101Select01::get_strings
@@ -3436,7 +3454,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'words@34-8'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::words@34
IL_0005: ret
} // end of method Linq101Select01::get_words
@@ -3472,7 +3490,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'digits@57-4'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::digits@57
IL_0005: ret
} // end of method Linq101Select01::get_digits
@@ -3517,7 +3535,7 @@
{
// Code size 6 (0x6)
.maxstack 8
- IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'customers@79-4'
+ IL_0000: ldsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::customers@79
IL_0005: ret
} // end of method Linq101Select01::get_customers
@@ -3697,19 +3715,19 @@
.class private abstract auto ansi sealed ''.$Linq101Select01
extends [mscorlib]System.Object
{
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'numbers@7-9'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 numbers@7
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 numsPlusOne@10
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'products@17-12'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 products@17
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [mscorlib]System.Collections.Generic.IEnumerable`1 productNames@19
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'strings@26-2'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 strings@26
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 textNums@27
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'words@34-8'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 words@34
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [mscorlib]System.Tuple`2[] upperLowerWords@36
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
@@ -3717,7 +3735,7 @@
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [mscorlib]System.Tuple`3[] productInfos@50
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'digits@57-4'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 digits@57
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 lowNums@58
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
@@ -3727,7 +3745,7 @@
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [mscorlib]System.Tuple`2[] pairs@70
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
- .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'customers@79-4'
+ .field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 customers@79
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [mscorlib]System.Tuple`3[] orders@80
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
@@ -3816,7 +3834,7 @@
IL_003d: 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_0042: dup
- IL_0043: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'numbers@7-9'
+ IL_0043: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::numbers@7
IL_0048: stloc.0
.line 10,14 : 1,20 ''
IL_0049: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query()
@@ -3834,7 +3852,7 @@
.line 17,17 : 1,32 ''
IL_0064: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 [Utils]Utils::getProductList()
IL_0069: dup
- IL_006a: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'products@17-12'
+ IL_006a: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::products@17
IL_006f: stloc.2
IL_0070: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query()
IL_0075: stloc.s V_22
@@ -3880,7 +3898,7 @@
IL_00ea: 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_00ef: dup
- IL_00f0: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'strings@26-2'
+ IL_00f0: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::strings@26
IL_00f5: stloc.s strings
.line 27,31 : 1,20 ''
IL_00f7: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query()
@@ -3907,7 +3925,7 @@
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_0136: dup
- IL_0137: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'words@34-8'
+ IL_0137: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::words@34
IL_013c: stloc.s words
.line 36,40 : 1,20 ''
IL_013e: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query()
@@ -3951,7 +3969,7 @@
.line 57,57 : 1,21 ''
IL_0192: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 Linq101Select01::get_strings()
IL_0197: dup
- IL_0198: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::'digits@57-4'
+ IL_0198: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::digits@57
IL_019d: stloc.s digits
.line 58,63 : 1,20 ''
IL_019f: call class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::get_query()
@@ -4098,7 +4116,7 @@
.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-4'
+ IL_0310: stsfld class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 ''.$Linq101Select01::customers@79
IL_0315: 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()
@@ -4110,13 +4128,13 @@
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-2'::.ctor(class [FSharp.Core]Microsoft.FSharp.Linq.QueryBuilder)
+ 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,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>)
- IL_033c: newobj instance void Linq101Select01/'orders@84-4'::.ctor()
+ IL_033c: newobj instance void Linq101Select01/'orders@84-2'::.ctor()
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,
class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2)
- IL_0346: newobj instance void Linq101Select01/'orders@85-5'::.ctor()
+ IL_0346: newobj instance void Linq101Select01/'orders@85-3'::.ctor()
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,
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()
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 55664ad8b3a..08d87803ee5 100644
--- a/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.il.bsl
+++ b/tests/fsharpqa/Source/CodeGen/EmittedIL/StaticInit/StaticInit_Struct01.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 4:7:0:0
}
.assembly StaticInit_Struct01
{
@@ -29,20 +29,20 @@
}
.mresource public FSharpSignatureData.StaticInit_Struct01
{
- // Offset: 0x00000000 Length: 0x000007B1
+ // Offset: 0x00000000 Length: 0x0000079F
}
.mresource public FSharpOptimizationData.StaticInit_Struct01
{
- // Offset: 0x000007B8 Length: 0x0000021F
+ // Offset: 0x000007A8 Length: 0x0000021F
}
.module StaticInit_Struct01.dll
-// MVID: {59B19250-05F6-D6CB-A745-03835092B159}
+// MVID: {5ECD86B3-05F6-D6CB-A745-0383B386CD5E}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
-// Image base: 0x02BA0000
+// Image base: 0x06E50000
// =============== CLASS MEMBERS DECLARATION ===================
@@ -67,23 +67,23 @@
instance int32 CompareTo(valuetype StaticInit_Struct01/C obj) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- // Code size 28 (0x1c)
- .maxstack 5
- .locals init ([0] valuetype StaticInit_Struct01/C& V_0)
+ // Code size 27 (0x1b)
+ .maxstack 4
+ .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:\\GitHub\\dsyme\\visualfsharp\\tests\\fsharpqa\\Source\\CodeGen\\EmittedIL\\StaticInit\\StaticInit_Struct01.fs'
+ .line 4,4 : 6,7 'C:\\kevinransom\\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()
- IL_0008: ldarg.0
- IL_0009: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_000e: ldloc.0
- IL_000f: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_0014: tail.
- IL_0016: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [mscorlib]System.Collections.IComparer,
- !!0,
- !!0)
- IL_001b: ret
+ IL_0008: stloc.1
+ IL_0009: ldarg.0
+ IL_000a: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_000f: ldloc.0
+ IL_0010: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_0015: call int32 [mscorlib]System.DateTime::Compare(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_001a: ret
} // end of method C::CompareTo
.method public hidebysig virtual final
@@ -105,10 +105,11 @@
class [mscorlib]System.Collections.IComparer comp) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- // Code size 31 (0x1f)
- .maxstack 5
+ // Code size 30 (0x1e)
+ .maxstack 4
.locals init ([0] valuetype StaticInit_Struct01/C V_0,
- [1] valuetype StaticInit_Struct01/C& V_1)
+ [1] valuetype StaticInit_Struct01/C& V_1,
+ [2] class [mscorlib]System.Collections.IComparer V_2)
.line 4,4 : 6,7 ''
IL_0000: ldarg.1
IL_0001: unbox.any StaticInit_Struct01/C
@@ -116,15 +117,14 @@
IL_0007: ldloca.s V_0
IL_0009: stloc.1
IL_000a: ldarg.2
- IL_000b: ldarg.0
- IL_000c: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_0011: ldloc.1
- IL_0012: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_0017: tail.
- IL_0019: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [mscorlib]System.Collections.IComparer,
- !!0,
- !!0)
- IL_001e: ret
+ IL_000b: stloc.2
+ IL_000c: ldarg.0
+ IL_000d: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_0012: ldloc.1
+ IL_0013: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_0018: call int32 [mscorlib]System.DateTime::Compare(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_001d: ret
} // end of method C::CompareTo
.method public hidebysig virtual final
@@ -175,16 +175,17 @@
class [mscorlib]System.Collections.IEqualityComparer comp) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- // Code size 43 (0x2b)
- .maxstack 5
+ // Code size 42 (0x2a)
+ .maxstack 4
.locals init ([0] valuetype StaticInit_Struct01/C V_0,
- [1] valuetype StaticInit_Struct01/C& V_1)
+ [1] valuetype StaticInit_Struct01/C& V_1,
+ [2] class [mscorlib]System.Collections.IEqualityComparer V_2)
.line 100001,100001 : 0,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: br.s IL_0029
+ IL_0008: br.s IL_0028
.line 100001,100001 : 0,0 ''
IL_000a: ldarg.1
@@ -193,19 +194,18 @@
IL_0011: ldloca.s V_0
IL_0013: stloc.1
IL_0014: ldarg.2
- IL_0015: ldarg.0
- IL_0016: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_001b: ldloc.1
- IL_001c: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_0021: tail.
- IL_0023: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityWithComparerIntrinsic(class [mscorlib]System.Collections.IEqualityComparer,
- !!0,
- !!0)
- IL_0028: ret
+ IL_0015: stloc.2
+ IL_0016: ldarg.0
+ IL_0017: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_001c: ldloc.1
+ IL_001d: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
+ IL_0022: call bool [mscorlib]System.DateTime::Equals(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_0027: ret
.line 100001,100001 : 0,0 ''
- IL_0029: ldc.i4.0
- IL_002a: ret
+ IL_0028: ldc.i4.0
+ IL_0029: ret
} // end of method C::Equals
.method public specialname rtspecialname
@@ -256,7 +256,7 @@
instance bool Equals(valuetype StaticInit_Struct01/C obj) cil managed
{
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- // Code size 23 (0x17)
+ // Code size 21 (0x15)
.maxstack 4
.locals init ([0] valuetype StaticInit_Struct01/C& V_0)
.line 4,4 : 6,7 ''
@@ -266,10 +266,9 @@
IL_0004: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
IL_0009: ldloc.0
IL_000a: ldfld valuetype [mscorlib]System.DateTime StaticInit_Struct01/C::s
- IL_000f: tail.
- IL_0011: call bool [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericEqualityERIntrinsic(!!0,
- !!0)
- IL_0016: ret
+ IL_000f: call bool [mscorlib]System.DateTime::Equals(valuetype [mscorlib]System.DateTime,
+ valuetype [mscorlib]System.DateTime)
+ IL_0014: ret
} // end of method C::Equals
.method public hidebysig virtual final
diff --git a/vsintegration/tests/UnitTests/Tests.Build.fs b/vsintegration/tests/UnitTests/Tests.Build.fs
index 7d4bd4f5160..5a164806352 100644
--- a/vsintegration/tests/UnitTests/Tests.Build.fs
+++ b/vsintegration/tests/UnitTests/Tests.Build.fs
@@ -93,7 +93,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -109,7 +109,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -125,7 +125,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -143,7 +143,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -159,7 +159,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -174,7 +174,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -190,7 +190,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -206,7 +206,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -222,7 +222,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -238,7 +238,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -254,7 +254,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -270,7 +270,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -285,7 +285,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -301,7 +301,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -318,7 +318,7 @@ type Build() =
"--highentropyva-" + Environment.NewLine +
"--nocopyfsharpcore" + Environment.NewLine +
"--yadda" + Environment.NewLine +
- "yadda" + Environment.NewLine)
+ "yadda")
cmd
[]
@@ -334,7 +334,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -350,7 +350,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -366,7 +366,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -382,7 +382,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -399,7 +399,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -416,7 +416,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -433,7 +433,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -449,7 +449,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -468,7 +468,7 @@ type Build() =
"--highentropyva-" + Environment.NewLine +
"--nocopyfsharpcore" + Environment.NewLine +
src + Environment.NewLine +
- src + Environment.NewLine)
+ src)
cmd
()
@@ -485,7 +485,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -501,7 +501,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -517,7 +517,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -532,7 +532,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -547,7 +547,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -562,7 +562,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -576,7 +576,7 @@ type Build() =
"--fullpaths" + Environment.NewLine +
"--flaterrors" + Environment.NewLine +
"--highentropyva+" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -591,7 +591,7 @@ type Build() =
"--flaterrors" + Environment.NewLine +
"--subsystemversion:6.02" + Environment.NewLine +
"--highentropyva-" + Environment.NewLine +
- "--nocopyfsharpcore" + Environment.NewLine)
+ "--nocopyfsharpcore")
cmd
[]
@@ -665,7 +665,7 @@ type Build() =
"--other:internal quote" + Environment.NewLine +
"blah" + Environment.NewLine +
"foo.fs" + Environment.NewLine +
- @"C:\Program Files\spaces.fs" + Environment.NewLine
+ @"C:\Program Files\spaces.fs"
AssertEqual expected cmd
@@ -710,4 +710,4 @@ type Build() =
"blah" |]
AssertEqual expectedFlags hostObject.Flags
let expectedSources = [| "foo.fs"; "C:\\Program Files\\spaces.fs" |]
- AssertEqual expectedSources hostObject.Sources
\ No newline at end of file
+ AssertEqual expectedSources hostObject.Sources