diff --git a/.github/workflows/pull-requests.yml b/.github/workflows/pull-requests.yml index 3130050f9..8fcb584a2 100644 --- a/.github/workflows/pull-requests.yml +++ b/.github/workflows/pull-requests.yml @@ -19,8 +19,10 @@ jobs: run: dotnet tool restore - name: Restore packages run: dotnet paket restore - - name: Build and test + - name: Build and test (Release) run: dotnet fake build -t All + - name: Build (Debug) + run: dotnet build -c Debug build-ubuntu: @@ -37,3 +39,5 @@ jobs: run: dotnet paket restore - name: Build and test run: dotnet fake build -t RunTests + - name: Build (Debug) + run: dotnet build -c Debug diff --git a/src/AssemblyInfo.DesignTime.fs b/src/AssemblyInfo.DesignTime.fs index 84c7cb72e..1e19c09f0 100644 --- a/src/AssemblyInfo.DesignTime.fs +++ b/src/AssemblyInfo.DesignTime.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "FSharp.Data.DesignTime" let [] AssemblyProduct = "FSharp.Data" let [] AssemblyDescription = "Library of F# type providers and data access tools" - let [] AssemblyVersion = "4.2.2.0" - let [] AssemblyFileVersion = "4.2.2.0" + let [] AssemblyVersion = "4.2.5.0" + let [] AssemblyFileVersion = "4.2.5.0" diff --git a/src/AssemblyInfo.fs b/src/AssemblyInfo.fs index 0ed435e96..7c28d1d39 100644 --- a/src/AssemblyInfo.fs +++ b/src/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "FSharp.Data" let [] AssemblyProduct = "FSharp.Data" let [] AssemblyDescription = "Library of F# type providers and data access tools" - let [] AssemblyVersion = "4.2.2.0" - let [] AssemblyFileVersion = "4.2.2.0" + let [] AssemblyVersion = "4.2.5.0" + let [] AssemblyFileVersion = "4.2.5.0" diff --git a/src/Csv/CsvRuntime.fs b/src/Csv/CsvRuntime.fs index 1bec26f93..d707fdf15 100644 --- a/src/Csv/CsvRuntime.fs +++ b/src/Csv/CsvRuntime.fs @@ -250,16 +250,16 @@ type CsvFile<'RowType> private (rowToStringArray:Func<'RowType,string[]>, dispos // Track created Readers so that we can dispose of all of them let disposeFuncs = new ResizeArray<_>() - let disposed = ref false + let mutable disposed = false let disposer = { new IDisposable with member x.Dispose() = - if not !disposed then + if not disposed then Seq.iter (fun f -> f()) disposeFuncs - disposed := true } + disposed <- true } let newReader() = - if !disposed then + if disposed then raise <| ObjectDisposedException(this.GetType().Name) let reader = readerFunc.Invoke() disposeFuncs.Add reader.Dispose diff --git a/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj b/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj index ddfc26d44..26ca346ef 100755 --- a/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj +++ b/src/FSharp.Data.DesignTime/FSharp.Data.DesignTime.fsproj @@ -9,6 +9,8 @@ true ..\keyfile.snk false + + true diff --git a/src/FSharp.Data/FSharp.Data.fsproj b/src/FSharp.Data/FSharp.Data.fsproj index 2b24f6a24..174700c5c 100755 --- a/src/FSharp.Data/FSharp.Data.fsproj +++ b/src/FSharp.Data/FSharp.Data.fsproj @@ -12,8 +12,7 @@ false true ..\keyfile.snk - - + true @@ -46,6 +45,7 @@ + @@ -53,13 +53,6 @@ all - - - - keyfile.snk - - - diff --git a/src/Json/JsonValue.fs b/src/Json/JsonValue.fs index 0c9ddb238..dcb27278d 100644 --- a/src/Json/JsonValue.fs +++ b/src/Json/JsonValue.fs @@ -172,14 +172,14 @@ type private JsonParser(jsonText:string) = skipWhitespace() ensure(i < s.Length) match s.[i] with - | '"' -> JsonValue.String(parseString()) |> cont - | '-' -> parseNum() |> cont - | c when Char.IsDigit(c) -> parseNum() |> cont + | '"' -> cont (JsonValue.String(parseString())) + | '-' -> cont (parseNum()) + | c when Char.IsDigit(c) -> cont (parseNum()) | '{' -> parseObject cont | '[' -> parseArray cont - | 't' -> parseLiteral("true", JsonValue.Boolean true) |> cont - | 'f' -> parseLiteral("false", JsonValue.Boolean false) |> cont - | 'n' -> parseLiteral("null", JsonValue.Null) |> cont + | 't' -> cont (parseLiteral("true", JsonValue.Boolean true)) + | 'f' -> cont (parseLiteral("false", JsonValue.Boolean false)) + | 'n' -> cont (parseLiteral("null", JsonValue.Null)) | _ -> throw() and parseString() = @@ -250,7 +250,7 @@ type private JsonParser(jsonText:string) = ensure(i < s.Length && s.[i] = ':') i <- i + 1 skipWhitespace() - parseValue (fun v -> (key, v) |> cont) + parseValue (fun v -> cont (key, v)) and parseObject cont = ensure(i < s.Length && s.[i] = '{') @@ -260,7 +260,8 @@ type private JsonParser(jsonText:string) = let parseObjectEnd() = ensure(i < s.Length && s.[i] = '}') i <- i + 1 - pairs.ToArray() |> JsonValue.Record |> cont + let res = pairs.ToArray() |> JsonValue.Record + cont res if i < s.Length && s.[i] = '"' then parsePair (fun p -> pairs.Add(p) @@ -287,7 +288,8 @@ type private JsonParser(jsonText:string) = let parseArrayEnd() = ensure(i < s.Length && s.[i] = ']') i <- i + 1 - vals.ToArray() |> JsonValue.Array |> cont + let res = vals.ToArray() |> JsonValue.Array + cont res if i < s.Length && s.[i] <> ']' then parseValue (fun v -> vals.Add(v) diff --git a/src/Net/Http.fs b/src/Net/Http.fs index be79e1902..a1f70bf28 100644 --- a/src/Net/Http.fs +++ b/src/Net/Http.fs @@ -1441,7 +1441,7 @@ module internal HttpHelpers = checkForRepeatedHeaders (header::visitedHeaders) remainingHeaders let setHeaders headers (req:HttpWebRequest) = - let hasContentType = ref false + let mutable hasContentType = false checkForRepeatedHeaders [] headers headers |> List.iter (fun (header:string, value) -> match header.ToLowerInvariant() with @@ -1461,7 +1461,7 @@ module internal HttpHelpers = | "content-range" -> req.Headers.[HeaderEnum.ContentRange] <- value | "content-type" -> req.ContentType <- value - hasContentType := true + hasContentType <- true | "date" -> req.Date <- DateTime.SpecifyKind(DateTime.ParseExact(value, "R", CultureInfo.InvariantCulture), DateTimeKind.Utc) | "expect" -> req.Expect <- value | "expires" -> req.Headers.[HeaderEnum.Expires] <- value @@ -1493,7 +1493,7 @@ module internal HttpHelpers = | "warning" -> req.Headers.[HeaderEnum.Warning] <- value | _ -> req.Headers.[header] <- value ) - hasContentType.Value + hasContentType let getResponse (req:HttpWebRequest) silentHttpErrors = diff --git a/tests/FSharp.Data.Tests/FSharp.Data.Tests.fsproj b/tests/FSharp.Data.Tests/FSharp.Data.Tests.fsproj index cd6564d93..03a0e4b58 100755 --- a/tests/FSharp.Data.Tests/FSharp.Data.Tests.fsproj +++ b/tests/FSharp.Data.Tests/FSharp.Data.Tests.fsproj @@ -7,6 +7,8 @@ true true false + + true diff --git a/tests/FSharp.Data.Tests/JsonProvider.fs b/tests/FSharp.Data.Tests/JsonProvider.fs index e35cb1105..fcf6bccec 100644 --- a/tests/FSharp.Data.Tests/JsonProvider.fs +++ b/tests/FSharp.Data.Tests/JsonProvider.fs @@ -411,12 +411,12 @@ let ``Can parse wiki sample``() = [] let ``Can load empty json file and fails on property access``() = let document = WikiSample.Load("Data/Empty.json") - let failed = ref false + let mutable failed = false try document.Age |> ignore with - | _ -> failed := true - !failed |> should be True + | _ -> failed <- true + failed |> should be True let newJson = """{ diff --git a/tests/FSharp.Data.Tests/Program.fs b/tests/FSharp.Data.Tests/Program.fs index c94e2a499..6329c59f8 100644 --- a/tests/FSharp.Data.Tests/Program.fs +++ b/tests/FSharp.Data.Tests/Program.fs @@ -1,6 +1,6 @@ -open System +open System [] let main argv = printfn "Dotnet Core NUnit Tests..." - 0 \ No newline at end of file + 0