diff --git a/BuildToolsVersion.txt b/BuildToolsVersion.txt deleted file mode 100644 index bea8645271c204852664ea53c00d46a44972d6e6..0000000000000000000000000000000000000000 --- a/BuildToolsVersion.txt +++ /dev/null @@ -1 +0,0 @@ -1.0.27-prerelease-01001-04 diff --git a/DotnetCLIToolsVersion.txt b/DotnetCLIToolsVersion.txt index 8c63a20474ccfb5f0f027cb14d9b5a6c0bf66cb0..38295b0d98d7a61c7a4b4f172273498baa94651a 100644 --- a/DotnetCLIToolsVersion.txt +++ b/DotnetCLIToolsVersion.txt @@ -1 +1 @@ -2.1.500 +2.1.504 \ No newline at end of file diff --git a/FSharpBuild.Directory.Build.props b/FSharpBuild.Directory.Build.props index 48bf2f5b77ddf02403253855ffe403178115705a..bfac45aaeaa8d580f49b19f6fb468c04778d515b 100644 --- a/FSharpBuild.Directory.Build.props +++ b/FSharpBuild.Directory.Build.props @@ -89,7 +89,7 @@ - + $(ProtoOutputPath)\Microsoft.FSharp.Targets $(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props $(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets diff --git a/fcs/Directory.Build.props b/fcs/Directory.Build.props index 6535dbd2aea6569d5eb327adba097cef6a6b0510..3478a48aa9a91e8921dd974103771fdbf52e9a44 100644 --- a/fcs/Directory.Build.props +++ b/fcs/Directory.Build.props @@ -9,17 +9,11 @@ $(ArtifactsDir)\obj $(ArtifactsBinDir)\fcs $(ArtifactsObjDir)\fcs + true $(ArtifactsBinDir)\FSharp.Build\Proto\net46 - - - $(ProtoOutputPath)\Microsoft.FSharp.Targets - $(ProtoOutputPath)\Microsoft.FSharp.NetSdk.props - $(ProtoOutputPath)\Microsoft.FSharp.NetSdk.targets - $(ProtoOutputPath)\Microsoft.FSharp.Overrides.NetSdk.targets - diff --git a/fcs/build.fsx b/fcs/build.fsx index 7165eaf18d02e370ac8e4f1231a33cff480e857f..5a53371452427efbcb9d76bf25bbd4b3eb16f62e 100644 --- a/fcs/build.fsx +++ b/fcs/build.fsx @@ -31,7 +31,7 @@ let dotnetExePath = if File.Exists(pathToCli) then pathToCli else - DotNetCli.InstallDotNetSDK "2.1.403" + DotNetCli.InstallDotNetSDK "2.1.504" let runDotnet workingDir args = let result = @@ -97,8 +97,7 @@ Target "Build" (fun _ -> Target "Test" (fun _ -> // This project file is used for the netcoreapp2.0 tests to work out reference sets - runDotnet __SOURCE_DIRECTORY__ "restore ../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj -v n" - runDotnet __SOURCE_DIRECTORY__ "build ../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj -v n" + runDotnet __SOURCE_DIRECTORY__ "build ../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj -v n /restore /p:DisableCompilerRedirection=true" // Now run the tests runDotnet __SOURCE_DIRECTORY__ "test FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj --no-restore --no-build -v n -c release" diff --git a/src/absil/il.fs b/src/absil/il.fs index 19c6fc05e818371d29a92cef2ab61b91072d8dd5..b065b9ff87bd9a3588ccfbbe1332f70d738ff92a 100644 --- a/src/absil/il.fs +++ b/src/absil/il.fs @@ -170,7 +170,7 @@ let splitTypeNameRight nm = /// This is used to store event, property and field maps. type LazyOrderedMultiMap<'Key, 'Data when 'Key : equality>(keyf : 'Data -> 'Key, lazyItems : Lazy<'Data list>) = - let quickMap= + let quickMap = lazyItems |> lazyMap (fun entries -> let t = new Dictionary<_, _>(entries.Length, HashIdentity.Structural) do entries |> List.iter (fun y -> diff --git a/src/absil/ilread.fs b/src/absil/ilread.fs index a81d20f9fcb4c1440d41f2d238c753a81874d146..d7e5b14bacc1bb08258eaf5fc08ce0d2376d1cab 100644 --- a/src/absil/ilread.fs +++ b/src/absil/ilread.fs @@ -1671,7 +1671,7 @@ and seekReadAssemblyManifest (ctxt: ILMetadataReader) pectxt idx = Locale= readStringHeapOption ctxt localeIdx CustomAttrsStored = ctxt.customAttrsReader_Assembly MetadataIndex = idx - AssemblyLongevity= + AssemblyLongevity = let masked = flags &&& 0x000e if masked = 0x0000 then ILAssemblyLongevity.Unspecified elif masked = 0x0002 then ILAssemblyLongevity.Library diff --git a/src/absil/ilreflect.fs b/src/absil/ilreflect.fs index 2b6dd3d06d51c933c090eef84e719e6eef63f4e8..60ae0350b26665070b6defeb8c2875b4aa880739 100644 --- a/src/absil/ilreflect.fs +++ b/src/absil/ilreflect.fs @@ -392,7 +392,7 @@ let emEnv0 = emEntryPts = [] delayedFieldInits = [] } -let envBindTypeRef emEnv (tref:ILTypeRef) (typT, typB, typeDef)= +let envBindTypeRef emEnv (tref:ILTypeRef) (typT, typB, typeDef) = match typT with | null -> failwithf "binding null type in envBindTypeRef: %s\n" tref.Name; | _ -> {emEnv with emTypMap = Zmap.add tref (typT, typB, typeDef, None) emEnv.emTypMap} diff --git a/src/absil/ilwritepdb.fs b/src/absil/ilwritepdb.fs index 58dd9c241b6482cec5ff6a4ce406fd7e445a701d..0377916fd56b7156ae9bd421ae4e89b121b12fb4 100644 --- a/src/absil/ilwritepdb.fs +++ b/src/absil/ilwritepdb.fs @@ -172,7 +172,7 @@ let pdbGetPdbDebugInfo (embeddedPDBChunk:BinaryChunk) (uncompressedLength:int64) iddChunk = embeddedPDBChunk; } -let pdbGetDebugInfo (mvid:byte[]) (timestamp:int32) (filepath:string) (cvChunk:BinaryChunk) (embeddedPDBChunk:BinaryChunk option) (uncompressedLength:int64) (stream:MemoryStream option)= +let pdbGetDebugInfo (mvid:byte[]) (timestamp:int32) (filepath:string) (cvChunk:BinaryChunk) (embeddedPDBChunk:BinaryChunk option) (uncompressedLength:int64) (stream:MemoryStream option) = match stream, embeddedPDBChunk with | None, _ | _, None -> [| pdbGetCvDebugInfo mvid timestamp filepath cvChunk |] | Some s, Some chunk -> [| pdbGetCvDebugInfo mvid timestamp filepath cvChunk; pdbGetPdbDebugInfo chunk uncompressedLength s; |] diff --git a/src/fsharp/AugmentWithHashCompare.fs b/src/fsharp/AugmentWithHashCompare.fs index 70fc0df123fac726d46ee82520e5563d112ac676..ed1b6f0cf0951467ae4dacaedba0cfb4a742bc01 100644 --- a/src/fsharp/AugmentWithHashCompare.fs +++ b/src/fsharp/AugmentWithHashCompare.fs @@ -704,7 +704,7 @@ let getAugmentationAttribs g (tycon:Tycon) = TryFindFSharpBoolAttribute g g.attrib_CustomComparisonAttribute tycon.Attribs, TryFindFSharpBoolAttribute g g.attrib_StructuralComparisonAttribute tycon.Attribs -let CheckAugmentationAttribs isImplementation g amap (tycon:Tycon)= +let CheckAugmentationAttribs isImplementation g amap (tycon:Tycon) = let m = tycon.Range let attribs = getAugmentationAttribs g tycon match attribs with diff --git a/src/fsharp/CheckFormatStrings.fs b/src/fsharp/CheckFormatStrings.fs index db3997b98e86bb0ff3db80e5460573abd0d4d60c..024a2e7d13c0b5e9f9f20342ae5493772725fd35 100644 --- a/src/fsharp/CheckFormatStrings.fs +++ b/src/fsharp/CheckFormatStrings.fs @@ -42,7 +42,7 @@ type FormatInfoRegister = mutable addZeros : bool mutable precision : bool} -let newInfo ()= +let newInfo () = { leftJustify = false numPrefixIfPos = None addZeros = false diff --git a/src/fsharp/FSharp.Build/Fsc.fs b/src/fsharp/FSharp.Build/Fsc.fs index 850ec3d9d188dd07d188ff8ab0cbb0ccbd79d4ff..c45ecc2e31c179c0ef35ad4a2ece1f7e6a0ff378 100644 --- a/src/fsharp/FSharp.Build/Fsc.fs +++ b/src/fsharp/FSharp.Build/Fsc.fs @@ -295,6 +295,10 @@ type public Fsc () as this = with get() = embedAllSources and set(s) = embedAllSources <- s + member fsc.Embed + with get() = embeddedFiles + and set(e) = embeddedFiles <- e + member fsc.EmbeddedFiles with get() = embeddedFiles and set(e) = embeddedFiles <- e diff --git a/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets b/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets index 472096cb52ddc8a464cf74a22cef64fa85346427..19f9843e4aeb8bee2cb0bfdff80bc933c5da790a 100644 --- a/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets +++ b/src/fsharp/FSharp.Build/Microsoft.FSharp.Targets @@ -285,7 +285,7 @@ this file. DocumentationFile="$(DocumentationFile)" DotnetFscCompilerPath="$(DotnetFscCompilerPath)" EmbedAllSources="$(EmbedAllSources)" - EmbeddedFiles="@(EmbeddedFiles)" + Embed="@(EmbeddedFiles)" GenerateInterfaceFile="$(GenerateInterfaceFile)" HighEntropyVA="$(HighEntropyVA)" KeyFile="$(KeyOriginatorFile)" diff --git a/src/fsharp/LexFilter.fs b/src/fsharp/LexFilter.fs index 94c4634abe2549ee236d00db8dc8b6db29f8e6d5..5ae8ebc328962d6cb3bffe555b9fed303208dc78 100755 --- a/src/fsharp/LexFilter.fs +++ b/src/fsharp/LexFilter.fs @@ -2207,7 +2207,7 @@ type LexFilterImpl (lightSyntaxStatus:LightSyntaxStatus, compilingFsLib, lexer, | IEEE32(v) -> delayMergedToken(IEEE32(if plus then v else -v)) | IEEE64(v) -> delayMergedToken(IEEE64(if plus then v else -v)) | DECIMAL(v) -> delayMergedToken(DECIMAL(if plus then v else System.Decimal.op_UnaryNegation v)) - | BIGNUM(v,s) -> delayMergedToken(BIGNUM((if plus then v else "-"^v),s)) + | BIGNUM(v,s) -> delayMergedToken(BIGNUM((if plus then v else "-" + v),s)) | _ -> noMerge() else noMerge() diff --git a/src/fsharp/TastOps.fs b/src/fsharp/TastOps.fs index 2514616aa1b814f90623432ba9853c7aef91f821..8c8973add230555205690ff77eaff8746b3ba7c0 100644 --- a/src/fsharp/TastOps.fs +++ b/src/fsharp/TastOps.fs @@ -4649,7 +4649,7 @@ let underlyingTypeOfEnumTy (g: TcGlobals) ty = let tycon = (tcrefOfAppTy g ty).Deref match tycon.GetFieldByName "value__" with | Some rf -> rf.FormalType - | None -> error(InternalError("no 'value__' field found for enumeration type "^tycon.LogicalName, tycon.Range)) + | None -> error(InternalError("no 'value__' field found for enumeration type " + tycon.LogicalName, tycon.Range)) // CLEANUP NOTE: Get rid of this mutation. @@ -5138,7 +5138,7 @@ and renameTycon tyenv x = let res = tyenv.tyconRefRemap.[mkLocalTyconRef x] res with :? KeyNotFoundException -> - errorR(InternalError("couldn't remap internal tycon "^showL(DebugPrint.tyconL x), x.Range)); + errorR(InternalError("couldn't remap internal tycon " + showL(DebugPrint.tyconL x), x.Range)); mkLocalTyconRef x tcref.Deref @@ -5180,7 +5180,7 @@ and copyAndRemapAndBindTyconsAndVals g compgen tmenv tycons vs = let res = tmenvinner.tyconRefRemap.[mkLocalTyconRef tycon] res with :? KeyNotFoundException -> - errorR(InternalError("couldn't remap internal tycon "^showL(DebugPrint.tyconL tycon), tycon.Range)); + errorR(InternalError("couldn't remap internal tycon " + showL(DebugPrint.tyconL tycon), tycon.Range)); mkLocalTyconRef tycon tcref.Deref @@ -5684,7 +5684,7 @@ let rec simplifyTrivialMatch spBind exprm matchm ty tree (targets : _[]) = if n >= targets.Length then failwith "simplifyTrivialMatch: target out of range"; // REVIEW: should we use _spTarget here? let (TTarget(vs, rhs, _spTarget)) = targets.[n] - if vs.Length <> es.Length then failwith ("simplifyTrivialMatch: invalid argument, n = "^string n^", List.length targets = "^string targets.Length); + if vs.Length <> es.Length then failwith ("simplifyTrivialMatch: invalid argument, n = " + string n + ", List.length targets = " + string targets.Length); // These are non-sticky - any sequence point for 'rhs' goes on 'rhs' _after_ the bindings have been made mkInvisibleLetsFromBindings rhs.Range vs es rhs | _ -> @@ -6813,7 +6813,7 @@ let AdjustArityOfLambdaBody g arity (vs:Val list) body = if (untupledTys.Length <> arity) then failwith "length untupledTys <> arity"; let dummyvs, dummyes = untupledTys - |> List.mapi (fun i ty -> mkCompGenLocal v.Range (v.LogicalName ^"_"^string i) ty) + |> List.mapi (fun i ty -> mkCompGenLocal v.Range (v.LogicalName + "_" + string i) ty) |> List.unzip // These are non-sticky - any sequence point for 'body' goes on 'body' _after_ the binding has been made let body = mkInvisibleLet v.Range v (mkRefTupled g v.Range dummyes untupledTys) body @@ -7036,7 +7036,7 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex argtysl |> List.mapi (fun i argtys -> argtys |> List.mapi (fun j (_, argInfo) -> match argInfo.Name with - | None -> CompilerGeneratedName ("arg" + string i ^string j) + | None -> CompilerGeneratedName ("arg" + string i + string j) | Some id -> id.idText)) | _ -> [] @@ -7166,11 +7166,11 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex assert (inpArgTys.Length = actualArgTys.Length) - let inpsAsVars, inpsAsExprs = inpArgTys |> List.mapi (fun j ty -> mkCompGenLocal appm ("arg"^string i^string j) ty) |> List.unzip + let inpsAsVars, inpsAsExprs = inpArgTys |> List.mapi (fun j ty -> mkCompGenLocal appm ("arg" + string i + string j) ty) |> List.unzip let inpsAsActualArg = CoerceDetupled inpArgTys inpsAsExprs actualArgTys let inpCloVarType = (mkFunTy (mkRefTupledTy g actualArgTys) cloVar.Type) let newResTy = mkFunTy inpArgTy resTy - let inpCloVar, inpCloVarAsExpr = mkCompGenLocal appm ("clo"^string i) inpCloVarType + let inpCloVar, inpCloVarAsExpr = mkCompGenLocal appm ("clo" + string i) inpCloVarType let newRes = // For the final arg we can skip introducing the dummy variable if i = N - 1 then @@ -7210,7 +7210,7 @@ let AdjustPossibleSubsumptionExpr g (expr: Expr) (suppliedArgs: Expr list) : (Ex let niceNames = match niceNames with | nms when nms.Length = inpArgTys.Length -> nms - | [nm] -> inpArgTys |> List.mapi (fun i _ -> (nm^string i)) + | [nm] -> inpArgTys |> List.mapi (fun i _ -> (nm + string i)) | nms -> nms match suppliedArg with | Some arg -> diff --git a/src/utils/prim-lexing.fs b/src/utils/prim-lexing.fs index 6b81e38c2856fec09ec493feabb6b9eefb8d44b2..938d556c2c6a5f1c951f48ff82b06acca2151fdd 100644 --- a/src/utils/prim-lexing.fs +++ b/src/utils/prim-lexing.fs @@ -285,7 +285,7 @@ namespace Internal.Utilities.Text.Lexing ) module GenericImplFragments = - let startInterpret(lexBuffer:LexBuffer)= + let startInterpret(lexBuffer:LexBuffer) = lexBuffer.BufferScanStart <- lexBuffer.BufferScanStart + lexBuffer.LexemeLength; lexBuffer.BufferMaxScanLength <- lexBuffer.BufferMaxScanLength - lexBuffer.LexemeLength; lexBuffer.BufferScanLength <- 0;